| FEAT 3
    Finite Element Analysis Toolbox | 
Class template for partial meshes. More...
#include <mesh_part.hpp>
| Classes | |
| struct | IndexSet | 
| Index set type class template.  More... | |
| struct | TargetSet | 
| Target set type class template.  More... | |
| Public Types | |
| typedef MeshType::VertexSetType::CoordType | AttributeDataType | 
| Data type for attributes.  More... | |
| typedef AttributeSetContainer::const_iterator | AttributeSetConstIterator | 
| submesh node const-iterator type  More... | |
| typedef std::map< String, std::unique_ptr< AttributeSetType > > | AttributeSetContainer | 
| submesh node bin container type  More... | |
| typedef AttributeSetContainer::iterator | AttributeSetIterator | 
| submesh node iterator type  More... | |
| typedef AttributeSetContainer::reverse_iterator | AttributeSetReverseIterator | 
| submesh node reverse-iterator type  More... | |
| typedef AttributeSet< AttributeDataType > | AttributeSetType | 
| Type for mesh attributes.  More... | |
| typedef IndexSetHolder< ShapeType > | IndexSetHolderType | 
| Index set holder type.  More... | |
| typedef MeshType_ | MeshType | 
| parent Mesh type  More... | |
| typedef MeshType::IndexSetHolderType | ParentIndexSetHolderType | 
| Topology (aka IndexSetHolder) of parent mesh type.  More... | |
| typedef MeshType::ShapeType | ShapeType | 
| Shape type.  More... | |
| typedef TargetSetHolder< ShapeType > | TargetSetHolderType | 
| Target set holder type.  More... | |
| Public Member Functions | |
| MeshPart (const Index num_entities[], bool create_topology=false) | |
| Constructor.  More... | |
| MeshPart (const MeshPart &other)=delete | |
| deleted copy constructor | |
| MeshPart (Factory< MeshPart > &factory) | |
| Factory constructor.  More... | |
| MeshPart (MeshPart &&other)=default | |
| move constructor | |
| virtual | ~MeshPart () | 
| Virtual destructor.  More... | |
| virtual bool | add_attribute (std::unique_ptr< AttributeSetType > attribute, const String &identifier) | 
| Copies one attribute to this MeshPart's AttributeHolder.  More... | |
| std::size_t | bytes () const | 
| MeshPart | clone () const | 
| void | clone (const MeshPart &other) | 
| Clones another mesh part object into thisobject.  More... | |
| template<int end_dim_, int current_dim_ = ShapeType::dimension> | |
| void | deduct_target_sets_from_bottom (const ParentIndexSetHolderType &parent_ish) | 
| Deducts the target sets from bottom to top.  More... | |
| template<int end_dim_, int current_dim_ = 0> | |
| void | deduct_target_sets_from_top (const ParentIndexSetHolderType &parent_ish) | 
| Deducts the target sets from top to bottom.  More... | |
| void | deduct_topology (const ParentIndexSetHolderType &parent_ish) | 
| Fills the mesh topology from parent information.  More... | |
| AttributeSetType * | find_attribute (const String &identifier) | 
| Finds an Attribute by its identifier String and returns a pointer to it.  More... | |
| const AttributeSetType * | find_attribute (const String &identifier) const | 
| Finds an Attribute by its identifier String and returns a pointer to it.   More... | |
| template<int cell_dim_, int face_dim_> | |
| IndexSet< cell_dim_, face_dim_ >::Type & | get_index_set () | 
| Returns the reference to an index set.  More... | |
| template<int cell_dim_, int face_dim_> | |
| const IndexSet< cell_dim_, face_dim_ >::Type & | get_index_set () const | 
| Returns the reference to an index set.   More... | |
| const AttributeSetContainer & | get_mesh_attributes () const | 
| Returns a const reference to the mesh attributes container.  More... | |
| int | get_num_attributes () const | 
| Returns the total number of Attributes in this MeshPart.  More... | |
| Index | get_num_entities (int dim) const | 
| Returns the number of entities.  More... | |
| template<int cell_dim_> | |
| TargetSet< cell_dim_ >::Type & | get_target_set () | 
| Return the reference to a target set.  More... | |
| template<int cell_dim_> | |
| const TargetSet< cell_dim_ >::Type & | get_target_set () const | 
| Return the reference to a target set.   More... | |
| bool | has_topology () const | 
| Checks if this MeshPart has a mesh topology.  More... | |
| MeshPart & | operator= (const MeshPart &)=delete | 
| deleted copy-assignment operator | |
| MeshPart & | operator= (MeshPart &&other)=default | 
| move-assignment operator | |
| void | permute (const MeshPermutation< ShapeType > &mesh_perm) | 
| Applies a mesh permutation onto this mesh part's target sets.  More... | |
| Static Public Member Functions | |
| static String | name () | 
| Returns the name of the class.  More... | |
| Static Public Attributes | |
| static constexpr int | shape_dim = ShapeType::dimension | 
| Shape dimension.  More... | |
| Protected Attributes | |
| std::unique_ptr< IndexSetHolderType > | _index_set_holder | 
| The index sets of the mesh.  More... | |
| AttributeSetContainer | _mesh_attributes | 
| The attribute sets of the mesh.  More... | |
| std::array< Index, shape_dim+1 > | _num_entities | 
| Number of entities for each shape dimension.  More... | |
| TargetSetHolderType | _target_set_holder | 
| The target sets of the mesh.  More... | |
Class template for partial meshes.
A MeshPart is a part of another mesh (called parent mesh) and is defined by mapping its own mesh entities (like vertices, edges etc.) to the corresponding mesh entities of the parent mesh. For at least one arbitrary shape dimension a mapping has to exist, but a MeshPart can have one mapping for each shape dimension of the mesh it refers to.
A MeshPart does not need to be connected or to have a topology, although it can implicitly use the parent's topology. It can have sets of AttributeSets for each shape dimension. If the parent mesh is refine, it is possible to use that information to create a refined version of the MeshPart, although particular care has to be taken when refining the AttributeSets.
A MeshPart can supply its own topology, which can be different from the parent's. One important example for this is a MeshPart that defines the boundary of its parent mesh. If the boundary is parametrized using a AttributeSet and the boundary is closed, the parametrization requires the doubling of some mesh entities to correctly represent the parametrization variable.
* * Parent: MeshPart representing the closed boundary: * 3----2 0--1--2--3--4 * | | map to * | | 0--1--2--3--0 * 0----1 * *
Vertex 0 of the parent mesh has two different parametrization variables, as it is both the first and the last vertex of the closed boundary. This can be easily represented by having two vertices in the MeshPart point to the same vertex of the parent mesh.
At least one parent mapping has to be given, but it is possible to deduct the other parent mappings from this. There are two possibilities:
Definition at line 89 of file mesh_part.hpp.
| typedef MeshType::VertexSetType::CoordType FEAT::Geometry::MeshPart< MeshType_ >::AttributeDataType | 
Data type for attributes.
Definition at line 133 of file mesh_part.hpp.
| typedef AttributeSetContainer::const_iterator FEAT::Geometry::MeshPart< MeshType_ >::AttributeSetConstIterator | 
submesh node const-iterator type
Definition at line 142 of file mesh_part.hpp.
| typedef std::map<String, std::unique_ptr<AttributeSetType> > FEAT::Geometry::MeshPart< MeshType_ >::AttributeSetContainer | 
submesh node bin container type
Definition at line 138 of file mesh_part.hpp.
| typedef AttributeSetContainer::iterator FEAT::Geometry::MeshPart< MeshType_ >::AttributeSetIterator | 
submesh node iterator type
Definition at line 140 of file mesh_part.hpp.
| typedef AttributeSetContainer::reverse_iterator FEAT::Geometry::MeshPart< MeshType_ >::AttributeSetReverseIterator | 
submesh node reverse-iterator type
Definition at line 144 of file mesh_part.hpp.
| typedef AttributeSet<AttributeDataType> FEAT::Geometry::MeshPart< MeshType_ >::AttributeSetType | 
Type for mesh attributes.
Definition at line 135 of file mesh_part.hpp.
| typedef IndexSetHolder<ShapeType> FEAT::Geometry::MeshPart< MeshType_ >::IndexSetHolderType | 
Index set holder type.
Definition at line 99 of file mesh_part.hpp.
| typedef MeshType_ FEAT::Geometry::MeshPart< MeshType_ >::MeshType | 
parent Mesh type
Definition at line 93 of file mesh_part.hpp.
| typedef MeshType::IndexSetHolderType FEAT::Geometry::MeshPart< MeshType_ >::ParentIndexSetHolderType | 
Topology (aka IndexSetHolder) of parent mesh type.
Definition at line 97 of file mesh_part.hpp.
| typedef MeshType::ShapeType FEAT::Geometry::MeshPart< MeshType_ >::ShapeType | 
Shape type.
Definition at line 95 of file mesh_part.hpp.
| typedef TargetSetHolder<ShapeType> FEAT::Geometry::MeshPart< MeshType_ >::TargetSetHolderType | 
Target set holder type.
Definition at line 101 of file mesh_part.hpp.
| 
 | inlineexplicit | 
Constructor.
| [in] | num_entities | An array of length at least shape_dim + 1 holding the number of entities for each shape dimension. Must not be nullptr. | 
| [in] | create_topology | Determines if the MeshPart is to have a mesh topology. | 
Definition at line 183 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_index_set_holder, FEAT::Geometry::MeshPart< MeshType_ >::_num_entities, and FEAT::Geometry::MeshPart< MeshType_ >::shape_dim.
| 
 | inlineexplicit | 
Factory constructor.
| [in] | factory | A transient reference to the factory that is to be used to create the mesh part. | 
Definition at line 201 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_index_set_holder, FEAT::Geometry::MeshPart< MeshType_ >::_mesh_attributes, FEAT::Geometry::MeshPart< MeshType_ >::_num_entities, and FEAT::Geometry::MeshPart< MeshType_ >::_target_set_holder.
| 
 | inlinevirtual | 
Virtual destructor.
Definition at line 232 of file mesh_part.hpp.
| 
 | inlinevirtual | 
Copies one attribute to this MeshPart's AttributeHolder.
| [in] | attribute | A resident pointer to the Attribute to be added. | 
| [in] | identifier | Identifier for the map. | 
Definition at line 374 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_mesh_attributes, and XASSERTM.
Referenced by FEAT::Geometry::MeshPart< MeshType_ >::clone(), and FEAT::Geometry::MeshPartOperations< MeshType_ >::copy_attributes().
| 
 | inline | 
Definition at line 280 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_index_set_holder, FEAT::Geometry::MeshPart< MeshType_ >::_mesh_attributes, and FEAT::Geometry::MeshPart< MeshType_ >::_target_set_holder.
| 
 | inline | 
this mesh part object. Definition at line 268 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_index_set_holder, FEAT::Geometry::MeshPart< MeshType_ >::_target_set_holder, and FEAT::Geometry::MeshPart< MeshType_ >::add_attribute().
| 
 | inline | 
Clones another mesh part object into this object. 
| [in] | other | A transient reference to the source object that is to be cloned into thisobject. | 
Definition at line 243 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::add_attribute(), and FEAT::Geometry::other.
| 
 | inline | 
Deducts the target sets from bottom to top.
| end_dim_ | Dimension to stop at (meaning the lowest dimension). | 
| current_dim_ | Dimension to generate parent information for. | 
| [in] | parent_ish | A transient reference to the topology of the parent this MeshPart refers to. | 
Definition at line 504 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_num_entities, and FEAT::Geometry::MeshPart< MeshType_ >::_target_set_holder.
| 
 | inline | 
Deducts the target sets from top to bottom.
| end_dim_ | Dimension to stop at (meaning the highest dimension). | 
| current_dim_ | Dimension to generate parent information for. | 
| [in] | parent_ish | A transient reference to the topology of the parent this MeshPart refers to. | 
Definition at line 529 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_num_entities, and FEAT::Geometry::MeshPart< MeshType_ >::_target_set_holder.
| 
 | inline | 
Fills the mesh topology from parent information.
| [in] | parent_ish | A transient reference to the IndexSetHolder of the parent this MeshPart refers to. | 
Definition at line 547 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_index_set_holder, FEAT::Geometry::MeshPart< MeshType_ >::_num_entities, FEAT::Geometry::MeshPart< MeshType_ >::_target_set_holder, and FEAT::Geometry::RedundantIndexSetBuilder< Shape_ >::compute().
Referenced by FEAT::Geometry::MeshNodeLinker< RootMesh_ >::execute().
| 
 | inline | 
Finds an Attribute by its identifier String and returns a pointer to it.
| [in] | identifier | Identifier to match. | 
Definition at line 328 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_mesh_attributes.
| 
 | inline | 
Finds an Attribute by its identifier String and returns a pointer to it.
| [in] | identifier | Identifier to match. | 
Definition at line 335 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_mesh_attributes.
| 
 | inline | 
Returns the reference to an index set.
| cell_dim_ | The dimension of the entity whose index set is to be returned. | 
| face_dim_ | The dimension of the face that the index set refers to. | 
Definition at line 394 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_index_set_holder, FEAT::Geometry::MeshPart< MeshType_ >::has_topology(), and XASSERTM.
| 
 | inline | 
Returns the reference to an index set.
| cell_dim_ | The dimension of the entity whose index set is to be returned. | 
| face_dim_ | The dimension of the face that the index set refers to. | 
Definition at line 402 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_index_set_holder, FEAT::Geometry::MeshPart< MeshType_ >::has_topology(), and XASSERTM.
| 
 | inline | 
Returns a const reference to the mesh attributes container.
Definition at line 346 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_mesh_attributes.
Referenced by FEAT::Geometry::PatchMeshPartSplitter< Geometry::ConformalMesh< Shape_, num_coords_, Coord_ > >::build(), FEAT::Geometry::StandardRefinery< MeshPart< ParentMesh_ > >::fill_attribute_sets(), and FEAT::Geometry::MeshFileWriter::write_meshpart().
| 
 | inline | 
Returns the total number of Attributes in this MeshPart.
Definition at line 356 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_mesh_attributes.
| 
 | inline | 
Returns the number of entities.
| [in] | dim | The dimension of the entity whose count is to be returned. Must be 0 <= dim<= shape_dim. | 
dim. Definition at line 311 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_num_entities, FEAT::Geometry::MeshPart< MeshType_ >::shape_dim, and XASSERT.
Referenced by FEAT::Geometry::MeshPartExtruderFactory< ConformalMesh< Shape::Hypercube< 2 >, 2, Coord_ > >::MeshPartExtruderFactory(), FEAT::Geometry::StandardRefinery< MeshPart< ParentMesh_ > >::StandardRefinery(), FEAT::Geometry::MeshPartOperations< MeshType_ >::copy_attributes(), FEAT::Geometry::Atlas::Bezier< Mesh_ >::project_meshpart(), FEAT::Geometry::Atlas::Circle< Mesh_ >::project_meshpart(), FEAT::Geometry::Atlas::Sphere< Mesh_ >::project_meshpart(), FEAT::Geometry::Atlas::SurfaceMesh< Mesh_ >::project_meshpart(), and FEAT::Geometry::MeshFileWriter::write_meshpart().
| 
 | inline | 
Return the reference to a target set.
| cell_dim_ | The dimension of the entity whose target set is to be returned. | 
Definition at line 433 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_target_set_holder, and FEAT::Geometry::MeshPart< MeshType_ >::shape_dim.
| 
 | inline | 
Return the reference to a target set.
| cell_dim_ | The dimension of the entity whose target set is to be returned. | 
Definition at line 442 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_target_set_holder, and FEAT::Geometry::MeshPart< MeshType_ >::shape_dim.
| 
 | inline | 
Checks if this MeshPart has a mesh topology.
Definition at line 297 of file mesh_part.hpp.
References FEAT::Geometry::MeshPart< MeshType_ >::_index_set_holder.
Referenced by FEAT::Geometry::ExportVTK< Mesh_, cell_dim_ >::ExportVTK(), FEAT::Geometry::StandardRefinery< MeshPart< ParentMesh_ > >::fill_attribute_sets(), FEAT::Geometry::StandardRefinery< MeshPart< ParentMesh_ > >::fill_index_sets(), FEAT::Geometry::MeshPart< MeshType_ >::get_index_set(), and FEAT::Geometry::MeshFileWriter::write_meshpart().
| 
 | inlinestatic | 
Returns the name of the class.
Definition at line 472 of file mesh_part.hpp.
| 
 | inline | 
Applies a mesh permutation onto this mesh part's target sets.
| [in] | mesh_perm | A transient reference to the mesh permutation that is to be applied. | 
Definition at line 483 of file mesh_part.hpp.
References FEAT::Geometry::MeshPermutation< Shape_ >::get_inv_perms().
| 
 | protected | 
The index sets of the mesh.
Definition at line 166 of file mesh_part.hpp.
Referenced by FEAT::Geometry::MeshPart< MeshType_ >::MeshPart(), FEAT::Geometry::MeshPart< MeshType_ >::bytes(), FEAT::Geometry::MeshPart< MeshType_ >::clone(), FEAT::Geometry::MeshPart< MeshType_ >::deduct_topology(), FEAT::Geometry::MeshPart< MeshType_ >::get_index_set(), and FEAT::Geometry::MeshPart< MeshType_ >::has_topology().
| 
 | protected | 
The attribute sets of the mesh.
Definition at line 170 of file mesh_part.hpp.
Referenced by FEAT::Geometry::MeshPart< MeshType_ >::MeshPart(), FEAT::Geometry::MeshPart< MeshType_ >::add_attribute(), FEAT::Geometry::MeshPart< MeshType_ >::bytes(), FEAT::Geometry::MeshPart< MeshType_ >::find_attribute(), FEAT::Geometry::MeshPart< MeshType_ >::get_mesh_attributes(), and FEAT::Geometry::MeshPart< MeshType_ >::get_num_attributes().
| 
 | protected | 
Number of entities for each shape dimension.
Definition at line 164 of file mesh_part.hpp.
Referenced by FEAT::Geometry::MeshPart< MeshType_ >::MeshPart(), FEAT::Geometry::MeshPart< MeshType_ >::deduct_target_sets_from_bottom(), FEAT::Geometry::MeshPart< MeshType_ >::deduct_target_sets_from_top(), FEAT::Geometry::MeshPart< MeshType_ >::deduct_topology(), and FEAT::Geometry::MeshPart< MeshType_ >::get_num_entities().
| 
 | protected | 
The target sets of the mesh.
Definition at line 168 of file mesh_part.hpp.
Referenced by FEAT::Geometry::MeshPart< MeshType_ >::MeshPart(), FEAT::Geometry::MeshPart< MeshType_ >::bytes(), FEAT::Geometry::MeshPart< MeshType_ >::clone(), FEAT::Geometry::MeshPart< MeshType_ >::deduct_target_sets_from_bottom(), FEAT::Geometry::MeshPart< MeshType_ >::deduct_target_sets_from_top(), FEAT::Geometry::MeshPart< MeshType_ >::deduct_topology(), and FEAT::Geometry::MeshPart< MeshType_ >::get_target_set().
| 
 | staticconstexpr | 
Shape dimension.
Definition at line 103 of file mesh_part.hpp.
Referenced by FEAT::Geometry::MeshPart< MeshType_ >::MeshPart(), FEAT::Geometry::MeshPart< MeshType_ >::get_num_entities(), and FEAT::Geometry::MeshPart< MeshType_ >::get_target_set().