114 return parent_element_ids_;
124 return parent_vertex_ids_;
134 return parent_edge_ids_;
144 return parent_face_ids_;
154 return parent_face_ori_;
165 return (pe == -1 || pe >= parent_to_submesh_element_ids_.
Size())
166 ? -1 : parent_to_submesh_element_ids_[pe];
177 return (pv == -1 || pv >= parent_to_submesh_vertex_ids_.
Size())
178 ? -1 : parent_to_submesh_vertex_ids_[pv];
189 return (pe == -1 || pe >= parent_to_submesh_edge_ids_.
Size())
190 ? pe : parent_to_submesh_edge_ids_[pe];
201 return (pf == -1 || pf >= parent_to_submesh_face_ids_.
Size())
202 ? pf : parent_to_submesh_face_ids_[pf];
236 return dynamic_cast<const ParSubMesh *
>(m) !=
nullptr;
250 return sub == parent;
290 void FindSharedVerticesRanks(
Array<int> &rhvtx);
363 void BuildVertexGroup(
int ngroups,
const Array<int>& rhvtx,
int& nsverts);
372 void BuildEdgeGroup(
int ngroups,
const Array<int>& rhe,
int& nsedges);
383 void BuildFaceGroup(
int ngroups,
const Array<int>& rht,
int& nstrias,
392 void BuildSharedVerticesMapping(
const int nsverts,
const Array<int>& rhvtx);
400 void BuildSharedEdgesMapping(
const int nsedges,
const Array<int>& rhe);
412 void BuildSharedFacesMapping(
const int nstrias,
const Array<int>& rht,
416 std::unordered_map<int, int>
417 FindGhostBoundaryElementAttributes()
const;
int Size() const
Return the logical size of the array.
Array< int > attributes
A list of all unique element attributes used by the Mesh.
Class for parallel grid function.
Class for parallel meshes.
Class representing a Parallel Nonconformal SubMesh. This is only used by ParSubMesh.
Subdomain representation of a topological parent in another ParMesh.
int GetSubMeshEdgeFromParent(int pe) const
Get the submesh edge corresponding to a parent edge. -1 == not present.
static bool IsParSubMesh(const Mesh *m)
Check if Mesh m is a ParSubMesh.
const Array< int > & GetParentElementIDMap() const
Get the parent element id map.
static bool IsParSubMesh(const Mesh *sub, const Mesh *parent)
Check if Mesh sub is a ParSubMesh of Mesh parent.
int GetSubMeshFaceFromParent(int pf) const
Get the submesh face corresponding to a parent face. -1 == not present.
int GetSubMeshVertexFromParent(int pv) const
Get the submesh vertex corresponding to a parent vertex. -1 == not present.
static ParSubMesh CreateFromDomain(const ParMesh &parent, const Array< int > &domain_attributes)
Create a domain ParSubMesh from its parent.
static ParTransferMap CreateTransferMap(const ParGridFunction &src, const ParGridFunction &dst)
Create a Transfer Map object.
const Array< int > & GetParentVertexIDMap() const
Get the parent vertex id map.
const Array< int > & GetParentEdgeIDMap() const
Get the parent edge id map.
const Array< int > & GetParentFaceOrientations() const
Get the relative face orientations.
const ParMesh * GetParent() const
Get the parent ParMesh object.
const Array< int > & GetParentFaceIDMap() const
Get the parent face id map.
int GetSubMeshElementFromParent(int pe) const
Get the submesh element corresponding to a parent element. -1 == not present.
static void Transfer(const ParGridFunction &src, ParGridFunction &dst)
Transfer the dofs of a ParGridFunction.
static ParSubMesh CreateFromBoundary(const ParMesh &parent, const Array< int > &boundary_attributes)
Create a surface ParSubMesh from its parent.
SubMesh::From GetFrom() const
Get the From indicator.
ParTransferMap represents a mapping of degrees of freedom from a source ParGridFunction to a destinat...
From
Indicator from which part of the parent Mesh the SubMesh is created.