|
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 with part_name will 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(), and FEAT::Control::Domain::AdaptivePartiDomainControl< DomainLevel_, TemplateSet_ >::project_mesh_node().
|
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::AdaptivePartiDomainControl< DomainLevel_, TemplateSet_ >::_compute_weights(), FEAT::Control::Domain::CGALDomainControl< DomainLevel_ >::_compute_weights(), FEAT::Control::Domain::CGALDomainControl< DomainLevel_ >::_deslag_mesh_node(), FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::_deslag_mesh_node(), FEAT::Control::Domain::CGALDomainControl< DomainLevel_ >::_deslag_patch_halos(), 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::Control::Domain::AdaptivePartiDomainControl< DomainLevel_, TemplateSet_ >::project_mesh_node(), FEAT::Control::Domain::AdaptivePartiDomainControl< DomainLevel_, TemplateSet_ >::refine_partially(), FEAT::Meshopt::MeshConcentrationFunction< ElementalFunction_, Trafo_, RefCellTrafo_ >::set_mesh_node(), FEAT::Control::Domain::AdaptivePartiDomainControl< DomainLevel_, TemplateSet_ >::sync_subdivision_levels(), 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::Control::Domain::AdaptivePartiDomainControl< DomainLevel_, TemplateSet_ >::project_mesh_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().