| FEAT 3
    Finite Element Analysis Toolbox | 
Mesh Node base class. More...
#include <mesh_node.hpp>
 
  
| Classes | |
| class | MeshPartNodeBin | 
| Container class for bundling MeshPartNodes with their corresponding charts.  More... | |
| Public Types | |
| typedef MeshAtlas< RootMeshType > | MeshAtlasType | 
| the mesh atlas type  More... | |
| typedef Atlas::ChartBase< RootMeshType > | MeshChartType | 
| the mesh chart type  More... | |
| typedef MeshPartNode< RootMeshType > | MeshPartNodeType | 
| the mesh part node type  More... | |
| typedef MeshPart< RootMeshType > | MeshPartType | 
| the mesh part type  More... | |
| typedef ThisMesh_ | MeshType | 
| mesh type of this node, can be a Mesh or MeshPart  More... | |
| typedef RootMesh_ | RootMeshType | 
| the root mesh type, has to be a Mesh  More... | |
| Public Member Functions | |
| virtual | ~MeshNode () | 
| Virtual destructor.  More... | |
| void | adapt (bool recursive=true) | 
| Adapts this mesh node.  More... | |
| bool | adapt_by_name (const String &part_name, bool recursive=false) | 
| Adapts this mesh node.  More... | |
| MeshPartNodeType * | add_mesh_part (const String &part_name, std::unique_ptr< MeshPartType > mesh_part, const String &chart_name="", const MeshChartType *chart=nullptr) | 
| Adds a new mesh-part child node.  More... | |
| MeshPartNodeType * | add_mesh_part_node (const String &part_name, std::unique_ptr< MeshPartNodeType > mesh_part_node, const String &chart_name="", const MeshChartType *chart=nullptr) | 
| Adds a new mesh-part child node.  More... | |
| std::size_t | bytes () const | 
| MeshPartType * | find_mesh_part (const String &part_name) | 
| Searches this container for a MeshPart.  More... | |
| const MeshPartType * | find_mesh_part (const String &part_name) const | 
| Searches this container for a MeshPart.   More... | |
| const MeshChartType * | find_mesh_part_chart (const String &part_name) const | 
| Searches for a chart belonging to a MeshPart by name.  More... | |
| String | find_mesh_part_chart_name (const String &part_name) const | 
| Searches for a chart name belonging to a MeshPart by name.  More... | |
| MeshPartNodeType * | find_mesh_part_node (const String &part_name) | 
| Searches this container for a MeshPartNode.  More... | |
| const MeshPartNodeType * | find_mesh_part_node (const String &part_name) const | 
| Searches this container for a MeshPartNode.   More... | |
| MeshType * | get_mesh () | 
| Returns the mesh of this node.  More... | |
| const MeshType * | get_mesh () const | 
| Returns the mesh of this node.   More... | |
| std::deque< String > | get_mesh_part_names (bool no_internals=false) const | 
| Returns the names of all mesh parts of this node.  More... | |
| void | remove_all_mesh_parts () | 
| Removes all mesh parts from this mesh node.  More... | |
| bool | remove_mesh_part (const String &part_name) | 
| Removes a mesh-part and its corresponding node.  More... | |
| void | rename_mesh_parts (const std::map< String, String > &renames) | 
| Renames a set of mesh-parts.  More... | |
| void | set_mesh (std::unique_ptr< MeshType > mesh) | 
| bool | set_mesh_part_chart (const String &part_name, const String &chart_name, const MeshChartType *chart) | 
| Sets the chart for a particular mesh part.  More... | |
| Static Public Member Functions | |
| static String | name () | 
| Returns the name of the class.  More... | |
| Protected Types | |
| typedef MeshPartNodeContainer::const_iterator | MeshPartNodeConstIterator | 
| submesh node const-iterator type  More... | |
| typedef std::map< String, MeshPartNodeBin > | MeshPartNodeContainer | 
| submesh node bin container type  More... | |
| typedef MeshPartNodeContainer::iterator | MeshPartNodeIterator | 
| submesh node iterator type  More... | |
| typedef MeshPartNodeContainer::reverse_iterator | MeshPartNodeReverseIterator | 
| submesh node reverse-iterator type  More... | |
| Protected Member Functions | |
| MeshNode (std::unique_ptr< MeshType > mesh) | |
| Constructor.  More... | |
| void | refine_children (MeshNode &refined_node) const | 
| Refines all child nodes of this node.  More... | |
| void | refine_mesh_parts (MeshNode &refined_node) const | 
| Refines all child MeshPart nodes of this node.  More... | |
| Protected Attributes | |
| std::unique_ptr< MeshType > | _mesh | 
| a pointer to the mesh of this node  More... | |
| MeshPartNodeContainer | _mesh_part_nodes | 
| child submesh nodes  More... | |
Mesh Node base class.
A MeshNode is a container for bundling a mesh with MeshParts referring to it.
| Policy_ | Bundle of type names for meshes and partial meshes. | 
| MeshNodePolicy_ | Bundle of type names for other MeshNodes containing meshes and MeshParts. | 
Definition at line 117 of file mesh_node.hpp.
| typedef MeshAtlas<RootMeshType> FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::MeshAtlasType | 
the mesh atlas type
Definition at line 129 of file mesh_node.hpp.
| typedef Atlas::ChartBase<RootMeshType> FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::MeshChartType | 
the mesh chart type
Definition at line 131 of file mesh_node.hpp.
| 
 | protected | 
submesh node const-iterator type
Definition at line 176 of file mesh_node.hpp.
| 
 | protected | 
submesh node bin container type
Definition at line 172 of file mesh_node.hpp.
| 
 | protected | 
submesh node iterator type
Definition at line 174 of file mesh_node.hpp.
| 
 | protected | 
submesh node reverse-iterator type
Definition at line 178 of file mesh_node.hpp.
| typedef MeshPartNode<RootMeshType> FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::MeshPartNodeType | 
the mesh part node type
Definition at line 127 of file mesh_node.hpp.
| typedef MeshPart<RootMeshType> FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::MeshPartType | 
the mesh part type
Definition at line 125 of file mesh_node.hpp.
| typedef ThisMesh_ FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::MeshType | 
mesh type of this node, can be a Mesh or MeshPart
Definition at line 123 of file mesh_node.hpp.
| typedef RootMesh_ FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::RootMeshType | 
the root mesh type, has to be a Mesh
Definition at line 121 of file mesh_node.hpp.
| 
 | inlineexplicitprotected | 
Constructor.
| [in] | mesh | A resident unique pointer to the mesh for this node. | 
Definition at line 193 of file mesh_node.hpp.
| 
 | inlinevirtual | 
Virtual destructor.
Definition at line 203 of file mesh_node.hpp.
| 
 | inline | 
Adapts this mesh node.
This function loops over all MeshPart nodes and uses their associated charts (if given) to adapt the mesh in this node.
| [in] | recursive | If set to true, all mesh_part nodes are adapted prior to adapting this node. | 
Definition at line 481 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh, and FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh_part_nodes.
| 
 | inline | 
Adapts this mesh node.
This function adapts this node by a specific chart whose name is given.
| [in] | part_name | The name of the mesh_part node that is to be used for adaption. | 
| [in] | recursive | If set to true, the mesh_part node associated withpart_namewill be adapted prior to adapting this node. | 
true if this node was adapted successfully or false if no node is associated with part_name or if the node did not contain any chart. Definition at line 523 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh, and FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh_part_nodes.
Referenced by FEAT::Meshopt::DuDvFunctional< DT_, IT_, TrafoType_, MatrixType_ >::prepare(), and FEAT::Meshopt::HyperelasticityFunctional< DT_, IT_, Trafo_, CellFunctionalType_, RefCellTrafo_ >::prepare_pre_sync().
| 
 | inline | 
Adds a new mesh-part child node.
| [in] | part_name | The name of the child node. | 
| [in] | mesh_part | A resident unique pointer to the mesh_part to be added. | 
| [in] | chart_name | The name of the chart that the mesh-part is to be linked to. | 
| [in] | chart | A resident pointer to the chart that the subnode is to be associated with. May be nullptr. | 
nullptr. Definition at line 316 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::add_mesh_part_node(), and FEAT::Geometry::MeshPartNode< RootMesh_ >::make_unique().
Referenced by FEAT::Geometry::MeshExtruder< ConformalMesh< Shape::Hypercube< 2 >, 2, Coord_ > >::extrude_root_node().
| 
 | inline | 
Adds a new mesh-part child node.
| [in] | part_name | The name of the child node. | 
| [in] | mesh_part_node | A resident unique pointer to the mesh_part node to be added. | 
| [in] | chart_name | The name of the chart that the mesh-part is to be linked to. | 
| [in] | chart | A resident pointer to the chart that the subnode is to be associated with. May be nullptr. | 
nullptr. Definition at line 281 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh_part_nodes.
Referenced by FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::add_mesh_part(), and FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::refine_mesh_parts().
| 
 | inline | 
Definition at line 209 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh, and FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh_part_nodes.
| 
 | inline | 
Searches this container for a MeshPart.
| [in] | part_name | The name of the node associated with the mesh_part to be found. | 
part_name or nullptr if no such node was found. Definition at line 398 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::find_mesh_part_node(), and FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::get_mesh().
Referenced by FEAT::Meshopt::DuDvFunctional< DT_, IT_, TrafoType_, MatrixType_ >::DuDvFunctional(), FEAT::Meshopt::HyperelasticityFunctional< DT_, IT_, Trafo_, CellFunctionalType_, RefCellTrafo_ >::HyperelasticityFunctional(), FEAT::Geometry::MeshExtruder< ConformalMesh< Shape::Hypercube< 2 >, 2, Coord_ > >::extrude_root_node(), FEAT::Meshopt::MeshConcentrationFunction< ElementalFunction_, Trafo_, RefCellTrafo_ >::set_mesh_node(), and FEAT::Geometry::MeshFileWriter::write().
| 
 | inline | 
Searches this container for a MeshPart.
| [in] | part_name | The name of the node associated with the mesh_part to be found. | 
part_name or nullptr if no such node was found.  Definition at line 405 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::find_mesh_part_node(), and FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::get_mesh().
| 
 | inline | 
Searches for a chart belonging to a MeshPart by name.
| [in] | part_name | The name of the node associated with the chart to be found. | 
part_name of nullptr if no such node was found or if the corresponding node did not have a chart. Definition at line 421 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh_part_nodes.
| 
 | inline | 
Searches for a chart name belonging to a MeshPart by name.
| [in] | part_name | The name of the node associated with the chart to be found. | 
part_name or an empty string is no such node was found. Definition at line 437 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh_part_nodes.
Referenced by FEAT::Geometry::MeshExtruder< ConformalMesh< Shape::Hypercube< 2 >, 2, Coord_ > >::extrude_root_node(), and FEAT::Geometry::MeshFileWriter::write().
| 
 | inline | 
Searches this container for a MeshPartNode.
| [in] | part_name | The name of the node to be found. | 
part_name or nullptr if no such node was found. Definition at line 376 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh_part_nodes.
Referenced by FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::find_mesh_part().
| 
 | inline | 
Searches this container for a MeshPartNode.
| [in] | part_name | The name of the node to be found. | 
part_name or nullptr if no such node was found.  Definition at line 383 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh_part_nodes.
| 
 | inline | 
Returns the mesh of this node.
Definition at line 225 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh.
Referenced by FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_apply_parti(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_apply_parti_genetic(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_apply_parti_metis(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_apply_parti_naive(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_apply_parti_zoltan(), FEAT::Geometry::DistributedMeshDistortion< MeshType_ >::_calc_vertex_owners(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_check_parti(), FEAT::Control::Domain::PartiDomainControl< DomainLevel_ >::_check_parti_2level(), FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::_deslag_mesh_node(), FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::_deslag_patch_halos(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::_split_basemesh_halos(), FEAT::Geometry::DistributedMeshDistortion< MeshType_ >::_synchronize(), FEAT::Meshopt::MeshConcentrationFunction< ElementalFunction_, Trafo_, RefCellTrafo_ >::add_constraint_grad(), FEAT::Meshopt::MeshConcentrationFunction< ElementalFunction_, Trafo_, RefCellTrafo_ >::compute_conc(), FEAT::Meshopt::MeshConcentrationFunction< ElementalFunction_, Trafo_, RefCellTrafo_ >::compute_constraint(), FEAT::Meshopt::ChartDistanceFunction< ElementalFunction_, Trafo_, RefCellTrafo_ >::compute_dist_add(), FEAT::Meshopt::ChartDistanceFunction< ElementalFunction_, Trafo_, RefCellTrafo_ >::compute_dist_max(), FEAT::Meshopt::ChartDistanceFunction< ElementalFunction_, Trafo_, RefCellTrafo_ >::compute_dist_min(), FEAT::Meshopt::MeshConcentrationFunction< ElementalFunction_, Trafo_, RefCellTrafo_ >::compute_grad_conc(), FEAT::Meshopt::MeshConcentrationFunction< ElementalFunction_, Trafo_, RefCellTrafo_ >::compute_grad_h(), FEAT::Meshopt::MeshConcentrationFunction< ElementalFunction_, Trafo_, RefCellTrafo_ >::compute_grad_sum_det(), FEAT::Geometry::MeshExtruder< ConformalMesh< Shape::Hypercube< 2 >, 2, Coord_ > >::extrude_root_node(), FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::find_mesh_part(), FEAT::Meshopt::MeshQualityFunctional< MeshType_ >::get_mesh(), FEAT::Meshopt::MeshConcentrationFunction< ElementalFunction_, Trafo_, RefCellTrafo_ >::set_mesh_node(), and FEAT::Geometry::MeshFileWriter::write().
| 
 | inline | 
Returns the mesh of this node.
Definition at line 231 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh.
| 
 | inline | 
Returns the names of all mesh parts of this node.
| [in] | no_internals | Specifies whether to skip all internal mesh-parts whose names begin with an underscore. | 
Definition at line 251 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh_part_nodes.
Referenced by FEAT::Geometry::MeshExtruder< ConformalMesh< Shape::Hypercube< 2 >, 2, Coord_ > >::extrude_root_node(), FEAT::Meshopt::MeshConcentrationFunction< ElementalFunction_, Trafo_, RefCellTrafo_ >::set_mesh_node(), and FEAT::Geometry::MeshFileWriter::write().
| 
 | inlinestatic | 
Returns the name of the class.
Definition at line 553 of file mesh_node.hpp.
| 
 | inlineprotected | 
Refines all child nodes of this node.
| [in,out] | refined_node | A reference to the node generated by refining this node. | 
Definition at line 565 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::refine_mesh_parts().
| 
 | inlineprotected | 
Refines all child MeshPart nodes of this node.
| [in,out] | refined_node | A reference to the node generated by refining this node. | 
Definition at line 577 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh, FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh_part_nodes, and FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::add_mesh_part_node().
Referenced by FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::refine_children().
| 
 | inline | 
Removes all mesh parts from this mesh node.
Definition at line 339 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh_part_nodes.
| 
 | inline | 
Removes a mesh-part and its corresponding node.
| [in] | part_name | The name of the child node to be removed | 
true, if a mesh-part with the corresponding name was removed, otherwise false. Definition at line 333 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh_part_nodes.
| 
 | inline | 
Renames a set of mesh-parts.
| [in] | renames | A transient map of oldname-newname pairs. | 
Definition at line 449 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh_part_nodes.
| 
 | inline | 
Definition at line 236 of file mesh_node.hpp.
| 
 | inline | 
Sets the chart for a particular mesh part.
| [in] | part_name | The name of the mesh part that the chart is to be assigned to. | 
| [in] | chart | A resident pointer to the chart that is to be assigned. May also be nullptr. | 
true if the chart was assigned successfully or false if no mesh part with the specified name was found. Definition at line 357 of file mesh_node.hpp.
References FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::_mesh_part_nodes.
| 
 | protected | 
a pointer to the mesh of this node
Definition at line 182 of file mesh_node.hpp.
Referenced by FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::adapt(), FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::adapt_by_name(), FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::bytes(), FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::get_mesh(), and FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::refine_mesh_parts().
| 
 | protected | 
child submesh nodes
Definition at line 184 of file mesh_node.hpp.
Referenced by FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::adapt(), FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::adapt_by_name(), FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::add_mesh_part_node(), FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::bytes(), FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::find_mesh_part_chart(), FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::find_mesh_part_chart_name(), FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::find_mesh_part_node(), FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::get_mesh_part_names(), FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::refine_mesh_parts(), FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::remove_all_mesh_parts(), FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::remove_mesh_part(), FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::rename_mesh_parts(), and FEAT::Geometry::MeshNode< RootMesh_, ThisMesh_ >::set_mesh_part_chart().