![]() |
MFEM v4.8.0
Finite element discretization library
|
Subdomain representation of a topological parent in another Mesh. More...
#include <submesh.hpp>
Public Types | |
| enum class | From { Domain , Boundary } |
| Indicator from which part of the parent Mesh the SubMesh is created. More... | |
Public Types inherited from mfem::Mesh | |
| enum | Operation { NONE , REFINE , DEREFINE , REBALANCE } |
| enum class | FaceTopology { Boundary , Conforming , Nonconforming , NA } |
| enum class | ElementLocation { Local , FaceNbr , NA } |
| enum class | ElementConformity { Coincident , Superset , Subset , NA } |
| enum class | FaceInfoTag { Boundary , LocalConforming , LocalSlaveNonconforming , SharedConforming , SharedSlaveNonconforming , MasterNonconforming , GhostSlave , GhostMaster } |
| typedef Geometry::Constants< Geometry::SEGMENT > | seg_t |
| typedef Geometry::Constants< Geometry::TRIANGLE > | tri_t |
| typedef Geometry::Constants< Geometry::SQUARE > | quad_t |
| typedef Geometry::Constants< Geometry::TETRAHEDRON > | tet_t |
| typedef Geometry::Constants< Geometry::CUBE > | hex_t |
| typedef Geometry::Constants< Geometry::PRISM > | pri_t |
| typedef Geometry::Constants< Geometry::PYRAMID > | pyr_t |
Public Member Functions | |
| SubMesh ()=delete | |
| SubMesh (SubMesh &&)=default | |
| SubMesh & | operator= (SubMesh &&)=default |
| const Mesh * | GetParent () const |
| Get the parent Mesh object. | |
| From | GetFrom () const |
| Get the From indicator. | |
| const Array< int > & | GetParentElementIDMap () const |
| Get the parent element id map. | |
| const Array< int > & | GetParentFaceIDMap () const |
| Get the face id map. | |
| const Array< int > & | GetParentEdgeIDMap () const |
| Get the edge id map. | |
| const Array< int > & | GetParentFaceOrientations () const |
| Get the relative face orientations. | |
| const Array< int > & | GetParentVertexIDMap () const |
| Get the parent vertex id map. | |
| int | GetSubMeshElementFromParent (int pe) const |
| Get the submesh element corresponding to a parent element. -1 == not present. | |
| int | GetSubMeshVertexFromParent (int pv) const |
| Get the submesh vertex corresponding to a parent element. -1 == not present. | |
| int | GetSubMeshEdgeFromParent (int pe) const |
| Get the submesh edge corresponding to a parent element. -1 == not present. | |
| int | GetSubMeshFaceFromParent (int pf) const |
| Get the submesh face corresponding to a parent element. -1 == not present. | |
Public Member Functions inherited from mfem::Mesh | |
| Mesh (const NURBSExtension &ext) | |
| Construct a Mesh from a NURBSExtension. | |
| Mesh () | |
| Mesh (const Mesh &mesh, bool copy_nodes=true) | |
| Mesh (Mesh &&mesh) | |
| Move constructor, useful for using a Mesh as a function return value. | |
| Mesh & | operator= (Mesh &&mesh) |
| Move assignment operator. | |
| Mesh & | operator= (const Mesh &mesh)=delete |
| Explicitly delete the copy assignment operator. | |
| Mesh (real_t *vertices, int num_vertices, int *element_indices, Geometry::Type element_type, int *element_attributes, int num_elements, int *boundary_indices, Geometry::Type boundary_type, int *boundary_attributes, int num_boundary_elements, int dimension, int space_dimension=-1) | |
| Construct a Mesh from the given primary data. | |
| Mesh (int Dim_, int NVert, int NElem, int NBdrElem=0, int spaceDim_=-1) | |
| Init constructor: begin the construction of a Mesh object. | |
| Mesh (const std::string &filename, int generate_edges=0, int refine=1, bool fix_orientation=true) | |
| Mesh (std::istream &input, int generate_edges=0, int refine=1, bool fix_orientation=true) | |
| Mesh (Mesh *mesh_array[], int num_pieces) | |
| virtual void | Load (std::istream &input, int generate_edges=0, int refine=1, bool fix_orientation=true) |
| void | Swap (Mesh &other, bool non_geometry) |
| void | Clear () |
| Clear the contents of the Mesh. | |
| virtual | ~Mesh () |
| Destroys Mesh. | |
| Element * | NewElement (int geom) |
| int | AddVertex (real_t x, real_t y=0.0, real_t z=0.0) |
| int | AddVertex (const real_t *coords) |
| int | AddVertex (const Vector &coords) |
| void | AddVertexParents (int i, int p1, int p2) |
| Mark vertex i as nonconforming, with parent vertices p1 and p2. | |
| int | AddVertexAtMeanCenter (const int *vi, const int nverts, int dim=3) |
| int | AddSegment (int v1, int v2, int attr=1) |
| Adds a segment to the mesh given by 2 vertices v1 and v2. | |
| int | AddSegment (const int *vi, int attr=1) |
| Adds a segment to the mesh given by 2 vertices vi. | |
| int | AddTriangle (int v1, int v2, int v3, int attr=1) |
| Adds a triangle to the mesh given by 3 vertices v1 through v3. | |
| int | AddTriangle (const int *vi, int attr=1) |
| Adds a triangle to the mesh given by 3 vertices vi. | |
| int | AddTri (const int *vi, int attr=1) |
| Adds a triangle to the mesh given by 3 vertices vi. | |
| int | AddQuad (int v1, int v2, int v3, int v4, int attr=1) |
| Adds a quadrilateral to the mesh given by 4 vertices v1 through v4. | |
| int | AddQuad (const int *vi, int attr=1) |
| Adds a quadrilateral to the mesh given by 4 vertices vi. | |
| int | AddTet (int v1, int v2, int v3, int v4, int attr=1) |
| Adds a tetrahedron to the mesh given by 4 vertices v1 through v4. | |
| int | AddTet (const int *vi, int attr=1) |
| Adds a tetrahedron to the mesh given by 4 vertices vi. | |
| int | AddWedge (int v1, int v2, int v3, int v4, int v5, int v6, int attr=1) |
| Adds a wedge to the mesh given by 6 vertices v1 through v6. | |
| int | AddWedge (const int *vi, int attr=1) |
| Adds a wedge to the mesh given by 6 vertices vi. | |
| int | AddPyramid (int v1, int v2, int v3, int v4, int v5, int attr=1) |
| Adds a pyramid to the mesh given by 5 vertices v1 through v5. | |
| int | AddPyramid (const int *vi, int attr=1) |
| Adds a pyramid to the mesh given by 5 vertices vi. | |
| int | AddHex (int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8, int attr=1) |
| Adds a hexahedron to the mesh given by 8 vertices v1 through v8. | |
| int | AddHex (const int *vi, int attr=1) |
| Adds a hexahedron to the mesh given by 8 vertices vi. | |
| void | AddHexAsTets (const int *vi, int attr=1) |
| Adds 6 tetrahedrons to the mesh by splitting a hexahedron given by 8 vertices vi. | |
| void | AddHexAsWedges (const int *vi, int attr=1) |
| Adds 2 wedges to the mesh by splitting a hexahedron given by 8 vertices vi. | |
| void | AddHexAsPyramids (const int *vi, int attr=1) |
| Adds 6 pyramids to the mesh by splitting a hexahedron given by 8 vertices vi. | |
| void | AddHexAs24TetsWithPoints (int *vi, std::map< std::array< int, 4 >, int > &hex_face_verts, int attr=1) |
| Adds 24 tetrahedrons to the mesh by splitting a hexahedron. | |
| void | AddQuadAs4TrisWithPoints (int *vi, int attr=1) |
| Adds 4 triangles to the mesh by splitting a quadrilateral given by 4 vertices vi. | |
| void | AddQuadAs5QuadsWithPoints (int *vi, int attr=1) |
| Adds 5 quadrilaterals to the mesh by splitting a quadrilateral given by 4 vertices vi. | |
| int | AddElement (Element *elem) |
| int | AddBdrElement (Element *elem) |
| void | AddBdrElements (Array< Element * > &bdr_elems, const Array< int > &be_to_face) |
| Add an array of boundary elements to the mesh, along with map from the elements to their faces. | |
| int | AddBdrSegment (int v1, int v2, int attr=1) |
| int | AddBdrSegment (const int *vi, int attr=1) |
| int | AddBdrTriangle (int v1, int v2, int v3, int attr=1) |
| int | AddBdrTriangle (const int *vi, int attr=1) |
| int | AddBdrQuad (int v1, int v2, int v3, int v4, int attr=1) |
| int | AddBdrQuad (const int *vi, int attr=1) |
| void | AddBdrQuadAsTriangles (const int *vi, int attr=1) |
| int | AddBdrPoint (int v, int attr=1) |
| virtual void | GenerateBoundaryElements () |
| void | FinalizeTriMesh (int generate_edges=0, int refine=0, bool fix_orientation=true) |
| Finalize the construction of a triangular Mesh. | |
| void | FinalizeQuadMesh (int generate_edges=0, int refine=0, bool fix_orientation=true) |
| Finalize the construction of a quadrilateral Mesh. | |
| void | FinalizeTetMesh (int generate_edges=0, int refine=0, bool fix_orientation=true) |
| Finalize the construction of a tetrahedral Mesh. | |
| void | FinalizeWedgeMesh (int generate_edges=0, int refine=0, bool fix_orientation=true) |
| Finalize the construction of a wedge Mesh. | |
| void | FinalizeHexMesh (int generate_edges=0, int refine=0, bool fix_orientation=true) |
| Finalize the construction of a hexahedral Mesh. | |
| void | FinalizeMesh (int refine=0, bool fix_orientation=true) |
| Finalize the construction of any type of Mesh. | |
| void | FinalizeTopology (bool generate_bdr=true) |
| Finalize the construction of the secondary topology (connectivity) data of a Mesh. | |
| virtual void | Finalize (bool refine=false, bool fix_orientation=false) |
| Finalize the construction of a general Mesh. | |
| virtual void | SetAttributes () |
| Determine the sets of unique attribute values in domain and boundary elements. | |
| int | CheckElementOrientation (bool fix_it=true) |
| Check (and optionally attempt to fix) the orientation of the elements. | |
| int | CheckBdrElementOrientation (bool fix_it=true) |
| Check the orientation of the boundary elements. | |
| virtual MFEM_DEPRECATED void | ReorientTetMesh () |
| void | RemoveUnusedVertices () |
| Remove unused vertices and rebuild mesh connectivity. | |
| void | RemoveInternalBoundaries () |
| void | DeleteBoundaryElementToEdge () |
| Clear the boundary element to edge map. | |
| real_t | GetGeckoElementOrdering (Array< int > &ordering, int iterations=4, int window=4, int period=2, int seed=0, bool verbose=false, real_t time_limit=0) |
| void | GetHilbertElementOrdering (Array< int > &ordering) |
| void | ReorderElements (const Array< int > &ordering, bool reorder_vertices=true) |
| MFEM_DEPRECATED | Mesh (int nx, int ny, int nz, Element::Type type, bool generate_edges=false, real_t sx=1.0, real_t sy=1.0, real_t sz=1.0, bool sfc_ordering=true) |
| Deprecated: see MakeCartesian3D. | |
| MFEM_DEPRECATED | Mesh (int nx, int ny, Element::Type type, bool generate_edges=false, real_t sx=1.0, real_t sy=1.0, bool sfc_ordering=true) |
| Deprecated: see MakeCartesian2D. | |
| MFEM_DEPRECATED | Mesh (int n, real_t sx=1.0) |
| Deprecated: see MakeCartesian1D. | |
| MFEM_DEPRECATED | Mesh (Mesh *orig_mesh, int ref_factor, int ref_type) |
| Deprecated: see MakeRefined. | |
| int | Dimension () const |
| Dimension of the reference space used within the elements. | |
| int | SpaceDimension () const |
| Dimension of the physical space containing the mesh. | |
| int | EulerNumber () const |
| Equals 1 + num_holes - num_loops. | |
| int | EulerNumber2D () const |
| Equals 1 - num_holes. | |
| int | MeshGenerator () const |
| Get the mesh generator/type. | |
| virtual bool | HasBoundaryElements () const |
| Checks if the mesh has boundary elements. | |
| bool | HasGeometry (Geometry::Type geom) const |
| Return true iff the given geom is encountered in the mesh. Geometries of dimensions lower than Dimension() are counted as well. | |
| int | GetNumGeometries (int dim) const |
| Return the number of geometries of the given dimension present in the mesh. | |
| void | GetGeometries (int dim, Array< Geometry::Type > &el_geoms) const |
| Return all element geometries of the given dimension present in the mesh. | |
| void | GetBoundingBox (Vector &min, Vector &max, int ref=2) |
| Returns the minimum and maximum corners of the mesh bounding box. | |
| void | GetCharacteristics (real_t &h_min, real_t &h_max, real_t &kappa_min, real_t &kappa_max, Vector *Vh=NULL, Vector *Vk=NULL) |
| int | GetNV () const |
| Returns number of vertices. Vertices are only at the corners of elements, where you would expect them in the lowest-order mesh. | |
| int | GetNE () const |
| Returns number of elements. | |
| int | GetNBE () const |
| Returns number of boundary elements. | |
| int | GetNEdges () const |
| Return the number of edges. | |
| int | GetNFaces () const |
| Return the number of faces in a 3D mesh. | |
| int | GetNumFaces () const |
| Return the number of faces (3D), edges (2D) or vertices (1D). | |
| int | GetNumFacesWithGhost () const |
| Return the number of faces (3D), edges (2D) or vertices (1D) including ghost faces. | |
| virtual int | GetNFbyType (FaceType type) const |
| Returns the number of faces according to the requested type, does not count master nonconforming faces. | |
| long long | GetGlobalNE () const |
| Return the total (global) number of elements. | |
| const real_t * | GetVertex (int i) const |
| Return pointer to vertex i's coordinates. | |
| real_t * | GetVertex (int i) |
| Return pointer to vertex i's coordinates. | |
| const Element * | GetElement (int i) const |
| Return pointer to the i'th element object. | |
| Element * | GetElement (int i) |
| Return pointer to the i'th element object. | |
| const Element * | GetBdrElement (int i) const |
| Return pointer to the i'th boundary element object. | |
| Element * | GetBdrElement (int i) |
| Return pointer to the i'th boundary element object. | |
| const Element * | GetFace (int i) const |
| Return pointer to the i'th face element object. | |
| const Element *const * | GetElementsArray () const |
| void | GetElementData (int geom, Array< int > &elem_vtx, Array< int > &attr) const |
| void | GetBdrElementData (int geom, Array< int > &bdr_elem_vtx, Array< int > &bdr_attr) const |
| int | GetAttribute (int i) const |
| Return the attribute of element i. | |
| void | SetAttribute (int i, int attr) |
| Set the attribute of element i. | |
| int | GetBdrAttribute (int i) const |
| Return the attribute of boundary element i. | |
| void | SetBdrAttribute (int i, int attr) |
| Set the attribute of boundary element i. | |
| int | GetPatchAttribute (int i) const |
| Return the attribute of patch i, for a NURBS mesh. | |
| void | SetPatchAttribute (int i, int attr) |
| Set the attribute of patch i, for a NURBS mesh. | |
| int | GetPatchBdrAttribute (int i) const |
| Return the attribute of patch boundary element i, for a NURBS mesh. | |
| void | SetPatchBdrAttribute (int i, int attr) |
| Set the attribute of patch boundary element i, for a NURBS mesh. | |
| Element::Type | GetElementType (int i) const |
| Returns the type of element i. | |
| Element::Type | GetBdrElementType (int i) const |
| Returns the type of boundary element i. | |
| MFEM_DEPRECATED Geometry::Type | GetFaceGeometryType (int Face) const |
| Deprecated in favor of Mesh::GetFaceGeometry. | |
| Element::Type | GetFaceElementType (int Face) const |
| Geometry::Type | GetFaceGeometry (int i) const |
| Return the Geometry::Type associated with face i. | |
| Geometry::Type | GetTypicalFaceGeometry () const |
| If the local mesh is not empty, return GetFaceGeometry(0); otherwise return a typical face geometry present in the global mesh. | |
| Geometry::Type | GetElementGeometry (int i) const |
| Geometry::Type | GetTypicalElementGeometry () const |
| If the local mesh is not empty, return GetElementGeometry(0); otherwise, return a typical Geometry present in the global mesh. | |
| Geometry::Type | GetBdrElementGeometry (int i) const |
| MFEM_DEPRECATED Geometry::Type | GetFaceBaseGeometry (int i) const |
| Deprecated in favor of Mesh::GetFaceGeometry. | |
| Geometry::Type | GetElementBaseGeometry (int i) const |
| Geometry::Type | GetBdrElementBaseGeometry (int i) const |
| bool | FaceIsInterior (int FaceNo) const |
| Return true if the given face is interior. | |
| real_t | GetElementSize (int i, int type=0) |
| Get the size of the i-th element relative to the perfect reference element. | |
| real_t | GetElementSize (int i, const Vector &dir) |
| real_t | GetElementSize (ElementTransformation *T, int type=0) const |
| real_t | GetElementVolume (int i) |
| void | GetElementCenter (int i, Vector ¢er) |
| void | GetElementJacobian (int i, DenseMatrix &J, const IntegrationPoint *ip=NULL) |
| void | GetElementVertices (int i, Array< int > &v) const |
| Returns the indices of the vertices of element i. | |
| void | GetBdrElementVertices (int i, Array< int > &v) const |
| Returns the indices of the vertices of boundary element i. | |
| void | GetElementEdges (int i, Array< int > &edges, Array< int > &cor) const |
| Return the indices and the orientations of all edges of element i. | |
| void | GetBdrElementEdges (int i, Array< int > &edges, Array< int > &cor) const |
| Return the indices and the orientations of all edges of bdr element i. | |
| void | GetFaceEdges (int i, Array< int > &edges, Array< int > &o) const |
| void | GetFaceVertices (int i, Array< int > &vert) const |
| Returns the indices of the vertices of face i. | |
| void | GetEdgeVertices (int i, Array< int > &vert) const |
| Returns the indices of the vertices of edge i. | |
| void | GetElementFaces (int i, Array< int > &faces, Array< int > &ori) const |
| Return the indices and the orientations of all faces of element i. | |
| Array< int > | FindFaceNeighbors (const int elem) const |
| Returns the sorted, unique indices of elements sharing a face with element elem, including elem. | |
| void | GetBdrElementFace (int i, int *f, int *o) const |
| void | GetBdrElementAdjacentElement (int bdr_el, int &el, int &info) const |
| For the given boundary element, bdr_el, return its adjacent element and its info, i.e. 64*local_bdr_index+bdr_orientation. | |
| MFEM_DEPRECATED void | GetBdrElementAdjacentElement2 (int bdr_el, int &el, int &info) const |
| Deprecated. | |
| int | GetBdrElementFaceIndex (int be_idx) const |
| Return the local face (codimension-1) index for the given boundary element index. | |
| MFEM_DEPRECATED int | GetBdrFace (int i) const |
| Deprecated in favor of GetBdrElementFaceIndex(). | |
| MFEM_DEPRECATED int | GetBdrElementEdgeIndex (int i) const |
| Table * | GetVertexToElementTable () |
| Table * | GetVertexToBdrElementTable () |
| Table * | GetFaceToElementTable () const |
| Table * | GetFaceEdgeTable () const |
| Table * | GetEdgeVertexTable () const |
| void | GetVertexToVertexTable (DSTable &) const |
| const Table & | ElementToElementTable () |
| const Table & | ElementToFaceTable () const |
| const Table & | ElementToEdgeTable () const |
| Array< int > | GetFaceToBdrElMap () const |
| void | GetElementTransformation (int i, IsoparametricTransformation *ElTr) const |
| Builds the transformation defining the i-th element in ElTr. ElTr must be allocated in advance and will be owned by the caller. | |
| ElementTransformation * | GetElementTransformation (int i) |
| Returns a pointer to the transformation defining the i-th element. | |
| ElementTransformation * | GetTypicalElementTransformation () |
| If the local mesh is not empty return GetElementTransformation(0); otherwise, return the identity transformation for a typical geometry in the mesh and a typical finite element in the nodal finite element space (if present). | |
| void | GetElementTransformation (int i, const Vector &nodes, IsoparametricTransformation *ElTr) const |
| Builds the transformation defining the i-th element in ElTr assuming position of the vertices/nodes are given by nodes. ElTr must be allocated in advance and will be owned by the caller. | |
| ElementTransformation * | GetBdrElementTransformation (int i) |
| Returns a pointer to the transformation defining the i-th boundary element. | |
| void | GetBdrElementTransformation (int i, IsoparametricTransformation *ElTr) const |
| Builds the transformation defining the i-th boundary element in ElTr. ElTr must be allocated in advance and will be owned by the caller. | |
| ElementTransformation * | GetFaceTransformation (int FaceNo) |
| Returns a pointer to the transformation defining the given face element. | |
| void | GetFaceTransformation (int i, IsoparametricTransformation *FTr) const |
| Builds the transformation defining the i-th face element in FTr. FTr must be allocated in advance and will be owned by the caller. | |
| void | GetLocalFaceTransformation (int face_type, int elem_type, IsoparametricTransformation &Transf, int info) const |
| A helper method that constructs a transformation from the reference space of a face to the reference space of an element. | |
| void | GetEdgeTransformation (int i, IsoparametricTransformation *EdTr) const |
| Builds the transformation defining the i-th edge element in EdTr. EdTr must be allocated in advance and will be owned by the caller. | |
| ElementTransformation * | GetEdgeTransformation (int EdgeNo) |
| Returns a pointer to the transformation defining the given edge element. | |
| virtual FaceElementTransformations * | GetFaceElementTransformations (int FaceNo, int mask=31) |
| virtual void | GetFaceElementTransformations (int FaceNo, FaceElementTransformations &FElTr, IsoparametricTransformation &ElTr1, IsoparametricTransformation &ElTr2, int mask=31) const |
| Variant of GetFaceElementTransformations using a user allocated FaceElementTransformations object. | |
| FaceElementTransformations * | GetInteriorFaceTransformations (int FaceNo) |
| See GetFaceElementTransformations(). | |
| void | GetInteriorFaceTransformations (int FaceNo, FaceElementTransformations &FElTr, IsoparametricTransformation &ElTr1, IsoparametricTransformation &ElTr2) const |
| Variant of GetInteriorFaceTransformations using a user allocated FaceElementTransformations object. | |
| FaceElementTransformations * | GetBdrFaceTransformations (int BdrElemNo) |
| Builds the transformation defining the given boundary face. | |
| void | GetBdrFaceTransformations (int BdrElemNo, FaceElementTransformations &FElTr, IsoparametricTransformation &ElTr1, IsoparametricTransformation &ElTr2) const |
| Variant of GetBdrFaceTransformations using a user allocated FaceElementTransformations object. | |
| const GeometricFactors * | GetGeometricFactors (const IntegrationRule &ir, const int flags, MemoryType d_mt=MemoryType::DEFAULT) |
| Return the mesh geometric factors corresponding to the given integration rule. | |
| const FaceGeometricFactors * | GetFaceGeometricFactors (const IntegrationRule &ir, const int flags, FaceType type, MemoryType d_mt=MemoryType::DEFAULT) |
| Return the mesh geometric factors for the faces corresponding to the given integration rule. | |
| void | DeleteGeometricFactors () |
| Destroy all GeometricFactors stored by the Mesh. | |
| void | GetPointMatrix (int i, DenseMatrix &pointmat) const |
| void | GetBdrPointMatrix (int i, DenseMatrix &pointmat) const |
| FaceInformation | GetFaceInformation (int f) const |
| void | GetFaceElements (int Face, int *Elem1, int *Elem2) const |
| void | GetFaceInfos (int Face, int *Inf1, int *Inf2) const |
| void | GetFaceInfos (int Face, int *Inf1, int *Inf2, int *NCFace) const |
| virtual void | GetExteriorFaceMarker (Array< int > &face_marker) const |
| Populate a marker array identifying exterior faces. | |
| virtual void | UnmarkInternalBoundaries (Array< int > &bdr_marker, bool excl=true) const |
| Unmark boundary attributes of internal boundaries. | |
| virtual void | UnmarkNamedBoundaries (const std::string &set_name, Array< int > &bdr_marker) const |
| Unmark boundary attributes in the named set. | |
| virtual void | MarkExternalBoundaries (Array< int > &bdr_marker, bool excl=true) const |
| Mark boundary attributes of external boundaries. | |
| virtual void | MarkNamedBoundaries (const std::string &set_name, Array< int > &bdr_marker) const |
| Mark boundary attributes in the named set. | |
| int * | CartesianPartitioning (int nxyz[]) |
| int * | GeneratePartitioning (int nparts, int part_method=1) |
| void | CheckPartitioning (int *partitioning_) |
| void | MoveVertices (const Vector &displacements) |
| void | GetVertices (Vector &vert_coord) const |
| void | SetVertices (const Vector &vert_coord) |
| void | ChangeVertexDataOwnership (real_t *vertices, int len_vertices, bool zerocopy=false) |
| Set the internal Vertex array to point to the given vertices array without assuming ownership of the pointer. | |
| void | GetNode (int i, real_t *coord) const |
| void | SetNode (int i, const real_t *coord) |
| void | MoveNodes (const Vector &displacements) |
| void | GetNodes (Vector &node_coord) const |
| void | SetNodes (const Vector &node_coord) |
| Updates the vertex/node locations. Invokes NodesUpdated(). | |
| void | ScaleSubdomains (real_t sf) |
| void | ScaleElements (real_t sf) |
| void | Transform (void(*f)(const Vector &, Vector &)) |
| void | Transform (VectorCoefficient &deformation) |
| void | NodesUpdated () |
| This function should be called after the mesh node coordinates have been updated externally, e.g. by modifying the internal nodal GridFunction returned by GetNodes(). | |
| GridFunction * | GetNodes () |
| Return a pointer to the internal node GridFunction (may be NULL). | |
| const GridFunction * | GetNodes () const |
| bool | OwnsNodes () const |
| Return the mesh nodes ownership flag. | |
| void | SetNodesOwner (bool nodes_owner) |
| Set the mesh nodes ownership flag. | |
| void | NewNodes (GridFunction &nodes, bool make_owner=false) |
| Replace the internal node GridFunction with the given GridFunction. | |
| void | SwapNodes (GridFunction *&nodes, int &own_nodes_) |
| Swap the internal node GridFunction pointer and ownership flag members with the given ones. | |
| void | GetNodes (GridFunction &nodes) const |
| Return the mesh nodes/vertices projected on the given GridFunction. | |
| virtual void | SetNodalFESpace (FiniteElementSpace *nfes) |
| void | SetNodalGridFunction (GridFunction *nodes, bool make_owner=false) |
| const FiniteElementSpace * | GetNodalFESpace () const |
| void | EnsureNodes () |
| Make sure that the mesh has valid nodes, i.e. its geometry is described by a vector finite element grid function (even if it is a low-order mesh with straight edges). | |
| virtual void | SetCurvature (int order, bool discont=false, int space_dim=-1, int ordering=1) |
| Set the curvature of the mesh nodes using the given polynomial degree. | |
| void | UniformRefinement (int ref_algo=0) |
| Refine all mesh elements. | |
| virtual void | NURBSUniformRefinement (int rf=2, real_t tol=1.0e-12) |
| Refine NURBS mesh, with an optional refinement factor, generally anisotropic. | |
| virtual void | NURBSUniformRefinement (const Array< int > &rf, real_t tol=1.e-12) |
| void | NURBSCoarsening (int cf=2, real_t tol=1.0e-12) |
| void | GeneralRefinement (const Array< Refinement > &refinements, int nonconforming=-1, int nc_limit=0) |
| void | GeneralRefinement (const Array< int > &el_to_refine, int nonconforming=-1, int nc_limit=0) |
| void | RandomRefinement (real_t prob, bool aniso=false, int nonconforming=-1, int nc_limit=0) |
| Refine each element with given probability. Uses GeneralRefinement. | |
| void | RefineAtVertex (const Vertex &vert, real_t eps=0.0, int nonconforming=-1) |
| Refine elements sharing the specified vertex. Uses GeneralRefinement. | |
| bool | RefineByError (const Array< real_t > &elem_error, real_t threshold, int nonconforming=-1, int nc_limit=0) |
| bool | RefineByError (const Vector &elem_error, real_t threshold, int nonconforming=-1, int nc_limit=0) |
| bool | DerefineByError (Array< real_t > &elem_error, real_t threshold, int nc_limit=0, int op=1) |
| bool | DerefineByError (const Vector &elem_error, real_t threshold, int nc_limit=0, int op=1) |
| Same as DerefineByError for an error vector. | |
| void | EnsureNCMesh (bool simplices_nonconforming=false) |
| bool | Conforming () const |
| Return a bool indicating whether this mesh is conforming. | |
| bool | Nonconforming () const |
| Return a bool indicating whether this mesh is nonconforming. | |
| void | SetScaledNCMesh () |
| const CoarseFineTransformations & | GetRefinementTransforms () const |
| Operation | GetLastOperation () const |
| Return type of last modification of the mesh. | |
| long | GetSequence () const |
| long | GetNodesSequence () const |
| Return the nodes update counter. | |
| void | RefineNURBSFromFile (std::string ref_file) |
| void | KnotInsert (Array< KnotVector * > &kv) |
| For NURBS meshes, insert the new knots in kv, for each direction. | |
| void | KnotInsert (Array< Vector * > &kv) |
| For NURBS meshes, insert the knots in kv, for each direction. | |
| void | KnotRemove (Array< Vector * > &kv) |
| For NURBS meshes, remove the knots in kv, for each direction. | |
| void | DegreeElevate (int rel_degree, int degree=16) |
| std::vector< int > | CreatePeriodicVertexMapping (const std::vector< Vector > &translations, real_t tol=1e-8) const |
| Creates a mapping v2v from the vertex indices of the mesh such that coincident vertices under the given translations are identified. | |
| virtual int | FindPoints (DenseMatrix &point_mat, Array< int > &elem_ids, Array< IntegrationPoint > &ips, bool warn=true, InverseElementTransformation *inv_trans=NULL) |
| Find the ids of the elements that contain the given points, and their corresponding reference coordinates. | |
| void | GetGeometricParametersFromJacobian (const DenseMatrix &J, real_t &volume, Vector &aspr, Vector &skew, Vector &ori) const |
| Computes geometric parameters associated with a Jacobian matrix in 2D/3D. These parameters are (1) Area/Volume, (2) Aspect-ratio (1 in 2D, and 2 non-dimensional and 2 dimensional parameters in 3D. Dimensional parameters are used for target construction in TMOP), (3) skewness (1 in 2D and 3 in 3D), and finally (4) orientation (1 in 2D and 3 in 3D). | |
| virtual long long | ReduceInt (int value) const |
| Utility function: sum integers from all processors (Allreduce). | |
| void | GetElementColoring (Array< int > &colors, int el0=0) |
| void | CheckDisplacements (const Vector &displacements, real_t &tmax) |
| virtual void | PrintXG (std::ostream &os=mfem::out) const |
| Print the mesh to the given stream using Netgen/Truegrid format. | |
| virtual void | Print (std::ostream &os=mfem::out, const std::string &comments="") const |
| virtual void | Save (const std::string &fname, int precision=16) const |
| virtual void | Print (adios2stream &os) const |
| Print the mesh to the given stream using the adios2 bp format. | |
| void | PrintVTK (std::ostream &os) |
| void | PrintVTK (std::ostream &os, int ref, int field_data=0) |
| void | PrintVTU (std::ostream &os, int ref=1, VTKFormat format=VTKFormat::ASCII, bool high_order_output=false, int compression_level=0, bool bdr_elements=false) |
| virtual void | PrintVTU (std::string fname, VTKFormat format=VTKFormat::ASCII, bool high_order_output=false, int compression_level=0, bool bdr=false) |
| void | PrintBdrVTU (std::string fname, VTKFormat format=VTKFormat::ASCII, bool high_order_output=false, int compression_level=0) |
| void | PrintExodusII (const std::string fpath) |
| Export a mesh to an Exodus II file. | |
| void | PrintWithPartitioning (int *partitioning, std::ostream &os, int elem_attr=0) const |
| Prints the mesh with boundary elements given by the boundary of the subdomains, so that the boundary of subdomain i has boundary attribute i+1. | |
| void | PrintElementsWithPartitioning (int *partitioning, std::ostream &os, int interior_faces=0) |
| void | PrintSurfaces (const Table &Aface_face, std::ostream &os) const |
| Print set of disjoint surfaces: | |
| void | PrintCharacteristics (Vector *Vh=NULL, Vector *Vk=NULL, std::ostream &os=mfem::out) |
| Compute and print mesh characteristics such as number of vertices, number of elements, number of boundary elements, minimal and maximal element sizes, minimal and maximal element aspect ratios, etc. | |
| virtual void | PrintInfo (std::ostream &os=mfem::out) |
| In serial, this method calls PrintCharacteristics(). In parallel, additional information about the parallel decomposition is also printed. | |
| void | DebugDump (std::ostream &os) const |
| Output an NCMesh-compatible debug dump. | |
Static Public Member Functions | |
| static SubMesh | CreateFromDomain (const Mesh &parent, const Array< int > &domain_attributes) |
| Create a domain SubMesh from its parent. | |
| static SubMesh | CreateFromBoundary (const Mesh &parent, const Array< int > &boundary_attributes) |
| Create a surface SubMesh from its parent. | |
| static void | Transfer (const GridFunction &src, GridFunction &dst) |
| Transfer the dofs of a GridFunction. | |
| static TransferMap | CreateTransferMap (const GridFunction &src, const GridFunction &dst) |
| Create a Transfer Map object. | |
| static bool | IsSubMesh (const Mesh *m) |
| Check if Mesh m is a SubMesh. | |
Static Public Member Functions inherited from mfem::Mesh | |
| static FiniteElement * | GetTransformationFEforElementType (Element::Type) |
| Return FiniteElement for reference element of the specified type. | |
| static IntegrationPoint | TransformBdrElementToFace (Geometry::Type geom, int o, const IntegrationPoint &ip) |
| For the vertex (1D), edge (2D), or face (3D) of a boundary element with the orientation o, return the transformation of the boundary element integration point @ ip to the face element. In 2D, the the orientation is 0 or 1 as returned by GetBdrElementFace, not +/-1. Supports both internal and external boundaries. | |
| static int | DecodeFaceInfoOrientation (int info) |
| Given a "face info int", return the face orientation. | |
| static int | DecodeFaceInfoLocalIndex (int info) |
| Given a "face info int", return the local face index. | |
| static int | EncodeFaceInfo (int local_face_index, int orientation) |
| Given local_face_index and orientation, return the corresponding encoded "face info int". | |
| static Mesh | LoadFromFile (const std::string &filename, int generate_edges=0, int refine=1, bool fix_orientation=true) |
| static Mesh | MakeCartesian1D (int n, real_t sx=1.0) |
| Creates 1D mesh, divided into n equal intervals. | |
| static Mesh | MakeCartesian2D (int nx, int ny, Element::Type type, bool generate_edges=false, real_t sx=1.0, real_t sy=1.0, bool sfc_ordering=true) |
| Creates mesh for the rectangle [0,sx]x[0,sy], divided into nx*ny quadrilaterals if type = QUADRILATERAL or into 2*nx*ny triangles if type = TRIANGLE. | |
| static Mesh | MakeCartesian3D (int nx, int ny, int nz, Element::Type type, real_t sx=1.0, real_t sy=1.0, real_t sz=1.0, bool sfc_ordering=true) |
| Creates a mesh for the parallelepiped [0,sx]x[0,sy]x[0,sz], divided into nx*ny*nz hexahedra if type = HEXAHEDRON or into 6*nx*ny*nz tetrahedrons if type = TETRAHEDRON. | |
| static Mesh | MakeCartesian3DWith24TetsPerHex (int nx, int ny, int nz, real_t sx=1.0, real_t sy=1.0, real_t sz=1.0) |
| Creates a mesh for the parallelepiped [0,sx]x[0,sy]x[0,sz], divided into nx*ny*nz*24 tetrahedrons. | |
| static Mesh | MakeCartesian2DWith4TrisPerQuad (int nx, int ny, real_t sx=1.0, real_t sy=1.0) |
| Creates mesh for the rectangle [0,sx]x[0,sy], divided into nx*ny*4 triangles. | |
| static Mesh | MakeCartesian2DWith5QuadsPerQuad (int nx, int ny, real_t sx=1.0, real_t sy=1.0) |
| Creates mesh for the rectangle [0,sx]x[0,sy], divided into nx*ny*5 quadrilaterals. | |
| static Mesh | MakeRefined (Mesh &orig_mesh, int ref_factor, int ref_type) |
| Create a refined (by any factor) version of orig_mesh. | |
| static Mesh | MakeRefined (Mesh &orig_mesh, const Array< int > &ref_factors, int ref_type) |
| refined ref_factors[i] times in each dimension. | |
| static Mesh | MakeSimplicial (const Mesh &orig_mesh) |
| static Mesh | MakePeriodic (const Mesh &orig_mesh, const std::vector< int > &v2v) |
| Create a periodic mesh by identifying vertices of orig_mesh. | |
| static void | PrintElementsByGeometry (int dim, const Array< int > &num_elems_by_geom, std::ostream &os) |
| Auxiliary method used by PrintCharacteristics(). | |
Friends | |
| class | NCSubMesh |
Additional Inherited Members | |
Public Attributes inherited from mfem::Mesh | |
| Array< int > | attributes |
| A list of all unique element attributes used by the Mesh. | |
| Array< int > | bdr_attributes |
| A list of all unique boundary attributes used by the Mesh. | |
| AttributeSets | attribute_sets |
| Named sets of element attributes. | |
| AttributeSets | bdr_attribute_sets |
| Named sets of boundary element attributes. | |
| NURBSExtension * | NURBSext |
| Optional NURBS mesh extension. | |
| NCMesh * | ncmesh |
| Optional nonconforming mesh extension. | |
| Array< GeometricFactors * > | geom_factors |
| Optional geometric factors. | |
| Array< FaceGeometricFactors * > | face_geom_factors |
Static Public Attributes inherited from mfem::Mesh | |
| static bool | remove_unused_vertices = true |
Protected Member Functions inherited from mfem::Mesh | |
| void | Init () |
| void | InitTables () |
| void | SetEmpty () |
| void | DestroyTables () |
| void | DeleteTables () |
| void | DestroyPointers () |
| void | Destroy () |
| void | ResetLazyData () |
| Element * | ReadElementWithoutAttr (std::istream &input) |
| Element * | ReadElement (std::istream &input) |
| void | ReadMFEMMesh (std::istream &input, int version, int &curved) |
| void | ReadLineMesh (std::istream &input) |
| void | ReadNetgen2DMesh (std::istream &input, int &curved) |
| void | ReadNetgen3DMesh (std::istream &input) |
| void | ReadTrueGridMesh (std::istream &input) |
| void | CreateVTKMesh (const Vector &points, const Array< int > &cell_data, const Array< int > &cell_offsets, const Array< int > &cell_types, const Array< int > &cell_attributes, int &curved, int &read_gf, bool &finalize_topo) |
| void | ReadVTKMesh (std::istream &input, int &curved, int &read_gf, bool &finalize_topo) |
| void | ReadXML_VTKMesh (std::istream &input, int &curved, int &read_gf, bool &finalize_topo, const std::string &xml_prefix="") |
| void | ReadNURBSMesh (std::istream &input, int &curved, int &read_gf, bool spacing=false) |
| void | ReadInlineMesh (std::istream &input, bool generate_edges=false) |
| void | ReadGmshMesh (std::istream &input, int &curved, int &read_gf) |
| void | ReadCubit (const std::string &filename, int &curved, int &read_gf) |
| Load a mesh from a Genesis file. | |
| void | BuildCubitVertices (const std::vector< int > &unique_vertex_ids, const std::vector< double > &coordx, const std::vector< double > &coordy, const std::vector< double > &coordz) |
| Called internally in ReadCubit. This method creates the vertices. | |
| void | BuildCubitElements (const int num_elements, const cubit::CubitBlock *blocks, const std::vector< int > &block_ids, const std::map< int, std::vector< int > > &element_ids_for_block_id, const std::map< int, std::vector< int > > &node_ids_for_element_id, const std::map< int, int > &cubit_to_mfem_vertex_map) |
| Called internally in ReadCubit. This method builds the mesh elements. | |
| void | BuildCubitBoundaries (const cubit::CubitBlock *blocks, const std::vector< int > &boundary_ids, const std::map< int, std::vector< int > > &element_ids_for_boundary_id, const std::map< int, std::vector< std::vector< int > > > &node_ids_for_boundary_id, const std::map< int, std::vector< int > > &side_ids_for_boundary_id, const std::map< int, int > &block_id_for_element_id, const std::map< int, int > &cubit_to_mfem_vertex_map) |
| Called internally in ReadCubit. This method adds the mesh boundary elements. | |
| void | SetMeshGen () |
| Determine the mesh generator bitmask meshgen, see MeshGenerator(). | |
| real_t | GetLength (int i, int j) const |
| Return the length of the segment from node i to node j. | |
| void | MarkForRefinement () |
| void | MarkTriMeshForRefinement () |
| void | GetEdgeOrdering (const DSTable &v_to_v, Array< int > &order) |
| virtual void | MarkTetMeshForRefinement (const DSTable &v_to_v) |
| void | PrepareNodeReorder (DSTable **old_v_to_v, Table **old_elem_vert) |
| void | DoNodeReorder (DSTable *old_v_to_v, Table *old_elem_vert) |
| STable3D * | GetFacesTable () |
| STable3D * | GetElementToFaceTable (int ret_ftbl=0) |
| void | RedRefinement (int i, const DSTable &v_to_v, int *edge1, int *edge2, int *middle) |
| void | GreenRefinement (int i, const DSTable &v_to_v, int *edge1, int *edge2, int *middle) |
| void | Bisection (int i, const DSTable &, int *, int *, int *) |
| Bisect a triangle: element with index i is bisected. | |
| void | Bisection (int i, HashTable< Hashed2 > &) |
| Bisect a tetrahedron: element with index i is bisected. | |
| void | BdrBisection (int i, const HashTable< Hashed2 > &) |
| Bisect a boundary triangle: boundary element with index i is bisected. | |
| void | UniformRefinement (int i, const DSTable &, int *, int *, int *) |
| void | AverageVertices (const int *indexes, int n, int result) |
| Averages the vertices with given indexes and saves the result in vertices[result]. | |
| void | InitRefinementTransforms () |
| int | FindCoarseElement (int i) |
| void | UpdateNodes () |
| Update the nodes of a curved mesh after the topological part of a Mesh::Operation, such as refinement, has been performed. | |
| void | SetVerticesFromNodes (const GridFunction *nodes) |
| Helper to set vertex coordinates given a high-order curvature function. | |
| void | UniformRefinement2D_base (bool update_nodes=true) |
| virtual void | UniformRefinement2D () |
| Refine a mixed 2D mesh uniformly. | |
| void | UniformRefinement3D_base (Array< int > *f2qf=NULL, DSTable *v_to_v_p=NULL, bool update_nodes=true) |
| virtual void | UniformRefinement3D () |
| Refine a mixed 3D mesh uniformly. | |
| virtual void | LocalRefinement (const Array< int > &marked_el, int type=3) |
| This function is not public anymore. Use GeneralRefinement instead. | |
| virtual void | NonconformingRefinement (const Array< Refinement > &refinements, int nc_limit=0) |
| This function is not public anymore. Use GeneralRefinement instead. | |
| virtual bool | NonconformingDerefinement (Array< real_t > &elem_error, real_t threshold, int nc_limit=0, int op=1) |
| NC version of GeneralDerefinement. | |
| real_t | AggregateError (const Array< real_t > &elem_error, const int *fine, int nfine, int op) |
| Derefinement helper. | |
| void | LoadPatchTopo (std::istream &input, Array< int > &edge_to_knot) |
| Read NURBS patch/macro-element mesh. | |
| void | UpdateNURBS () |
| void | PrintTopo (std::ostream &os, const Array< int > &e_to_k, const int version, const std::string &comment="") const |
| Write the beginning of a NURBS mesh to os, specifying the NURBS patch topology. Optional file comments can be provided in comments. | |
| void | GetLocalPtToSegTransformation (IsoparametricTransformation &, int i) const |
| Used in GetFaceElementTransformations (...) | |
| void | GetLocalSegToTriTransformation (IsoparametricTransformation &loc, int i) const |
| void | GetLocalSegToQuadTransformation (IsoparametricTransformation &loc, int i) const |
| void | GetLocalTriToTetTransformation (IsoparametricTransformation &loc, int i) const |
| void | GetLocalTriToWdgTransformation (IsoparametricTransformation &loc, int i) const |
| void | GetLocalTriToPyrTransformation (IsoparametricTransformation &loc, int i) const |
| void | GetLocalQuadToHexTransformation (IsoparametricTransformation &loc, int i) const |
| void | GetLocalQuadToWdgTransformation (IsoparametricTransformation &loc, int i) const |
| void | GetLocalQuadToPyrTransformation (IsoparametricTransformation &loc, int i) const |
| void | ApplyLocalSlaveTransformation (FaceElementTransformations &FT, const FaceInfo &fi, bool is_ghost) const |
| bool | IsSlaveFace (const FaceInfo &fi) const |
| int | GetElementToEdgeTable (Table &) |
| void | AddPointFaceElement (int lf, int gf, int el) |
| Used in GenerateFaces() | |
| void | AddSegmentFaceElement (int lf, int gf, int el, int v0, int v1) |
| void | AddTriangleFaceElement (int lf, int gf, int el, int v0, int v1, int v2) |
| void | AddQuadFaceElement (int lf, int gf, int el, int v0, int v1, int v2, int v3) |
| bool | FaceIsTrueInterior (int FaceNo) const |
| void | FreeElement (Element *E) |
| void | GenerateFaces () |
| void | GenerateNCFaceInfo () |
| void | InitMesh (int Dim_, int spaceDim_, int NVert, int NElem, int NBdrElem) |
| Begin construction of a mesh. | |
| void | FinalizeCheck () |
| void | Loader (std::istream &input, int generate_edges=0, std::string parse_tag="") |
| void | Printer (std::ostream &os=mfem::out, std::string section_delimiter="", const std::string &comments="") const |
| void | Make3D (int nx, int ny, int nz, Element::Type type, real_t sx, real_t sy, real_t sz, bool sfc_ordering) |
| Creates a mesh for the parallelepiped [0,sx]x[0,sy]x[0,sz], divided into nx*ny*nz hexahedra if type = HEXAHEDRON or into 6*nx*ny*nz tetrahedrons if type = TETRAHEDRON. | |
| void | Make3D24TetsFromHex (int nx, int ny, int nz, real_t sx, real_t sy, real_t sz) |
| Creates a mesh for the parallelepiped [0,sx]x[0,sy]x[0,sz], divided into nx*ny*nz*24 tetrahedrons. | |
| void | Make2D4TrisFromQuad (int nx, int ny, real_t sx, real_t sy) |
| Creates mesh for the rectangle [0,sx]x[0,sy], divided into nx*ny*4 triangles. | |
| void | Make2D5QuadsFromQuad (int nx, int ny, real_t sx, real_t sy) |
| Creates mesh for the rectangle [0,sx]x[0,sy], divided into nx*ny*5 quadrilaterals. | |
| void | Make2D (int nx, int ny, Element::Type type, real_t sx, real_t sy, bool generate_edges, bool sfc_ordering) |
| Creates mesh for the rectangle [0,sx]x[0,sy], divided into nx*ny quadrilaterals if type = QUADRILATERAL or into 2*nx*ny triangles if type = TRIANGLE. | |
| void | Make1D (int n, real_t sx=1.0) |
| void | MakeRefined_ (Mesh &orig_mesh, const Array< int > &ref_factors, int ref_type) |
| Internal function used in Mesh::MakeRefined. | |
| void | InitFromNCMesh (const NCMesh &ncmesh) |
| Initialize vertices/elements/boundary/tables from a nonconforming mesh. | |
| Mesh (const NCMesh &ncmesh) | |
| Create from a nonconforming mesh. | |
| void | GetElementData (const Array< Element * > &elem_array, int geom, Array< int > &elem_vtx, Array< int > &attr) const |
| void | MakeSimplicial_ (const Mesh &orig_mesh, int *vglobal) |
Static Protected Member Functions inherited from mfem::Mesh | |
| static void | PrintElementWithoutAttr (const Element *el, std::ostream &os) |
| static void | PrintElement (const Element *el, std::ostream &os) |
| static int | GetTriOrientation (const int *base, const int *test) |
| Returns the orientation of "test" relative to "base". | |
| static int | InvertTriOrientation (int ori) |
| static int | ComposeTriOrientations (int ori_a_b, int ori_b_c) |
| static int | GetQuadOrientation (const int *base, const int *test) |
| Returns the orientation of "test" relative to "base". | |
| static int | InvertQuadOrientation (int ori) |
| static int | ComposeQuadOrientations (int ori_a_b, int ori_b_c) |
| static int | GetTetOrientation (const int *base, const int *test) |
| Returns the orientation of "test" relative to "base". | |
| static void | GetElementArrayEdgeTable (const Array< Element * > &elem_array, const DSTable &v_to_v, Table &el_to_edge) |
Protected Attributes inherited from mfem::Mesh | |
| int | Dim |
| int | spaceDim |
| int | NumOfVertices |
| int | NumOfElements |
| int | NumOfBdrElements |
| int | NumOfEdges |
| int | NumOfFaces |
| int | nbInteriorFaces |
| int | nbBoundaryFaces |
| int | meshgen |
| int | mesh_geoms |
| long | sequence |
| long | nodes_sequence |
| Counter for geometric factor invalidation. | |
| Array< Element * > | elements |
| Array< Vertex > | vertices |
| Array< Element * > | boundary |
| Array< Element * > | faces |
| Array< FaceInfo > | faces_info |
| Array< NCFaceInfo > | nc_faces_info |
| Table * | el_to_edge |
| Table * | el_to_face |
| Table * | el_to_el |
| Array< int > | be_to_face |
| Table * | bel_to_edge |
| Table * | face_to_elem |
| Table * | face_edge |
| Table * | edge_vertex |
| IsoparametricTransformation | Transformation |
| IsoparametricTransformation | Transformation2 |
| IsoparametricTransformation | BdrTransformation |
| IsoparametricTransformation | FaceTransformation |
| IsoparametricTransformation | EdgeTransformation |
| FaceElementTransformations | FaceElemTr |
| CoarseFineTransformations | CoarseFineTr |
| GridFunction * | Nodes |
| int | own_nodes |
| MemAlloc< Tetrahedron, 1024 > | TetMemory |
| Array< Triple< int, int, int > > | tmp_vertex_parents |
| Operation | last_operation |
Static Protected Attributes inherited from mfem::Mesh | |
| static const int | vtk_quadratic_tet [10] |
| static const int | vtk_quadratic_pyramid [13] |
| static const int | vtk_quadratic_wedge [18] |
| static const int | vtk_quadratic_hex [27] |
Subdomain representation of a topological parent in another Mesh.
SubMesh is a subdomain representation of a Mesh defined on its parents attributes. The current implementation creates either a domain or surface subset of the parents Mesh and reuses the parallel distribution.
The attributes are taken from the parent. That means if a volume is extracted from a volume, it has the same domain attribute as the parent. Its boundary attributes are generated (there will be one boundary attribute 1 for all of the boundaries).
If a surface is extracted from a volume, the boundary attribute from the parent is assigned to be the new domain attribute. Its boundary attributes are generated (there will be one boundary attribute 1 for all of the boundaries).
For more customized boundary attributes, the resulting SubMesh has to be postprocessed.
Definition at line 43 of file submesh.hpp.
|
strong |
Indicator from which part of the parent Mesh the SubMesh is created.
| Enumerator | |
|---|---|
| Domain | |
| Boundary | |
Definition at line 48 of file submesh.hpp.
|
delete |
|
default |
|
static |
Create a surface SubMesh from its parent.
The SubMesh object expects the parent Mesh object to be valid for the entire object lifetime. The boundary_attributes have to mark exactly one connected subset of the parent Mesh.
| [in] | parent | Parent Mesh |
| [in] | boundary_attributes | Boundary attributes to extract |
Definition at line 27 of file submesh.cpp.
|
static |
Create a domain SubMesh from its parent.
The SubMesh object expects the parent Mesh object to be valid for the entire object lifetime. The domain_attributes have to mark exactly one connected subset of the parent Mesh.
| [in] | parent | Parent Mesh |
| [in] | domain_attributes | Domain attributes to extract |
Definition at line 21 of file submesh.cpp.
|
static |
Create a Transfer Map object.
The src GridFunction can either be defined on a Mesh or a SubMesh and is transferred appropriately.
Definition at line 265 of file submesh.cpp.
|
inline |
Get the From indicator.
Indicates whether the SubMesh has been created from a domain or surface.
Definition at line 96 of file submesh.hpp.
|
inline |
Get the parent Mesh object.
Definition at line 86 of file submesh.hpp.
|
inline |
Get the edge id map.
Submesh edge id (array index) to parent Mesh edge id.
Definition at line 126 of file submesh.hpp.
|
inline |
Get the parent element id map.
SubMesh element id (array index) to parent Mesh element id.
Definition at line 106 of file submesh.hpp.
|
inline |
Get the face id map.
SubMesh face id (array index) to parent Mesh face id.
Definition at line 116 of file submesh.hpp.
|
inline |
Get the relative face orientations.
SubMesh element id (array index) to parent Mesh face orientation.
Definition at line 136 of file submesh.hpp.
|
inline |
Get the parent vertex id map.
SubMesh vertex id (array index) to parent Mesh vertex id.
Definition at line 146 of file submesh.hpp.
|
inline |
Get the submesh edge corresponding to a parent element. -1 == not present.
| pe | The parent edge id. |
Definition at line 177 of file submesh.hpp.
|
inline |
Get the submesh element corresponding to a parent element. -1 == not present.
| pe | The parent element id. |
Definition at line 157 of file submesh.hpp.
|
inline |
Get the submesh face corresponding to a parent element. -1 == not present.
| pf | The parent face id. |
Definition at line 187 of file submesh.hpp.
|
inline |
Get the submesh vertex corresponding to a parent element. -1 == not present.
| pv | The parent vertex id. |
Definition at line 167 of file submesh.hpp.
|
inlinestatic |
| m | The input Mesh |
Definition at line 221 of file submesh.hpp.
|
static |
Transfer the dofs of a GridFunction.
The src GridFunction can either be defined on a Mesh or a SubMesh and is transferred appropriately.
| [in] | src | |
| [out] | dst |
Definition at line 260 of file submesh.cpp.
|
friend |
Definition at line 45 of file submesh.hpp.