19 #ifndef __MESH_HIERARCHY_H 20 #define __MESH_HIERARCHY_H 24 #include<dolfin/log/log.h> 30 template <
typename T>
class MeshFunction;
43 : _meshes(1, mesh), _parent(NULL), _relation(NULL)
52 {
return _meshes.size(); }
59 dolfin_assert(i < (
int)_meshes.size());
64 std::shared_ptr<const Mesh>
finest()
const 65 {
return _meshes.back(); }
69 {
return _meshes.front(); }
73 std::shared_ptr<const MeshHierarchy>
refine 79 std::shared_ptr<const MeshHierarchy>
unrefine()
const 83 std::shared_ptr<const MeshHierarchy>
coarsen 89 std::vector<std::size_t>
weight()
const;
97 std::vector<std::shared_ptr<const Mesh> > _meshes;
100 std::shared_ptr<const MeshHierarchy> _parent;
104 std::shared_ptr<const MeshRelation> _relation;
MeshHierarchy()
Constructor.
Definition: MeshHierarchy.h:38
std::shared_ptr< const Mesh > finest() const
Get the finest mesh of the MeshHierarchy.
Definition: MeshHierarchy.h:64
unsigned int size() const
Number of meshes.
Definition: MeshHierarchy.h:51
std::shared_ptr< Mesh > rebalance() const
Rebalance across processes.
Definition: MeshHierarchy.cpp:164
MeshHierarchy(std::shared_ptr< const Mesh > mesh)
Constructor with initial mesh.
Definition: MeshHierarchy.h:42
std::shared_ptr< const MeshHierarchy > unrefine() const
Definition: MeshHierarchy.h:79
std::shared_ptr< const Mesh > coarsest() const
Get the coarsest mesh of the MeshHierarchy.
Definition: MeshHierarchy.h:68
~MeshHierarchy()
Destructor.
Definition: MeshHierarchy.h:47
std::shared_ptr< const MeshHierarchy > refine(const MeshFunction< bool > &markers) const
Definition: MeshHierarchy.cpp:39
std::vector< std::size_t > weight() const
Definition: MeshHierarchy.cpp:141
Experimental implementation of a list of Meshes as a hierarchy.
Definition: MeshHierarchy.h:34
std::shared_ptr< const MeshHierarchy > coarsen(const MeshFunction< bool > &markers) const
Coarsen finest mesh by one level, based on markers (level n->n)
Definition: MeshHierarchy.cpp:64
std::shared_ptr< const Mesh > operator[](int i) const
Get Mesh i, in range [0:size()] where 0 is the coarsest Mesh.
Definition: MeshHierarchy.h:55