15 #include "../config/config.hpp"
19 #include "../general/communication.hpp"
84 double threshold,
int nc_limit = 0,
97 ParMesh(MPI_Comm comm,
Mesh &mesh,
int *partitioning_ = NULL,
101 ParMesh(MPI_Comm comm, std::istream &input);
144 void GroupEdge(
int group,
int i,
int &edge,
int &o);
145 void GroupFace(
int group,
int i,
int &face,
int &o);
188 virtual void Print(std::ostream &out = std::cout)
const;
192 virtual void PrintXG(std::ostream &out = std::cout)
const;
198 void PrintAsOne(std::ostream &out = std::cout);
204 virtual void PrintInfo(std::ostream &out = std::cout);
207 void ParPrint(std::ostream &out)
const;
214 #endif // MFEM_USE_MPI
int GetNFaceNeighbors() const
int Size() const
Logical size of the array.
virtual void ReorientTetMesh()
See the remarks for the serial version in mesh.hpp.
Array< Element * > face_nbr_elements
int GetNSharedFaces() const
Return the number of shared faces (3D), edges (2D), vertices (1D)
virtual void LocalRefinement(const Array< int > &marked_el, int type=3)
This function is not public anymore. Use GeneralRefinement instead.
ElementTransformation * GetGhostFaceTransformation(FaceElementTransformations *FETr, int face_type, int face_geom)
void GetRow(int i, Array< int > &row) const
Return row i in array row (the Table must be finalized)
Array< int > face_nbr_vertices_offset
Array< int > face_nbr_group
virtual void MarkTetMeshForRefinement(DSTable &v_to_v)
bool WantSkipSharedMaster(const NCMesh::Master &master) const
A parallel extension of the NCMesh class.
int GroupVertex(int group, int i)
void ExchangeFaceNbrData()
void PrintAsOne(std::ostream &out=std::cout)
void Rebalance()
Load balance the mesh. NC meshes only.
Array< int > face_nbr_elements_offset
Array< Element * > shared_edges
virtual void NonconformingRefinement(const Array< Refinement > &refinements, int nc_limit=0)
This function is not public anymore. Use GeneralRefinement instead.
int GetSharedFace(int sface) const
Return the local face index for the given shared face.
FaceElementTransformations * GetSharedFaceTransformations(int sf, bool fill2=true)
Table send_face_nbr_vertices
int GetFaceSplittings(Element *face, const DSTable &v_to_v, int *middle)
Return a number(0-4) identifying how the given face has been split.
Array< Element * > shared_faces
int GroupNVertices(int group)
virtual void QuadUniformRefinement()
Refine quadrilateral mesh.
virtual void HexUniformRefinement()
Refine a hexahedral mesh.
int GetFaceNbrGroup(int fn) const
void RefineGroups(const DSTable &v_to_v, int *middle)
Update the groups after tet refinement.
virtual bool NonconformingDerefinement(Array< double > &elem_error, double threshold, int nc_limit=0, int op=1)
NC version of GeneralDerefinement.
Array< Vertex > face_nbr_vertices
virtual long ReduceInt(int value) const
Utility function: sum integers from all processors (Allreduce).
virtual void PrintInfo(std::ostream &out=std::cout)
Print various parallel mesh stats.
virtual void PrintXG(std::ostream &out=std::cout) const
void GetFaceNbrElementTransformation(int i, IsoparametricTransformation *ElTr)
void GroupFace(int group, int i, int &face, int &o)
void ExchangeFaceNbrNodes()
Table group_svert
Shared objects in each group.
int GroupNFaces(int group)
int GetEdgeSplittings(Element *edge, const DSTable &v_to_v, int *middle)
Return a number(0-1) identifying how the given edge has been split.
void GroupEdge(int group, int i, int &edge, int &o)
void GenerateOffsets(int N, HYPRE_Int loc_sizes[], Array< HYPRE_Int > *offsets[]) const
void PrintAsOneXG(std::ostream &out=std::cout)
Old mesh format (Netgen/Truegrid) version of 'PrintAsOne'.
Array< int > svert_lvert
Shared to local index mapping.
Table send_face_nbr_elements
Table * GetFaceToAllElementTable() const
void ParPrint(std::ostream &out) const
Save the mesh in a parallel mesh format.
Class for parallel meshes.
Abstract data type element.
int GetFaceNbrRank(int fn) const
int GroupNEdges(int group)
virtual void NURBSUniformRefinement()
Refine NURBS mesh.
virtual void Print(std::ostream &out=std::cout) const