112 return parent_element_ids_;
122 return parent_vertex_ids_;
132 return parent_edge_ids_;
142 return parent_face_ids_;
152 return parent_face_ori_;
163 return (pe == -1 || pe >= parent_to_submesh_element_ids_.
Size())
164 ? -1 : parent_to_submesh_element_ids_[pe];
175 return (pv == -1 || pv >= parent_to_submesh_vertex_ids_.
Size())
176 ? -1 : parent_to_submesh_vertex_ids_[pv];
187 return (pe == -1 || pe >= parent_to_submesh_edge_ids_.
Size())
188 ? pe : parent_to_submesh_edge_ids_[pe];
199 return (pf == -1 || pf >= parent_to_submesh_face_ids_.
Size())
200 ? pf : parent_to_submesh_face_ids_[pf];
234 return dynamic_cast<const ParSubMesh *
>(m) !=
nullptr;
274 void FindSharedVerticesRanks(
Array<int> &rhvtx);
347 void BuildVertexGroup(
int ngroups,
const Array<int>& rhvtx,
int& nsverts);
356 void BuildEdgeGroup(
int ngroups,
const Array<int>& rhe,
int& nsedges);
367 void BuildFaceGroup(
int ngroups,
const Array<int>& rht,
int& nstrias,
376 void BuildSharedVerticesMapping(
const int nsverts,
const Array<int>& rhvtx);
384 void BuildSharedEdgesMapping(
const int nsedges,
const Array<int>& rhe);
396 void BuildSharedFacesMapping(
const int nstrias,
const Array<int>& rht,
400 std::unordered_map<int, int>
401 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 element. -1 == not present.
static bool IsParSubMesh(const ParMesh *m)
Check if ParMesh m is a ParSubMesh.
const Array< int > & GetParentElementIDMap() const
Get the parent element id map.
int GetSubMeshFaceFromParent(int pf) const
Get the submesh face 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.
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.