Namespaces | |
| namespace | cohomology |
| namespace | normals |
| namespace | proto |
Classes | |
| class | Basis |
| class | BeltedTree |
| class | BfmFile |
| class | Block |
| class | Chain |
| Formal sum of k-simplices (homology). More... | |
| class | Cochain |
| Cochain: a functional on chains (cohomology). More... | |
| class | Cohomology |
| Computes the cohomology groups H^k of a mesh complex. More... | |
| class | CommTable |
| class | ConnectivityCalculator |
| Computes element-to-element and node-to-node connectivity for finite element meshes. More... | |
| class | ControlPoint |
| class | Curve |
| class | CurvedElementChecker |
| this temporary class is created by mesh->flag_curved_elements(). More... | |
| class | CurveFactory |
| class | CutData |
| Per-cut topology and metadata. More... | |
| class | CutFactory |
| Main orchestrator for automatic cut generation on multiply-connected domains. More... | |
| class | CutProcessor |
| Converts thick cuts into the thin cuts the FEM assembly consumes. More... | |
| class | CutProcessorManual |
| class | CutSet |
| class | Distributor |
| class | Edge |
| Special Edge class for NEDELEC-Type elements. More... | |
| class | EdgeCutter |
| class | EdgeFactory |
| class | Element |
| Lagrange Element baseclass. More... | |
| class | ElementFactory |
| class | ElementTemplate |
| Lagrange Element templated against. More... | |
| class | ExodusWriter |
| class | Face |
| class | FaceFactory |
| class | Facet |
| class | Field |
| class | GlobalVariable |
| class | GmshReader |
| class | Homology |
| Computes the homology groups H_k of a mesh complex. More... | |
| class | InterfaceProcessor |
| class | InterfaceSet |
| struct | Layer |
| this is a supporting data type for the tape generation the mesh entities are passed over to the mesh and will be deleted by the mesh during destruction More... | |
| class | Node |
| struct | OpNodeIndex |
| struct | OpSegmentIndex |
| class | Partitioner |
| class | Periodicity |
| Stores matched periodic boundary entity pairs (nodes, edges, faces). More... | |
| class | PeriodicityFactory |
| Creates a Periodicity object by matching nodes on two periodic boundary planes. More... | |
| class | Pipette |
| the pipette is a class that measures the volume of an element More... | |
| class | ProtoMesh |
| class | ReferenceElement |
| class | Segment |
| class | SideSet |
| class | SimplicialComplex |
| Simplicial complex reduction engine underlying the homology and cohomology computation. More... | |
| class | SourceExpander |
| class | ThinShell |
| the thin shell class is a data container needed to link element masters and slaves to thin shell blocks More... | |
| class | ThinShellFactory |
| class | Topology |
| Analyzes and classifies mesh topology for finite element simulations. More... | |
| class | Vertex |
| class | VtkWriter |
Enumerations | |
| enum class | InterfaceTreatment { TieWeight1 , Decouple } |
| enum class | CutAlgorithm { Pellikka = 0 , CCR = 1 , BeltedTree = 2 , PellikkaGeneralized = 3 , UNDEFINED = 4 } |
Functions | |
| void | compute_edge_lengths (const uint aDimension, Cell< mesh::Element * > &aElements, Vector< real > &aEdgeLength) |
| real | compute_surface (Mesh *aMesh, const Vector< id_t > &aSideSetIDs) |
| Collective: every rank contributes its owned facets and every rank returns the total. | |
| void | compute_surface_normals (Mesh *aMesh, const Vector< id_t > &aGroupIDs, const GroupType aGroupType, const bool aComputeInParallel) |
| real | compute_volume (Mesh *aMesh, const id_t aBlockIDs) |
| Collective: every rank contributes its owned elements and every rank returns the total. | |
| real | compute_volume (Mesh *aMesh, const Vector< id_t > &aBlockIDs) |
| real | integrate_scalar_over_sidesets (Mesh *aMesh, const string &aFieldLabel, const Vector< id_t > &aSidesetIDs, const proc_t aMasterRank) |
| Every rank must call it. | |
| string | to_string (CutAlgorithm aCutAlgorithm) |
| CutAlgorithm | to_cut_algorithm (const string &aCutAlgorithm) |
| uint | compute_facet_index (Facet *aFacet, Element *aElement, Cell< Node * > &aNodes) |
| template<typename T> | |
| void | collect_hanging_basis (Cell< T * > &aBasis, Cell< T * > &aHangingBasis) |
| bool | check_facet_orientation (const Facet *aA, const Facet *aB) |
| Checks whether two adjacent facets have consistent orientation. | |
| void | symrcm (Cell< Node * > &aNodes) |
| void | read_node_tmatrix_from_hdf5 (Mesh *aMesh, const string &aFile) |
| void | to_master_orientation (Facet *aFacet, Cell< Node * > &aSlaveOrientation, Cell< Node * > &aMasterOrientation) |
| void | to_master_orientation (Face *aFace, Cell< Node * > &aSlaveOrientation, Cell< Node * > &aMasterOrientation) |
| void | to_master_orientation (Facet *aFacet, Cell< Edge * > &aSlaveOrientation, Cell< Edge * > &aMasterOrientation) |
| void | to_master_orientation (Face *aFace, Cell< Edge * > &aSlaveOrientation, Cell< Edge * > &aMasterOrientation) |
| void | unflag_elements (Cell< Element * > &aElements) |
| void | collect_node_coords (Element *aElement, Matrix< real > &aNodeCoords, const uint aNumberOfDimensions, const bool aCornerNodesOnly) |
| void | collect_node_data (Element *aElement, const Vector< real > &aFieldOnMesh, Vector< real > &aNodalField, const bool aCornerNodesOnly) |
| real | compute_surface_increment (const Matrix< real > &adNdXi, const Matrix< real > &aNodeCoords, const uint aNumSpatialDimensions) |
| unsigned int | number_of_nodes (const enum ElementType aElementType) |
| unsigned int | number_of_edges (const enum ElementType aElementType) |
| belfem::InterpolationOrder | interpolation_order (const enum ElementType aElementType) |
| unsigned int | interpolation_order_numeric (const enum ElementType aElementType) |
| belfem::GeometryType | geometry_type (const enum ElementType aElementType) |
| int | dimension (const enum GeometryType aGeometryType) |
| int | dimension (const enum ElementType aElementType) |
| ElementType | element_type_from_gmsh (const int aGmshNumber) |
| int | gmsh_from_element_type (const ElementType aElementType) |
| ElementType | linear_element_type (const ElementType aElementType) |
| unsigned int | number_of_corner_nodes (const enum ElementType aElementType) |
| unsigned int | number_of_facets (const enum ElementType aElementType) |
| unsigned int | bottom_facet_index (const enum ElementType aElementType) |
| Facet index of the "lower" face of a thin-shell element (the face whose outward normal points away from the shell on the bottom-layer side). | |
| unsigned int | top_facet_index (const enum ElementType aElementType) |
| Facet index of the "upper" face of a thin-shell element (the face whose outward normal points away from the shell on the top-layer side). | |
| unsigned int | number_of_faces (const enum ElementType aElementType) |
| ElementType | element_type_of_facet (const ElementType aElementType, const unsigned int aFacetIndex) |
| uint | number_of_orientations (const ElementType aElementType, const uint aFacetNumber) |
| uint | number_of_nedelec_dofs (const ElementType aElementType) |
| ElementType | element_type_from_numnodes (const uint aDimension, const uint aNumNodes, const bool aAsThinshell) |
| void | get_bottom_nodes (Element *aElement, Cell< Node * > &aNodes) |
| void | get_top_nodes (Element *aElement, Cell< Node * > &aNodes) |
| void | get_bottom_edges (Element *aElement, Cell< Edge * > &aEdges) |
| void | get_top_edges (Element *aElement, Cell< Edge * > &aEdges) |
Variables | |
| struct belfem::mesh::OpNodeIndex | opNodeIndex |
| struct belfem::mesh::OpSegmentIndex | opSegmentIndex |
|
strong |
|
strong |
| unsigned int belfem::mesh::bottom_facet_index | ( | const enum ElementType | aElementType | ) |
Facet index of the "lower" face of a thin-shell element (the face whose outward normal points away from the shell on the bottom-layer side).
Dispatches on geometry type: volume QUAD/PENTA/HEX types return the same slot as their thin-shell twin; errors for geometries without a thin-shell variant ( TRI, TET, PYRA, LINE, VERTEX ).
Checks whether two adjacent facets have consistent orientation.
In 3D, facets are polygons and adjacency means a shared edge: consistent outward normals traverse that edge in opposite directions:
Facet A: ... → P → Q → ... Facet B: ... → Q → P → ... (opposite → consistent)
If both traverse the shared edge in the same direction, the normals point in opposite directions (inverted).
For two-node facets ( 2D line segments ), two distinct facets share a single node, never an edge — consistency there means one traversal continues the other through the shared node:
Facet A: P → Q Facet B: Q → R (chain continues → consistent)
If both segments start, or both end, at the shared node, the normals are inverted. Coincident twins reduce to the 3D rule: reversed twin → consistent, identical twin → inverted. Nodes are compared via original() because the 2D facet-to-facet connectivity matches duplicates onto their originals.
| [in] | aA | first facet |
| [in] | aB | second facet (must share an edge, or in 2D a node, with aA) |
| void belfem::mesh::collect_hanging_basis | ( | Cell< T * > & | aBasis, |
| Cell< T * > & | aHangingBasis ) |
| void belfem::mesh::collect_node_coords | ( | Element * | aElement, |
| Matrix< real > & | aNodeCoords, | ||
| const uint | aNumberOfDimensions, | ||
| const bool | aCornerNodesOnly ) |
| void belfem::mesh::collect_node_data | ( | Element * | aElement, |
| const Vector< real > & | aFieldOnMesh, | ||
| Vector< real > & | aNodalField, | ||
| const bool | aCornerNodesOnly ) |
| void belfem::mesh::compute_edge_lengths | ( | const uint | aDimension, |
| Cell< mesh::Element * > & | aElements, | ||
| Vector< real > & | aEdgeLength ) |
| uint belfem::mesh::compute_facet_index | ( | Facet * | aFacet, |
| Element * | aElement, | ||
| Cell< Node * > & | aNodes ) |
Collective: every rank contributes its owned facets and every rank returns the total.
The result's unit is the square of the mesh coordinate unit, or the coordinate unit in 2D. aMesh is borrowed.
| real belfem::mesh::compute_surface_increment | ( | const Matrix< real > & | adNdXi, |
| const Matrix< real > & | aNodeCoords, | ||
| const uint | aNumSpatialDimensions ) |
| void belfem::mesh::compute_surface_normals | ( | Mesh * | aMesh, |
| const Vector< id_t > & | aGroupIDs, | ||
| const GroupType | aGroupType, | ||
| const bool | aComputeInParallel ) |
Collective: every rank contributes its owned elements and every rank returns the total.
The result's unit is the mesh coordinate unit raised to the mesh dimension. aMesh is borrowed. Both overloads share this contract.
| int belfem::mesh::dimension | ( | const enum ElementType | aElementType | ) |
| int belfem::mesh::dimension | ( | const enum GeometryType | aGeometryType | ) |
| ElementType belfem::mesh::element_type_from_gmsh | ( | const int | aGmshNumber | ) |
| ElementType belfem::mesh::element_type_from_numnodes | ( | const uint | aDimension, |
| const uint | aNumNodes, | ||
| const bool | aAsThinshell ) |
| ElementType belfem::mesh::element_type_of_facet | ( | const ElementType | aElementType, |
| const unsigned int | aFacetIndex ) |
| GeometryType belfem::mesh::geometry_type | ( | const enum ElementType | aElementType | ) |
| int belfem::mesh::gmsh_from_element_type | ( | const ElementType | aElementType | ) |
| real belfem::mesh::integrate_scalar_over_sidesets | ( | Mesh * | aMesh, |
| const string & | aFieldLabel, | ||
| const Vector< id_t > & | aSidesetIDs, | ||
| const proc_t | aMasterRank ) |
Every rank must call it.
The integral is computed on aMasterRank from that rank's mesh and then broadcast, so every rank returns it. Not a distributed integral: on a partitioned mesh only the master's entities are integrated.
| InterpolationOrder belfem::mesh::interpolation_order | ( | const enum ElementType | aElementType | ) |
| unsigned int belfem::mesh::interpolation_order_numeric | ( | const enum ElementType | aElementType | ) |
| ElementType belfem::mesh::linear_element_type | ( | const ElementType | aElementType | ) |
| unsigned int belfem::mesh::number_of_corner_nodes | ( | const enum ElementType | aElementType | ) |
| unsigned int belfem::mesh::number_of_edges | ( | const enum ElementType | aElementType | ) |
| unsigned int belfem::mesh::number_of_faces | ( | const enum ElementType | aElementType | ) |
| unsigned int belfem::mesh::number_of_facets | ( | const enum ElementType | aElementType | ) |
| uint belfem::mesh::number_of_nedelec_dofs | ( | const ElementType | aElementType | ) |
| unsigned int belfem::mesh::number_of_nodes | ( | const enum ElementType | aElementType | ) |
| uint belfem::mesh::number_of_orientations | ( | const ElementType | aElementType, |
| const uint | aFacetNumber ) |
|
inline |
| void belfem::mesh::to_master_orientation | ( | Face * | aFace, |
| Cell< Edge * > & | aSlaveOrientation, | ||
| Cell< Edge * > & | aMasterOrientation ) |
| void belfem::mesh::to_master_orientation | ( | Face * | aFace, |
| Cell< Node * > & | aSlaveOrientation, | ||
| Cell< Node * > & | aMasterOrientation ) |
| void belfem::mesh::to_master_orientation | ( | Facet * | aFacet, |
| Cell< Edge * > & | aSlaveOrientation, | ||
| Cell< Edge * > & | aMasterOrientation ) |
| void belfem::mesh::to_master_orientation | ( | Facet * | aFacet, |
| Cell< Node * > & | aSlaveOrientation, | ||
| Cell< Node * > & | aMasterOrientation ) |
|
inline |
| unsigned int belfem::mesh::top_facet_index | ( | const enum ElementType | aElementType | ) |
Facet index of the "upper" face of a thin-shell element (the face whose outward normal points away from the shell on the top-layer side).
Dispatches on geometry type: volume QUAD/PENTA/HEX types return the same slot as their thin-shell twin; errors for geometries without a thin-shell variant ( TRI, TET, PYRA, LINE, VERTEX ).
| struct belfem::mesh::OpNodeIndex belfem::mesh::opNodeIndex |
| struct belfem::mesh::OpSegmentIndex belfem::mesh::opSegmentIndex |