MFEM  v3.4
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Protected Member Functions | List of all members
mfem::ParPumiMesh Class Reference

Class for PUMI parallel meshes. More...

#include <pumi.hpp>

Inheritance diagram for mfem::ParPumiMesh:
[legend]
Collaboration diagram for mfem::ParPumiMesh:
[legend]

Public Member Functions

 ParPumiMesh (MPI_Comm comm, apf::Mesh2 *apf_mesh)
 Build a parallel MFEM mesh from a parallel PUMI mesh. More...
 
void FieldMFEMtoPUMI (apf::Mesh2 *apf_mesh, ParGridFunction *Vel, ParGridFunction *Pr, apf::Field *VelField, apf::Field *PrField, apf::Field *VelMagField)
 Transfer field from MFEM mesh to PUMI mesh [Mixed]. More...
 
void FieldMFEMtoPUMI (apf::Mesh2 *apf_mesh, ParGridFunction *Pr, apf::Field *PrField, apf::Field *PrMagField)
 Transfer field from MFEM mesh to PUMI mesh [Scalar]. More...
 
void VectorFieldMFEMtoPUMI (apf::Mesh2 *apf_mesh, ParGridFunction *Vel, apf::Field *VelField, apf::Field *VelMagField)
 Transfer field from MFEM mesh to PUMI mesh [Vector]. More...
 
void UpdateMesh (const ParMesh *AdaptedpMesh)
 Update the mesh after adaptation. More...
 
void FieldPUMItoMFEM (apf::Mesh2 *apf_mesh, apf::Field *ScalarField, ParGridFunction *Pr)
 Transfer a field from PUMI to MFEM after mesh adapt [Scalar]. More...
 
virtual ~ParPumiMesh ()
 
- Public Member Functions inherited from mfem::ParMesh
 ParMesh (const ParMesh &pmesh, bool copy_nodes=true)
 
 ParMesh (MPI_Comm comm, Mesh &mesh, int *partitioning_=NULL, int part_method=1)
 
 ParMesh (MPI_Comm comm, std::istream &input)
 Read a parallel mesh, each MPI rank from its own file/stream. More...
 
 ParMesh (ParMesh *orig_mesh, int ref_factor, int ref_type)
 Create a uniformly refined (by any factor) version of orig_mesh. More...
 
MPI_Comm GetComm () const
 
int GetNRanks () const
 
int GetMyRank () const
 
int GetNGroups () const
 
void GenerateOffsets (int N, HYPRE_Int loc_sizes[], Array< HYPRE_Int > *offsets[]) const
 
void ExchangeFaceNbrData ()
 
void ExchangeFaceNbrNodes ()
 
int GetNFaceNeighbors () const
 
int GetFaceNbrGroup (int fn) const
 
int GetFaceNbrRank (int fn) const
 
TableGetFaceToAllElementTable () const
 
FaceElementTransformationsGetSharedFaceTransformations (int sf, bool fill2=true)
 
int GetNSharedFaces () const
 Return the number of shared faces (3D), edges (2D), vertices (1D) More...
 
int GetSharedFace (int sface) const
 Return the local face index for the given shared face. More...
 
virtual void ReorientTetMesh ()
 See the remarks for the serial version in mesh.hpp. More...
 
virtual long ReduceInt (int value) const
 Utility function: sum integers from all processors (Allreduce). More...
 
void RefineGroups (const DSTable &v_to_v, int *middle)
 Update the groups after tet refinement. More...
 
void Rebalance ()
 Load balance the mesh. NC meshes only. More...
 
virtual void Print (std::ostream &out=mfem::out) const
 
virtual void PrintXG (std::ostream &out=mfem::out) const
 
void PrintAsOne (std::ostream &out=mfem::out)
 
void PrintAsOneXG (std::ostream &out=mfem::out)
 Old mesh format (Netgen/Truegrid) version of 'PrintAsOne'. More...
 
void GetBoundingBox (Vector &p_min, Vector &p_max, int ref=2)
 
void GetCharacteristics (double &h_min, double &h_max, double &kappa_min, double &kappa_max)
 
virtual void PrintInfo (std::ostream &out=mfem::out)
 Print various parallel mesh stats. More...
 
void ParPrint (std::ostream &out) const
 Save the mesh in a parallel mesh format. More...
 
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. More...
 
virtual ~ParMesh ()
 
int GroupNVertices (int group)
 
int GroupNEdges (int group)
 
int GroupNFaces (int group)
 
int GroupVertex (int group, int i)
 
void GroupEdge (int group, int i, int &edge, int &o)
 
void GroupFace (int group, int i, int &face, int &o)
 
- Public Member Functions inherited from mfem::Mesh
 Mesh ()
 
 Mesh (const Mesh &mesh, bool copy_nodes=true)
 
 Mesh (double *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. More...
 
 Mesh (int _Dim, int NVert, int NElem, int NBdrElem=0, int _spaceDim=-1)
 Init constructor: begin the construction of a Mesh object. More...
 
void FinalizeTopology ()
 Finalize the construction of the secondary topology (connectivity) data of a Mesh. More...
 
void Finalize (bool refine=false, bool fix_orientation=false)
 Finalize the construction of a general Mesh. More...
 
void SetAttributes ()
 
void GetGeckoElementReordering (Array< int > &ordering)
 
void ReorderElements (const Array< int > &ordering, bool reorder_vertices=true)
 
 Mesh (int nx, int ny, int nz, Element::Type type, int generate_edges=0, double sx=1.0, double sy=1.0, double sz=1.0)
 
 Mesh (int nx, int ny, Element::Type type, int generate_edges=0, double sx=1.0, double sy=1.0)
 
 Mesh (int n, double sx=1.0)
 
 Mesh (const char *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)
 Create a disjoint mesh from the given mesh array. More...
 
 Mesh (Mesh *orig_mesh, int ref_factor, int ref_type)
 Create a uniformly refined (by any factor) version of orig_mesh. More...
 
virtual void Load (std::istream &input, int generate_edges=0, int refine=1, bool fix_orientation=true)
 
void Clear ()
 Clear the contents of the Mesh. More...
 
int MeshGenerator ()
 Get the mesh generator/type. More...
 
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. More...
 
int GetNE () const
 Returns number of elements. More...
 
int GetNBE () const
 Returns number of boundary elements. More...
 
int GetNEdges () const
 Return the number of edges. More...
 
int GetNFaces () const
 Return the number of faces in a 3D mesh. More...
 
int GetNumFaces () const
 Return the number of faces (3D), edges (2D) or vertices (1D). More...
 
long GetGlobalNE () const
 Return the total (global) number of elements. More...
 
int EulerNumber () const
 Equals 1 + num_holes - num_loops. More...
 
int EulerNumber2D () const
 Equals 1 - num_holes. More...
 
int Dimension () const
 
int SpaceDimension () const
 
const double * GetVertex (int i) const
 Return pointer to vertex i's coordinates. More...
 
double * GetVertex (int i)
 Return pointer to vertex i's coordinates. More...
 
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
 
void ChangeVertexDataOwnership (double *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. More...
 
const Element *const * GetElementsArray () const
 
const ElementGetElement (int i) const
 
ElementGetElement (int i)
 
const ElementGetBdrElement (int i) const
 
ElementGetBdrElement (int i)
 
const ElementGetFace (int i) const
 
int GetFaceBaseGeometry (int i) const
 
int GetElementBaseGeometry (int i=0) const
 
int GetBdrElementBaseGeometry (int i=0) const
 
void GetElementVertices (int i, Array< int > &v) const
 Returns the indices of the vertices of element i. More...
 
void GetBdrElementVertices (int i, Array< int > &v) const
 Returns the indices of the vertices of boundary element i. More...
 
void GetElementEdges (int i, Array< int > &edges, Array< int > &cor) const
 Return the indices and the orientations of all edges of element i. More...
 
void GetBdrElementEdges (int i, Array< int > &edges, Array< int > &cor) const
 Return the indices and the orientations of all edges of bdr element i. More...
 
void GetFaceEdges (int i, Array< int > &, Array< int > &) const
 
void GetFaceVertices (int i, Array< int > &vert) const
 Returns the indices of the vertices of face i. More...
 
void GetEdgeVertices (int i, Array< int > &vert) const
 Returns the indices of the vertices of edge i. More...
 
TableGetFaceEdgeTable () const
 Returns the face-to-edge Table (3D) More...
 
TableGetEdgeVertexTable () const
 Returns the edge-to-vertex Table (3D) More...
 
void GetElementFaces (int i, Array< int > &, Array< int > &) const
 Return the indices and the orientations of all faces of element i. More...
 
void GetBdrElementFace (int i, int *, int *) const
 Return the index and the orientation of the face of bdr element i. (3D) More...
 
int GetBdrElementEdgeIndex (int i) 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. More...
 
int GetElementType (int i) const
 Returns the type of element i. More...
 
int GetBdrElementType (int i) const
 Returns the type of boundary element i. More...
 
void GetPointMatrix (int i, DenseMatrix &pointmat) const
 
void GetBdrPointMatrix (int i, DenseMatrix &pointmat) const
 
void GetElementTransformation (int i, IsoparametricTransformation *ElTr)
 
ElementTransformationGetElementTransformation (int i)
 Returns the transformation defining the i-th element. More...
 
void GetElementTransformation (int i, const Vector &nodes, IsoparametricTransformation *ElTr)
 
ElementTransformationGetBdrElementTransformation (int i)
 Returns the transformation defining the i-th boundary element. More...
 
void GetBdrElementTransformation (int i, IsoparametricTransformation *ElTr)
 
void GetFaceTransformation (int i, IsoparametricTransformation *FTr)
 Returns the transformation defining the given face element in a user-defined variable. More...
 
void GetLocalFaceTransformation (int face_type, int elem_type, IsoparametricTransformation &Transf, int info)
 A helper method that constructs a transformation from the reference space of a face to the reference space of an element. More...
 
ElementTransformationGetFaceTransformation (int FaceNo)
 Returns the transformation defining the given face element. More...
 
void GetEdgeTransformation (int i, IsoparametricTransformation *EdTr)
 
ElementTransformationGetEdgeTransformation (int EdgeNo)
 Returns the transformation defining the given face element. More...
 
FaceElementTransformationsGetFaceElementTransformations (int FaceNo, int mask=31)
 
FaceElementTransformationsGetInteriorFaceTransformations (int FaceNo)
 
FaceElementTransformationsGetBdrFaceTransformations (int BdrElemNo)
 
bool FaceIsInterior (int FaceNo) const
 Return true if the given face is interior. More...
 
void GetFaceElements (int Face, int *Elem1, int *Elem2)
 
void GetFaceInfos (int Face, int *Inf1, int *Inf2)
 
int GetFaceGeometryType (int Face) const
 
int GetFaceElementType (int Face) const
 
int CheckElementOrientation (bool fix_it=true)
 Check the orientation of the elements. More...
 
int CheckBdrElementOrientation (bool fix_it=true)
 Check the orientation of the boundary elements. More...
 
int GetAttribute (int i) const
 Return the attribute of element i. More...
 
void SetAttribute (int i, int attr)
 Set the attribute of element i. More...
 
int GetBdrAttribute (int i) const
 Return the attribute of boundary element i. More...
 
const TableElementToElementTable ()
 
const TableElementToFaceTable () const
 
const TableElementToEdgeTable () const
 
TableGetVertexToElementTable ()
 The returned Table must be destroyed by the caller. More...
 
TableGetFaceToElementTable () const
 
int * CartesianPartitioning (int nxyz[])
 
int * GeneratePartitioning (int nparts, int part_method=1)
 
void CheckPartitioning (int *partitioning)
 
void CheckDisplacements (const Vector &displacements, double &tmax)
 
void MoveVertices (const Vector &displacements)
 
void GetVertices (Vector &vert_coord) const
 
void SetVertices (const Vector &vert_coord)
 
void GetNode (int i, double *coord)
 
void SetNode (int i, const double *coord)
 
void MoveNodes (const Vector &displacements)
 
void GetNodes (Vector &node_coord) const
 
void SetNodes (const Vector &node_coord)
 
GridFunctionGetNodes ()
 Return a pointer to the internal node GridFunction (may be NULL). More...
 
const GridFunctionGetNodes () const
 
bool OwnsNodes () const
 Return the mesh nodes ownership flag. More...
 
void SetNodesOwner (bool nodes_owner)
 Set the mesh nodes ownership flag. More...
 
void NewNodes (GridFunction &nodes, bool make_owner=false)
 Replace the internal node GridFunction with the given GridFunction. More...
 
void SwapNodes (GridFunction *&nodes, int &own_nodes_)
 
void GetNodes (GridFunction &nodes) const
 Return the mesh nodes/vertices projected on the given GridFunction. More...
 
void SetNodalFESpace (FiniteElementSpace *nfes)
 
void SetNodalGridFunction (GridFunction *nodes, bool make_owner=false)
 
const FiniteElementSpaceGetNodalFESpace () const
 
void SetCurvature (int order, bool discont=false, int space_dim=-1, int ordering=1)
 
void UniformRefinement ()
 
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 (double prob, bool aniso=false, int nonconforming=-1, int nc_limit=0)
 Refine each element with given probability. Uses GeneralRefinement. More...
 
void RefineAtVertex (const Vertex &vert, double eps=0.0, int nonconforming=-1)
 Refine elements sharing the specified vertex. Uses GeneralRefinement. More...
 
bool RefineByError (const Array< double > &elem_error, double threshold, int nonconforming=-1, int nc_limit=0)
 
bool RefineByError (const Vector &elem_error, double threshold, int nonconforming=-1, int nc_limit=0)
 
bool DerefineByError (Array< double > &elem_error, double threshold, int nc_limit=0, int op=1)
 
bool DerefineByError (const Vector &elem_error, double threshold, int nc_limit=0, int op=1)
 Same as DerefineByError for an error vector. More...
 
void EnsureNCMesh (bool triangles_nonconforming=false)
 
bool Conforming () const
 
bool Nonconforming () const
 
const CoarseFineTransformationsGetRefinementTransforms ()
 
Operation GetLastOperation () const
 Return type of last modification of the mesh. More...
 
long GetSequence () const
 
void PrintVTK (std::ostream &out)
 
void PrintVTK (std::ostream &out, int ref, int field_data=0)
 
void GetElementColoring (Array< int > &colors, int el0=0)
 
void PrintWithPartitioning (int *partitioning, std::ostream &out, int elem_attr=0) const
 
void PrintElementsWithPartitioning (int *partitioning, std::ostream &out, int interior_faces=0)
 
void PrintSurfaces (const Table &Aface_face, std::ostream &out) const
 Print set of disjoint surfaces: More...
 
void ScaleSubdomains (double sf)
 
void ScaleElements (double sf)
 
void Transform (void(*f)(const Vector &, Vector &))
 
void Transform (VectorCoefficient &deformation)
 
void RemoveUnusedVertices ()
 Remove unused vertices and rebuild mesh connectivity. More...
 
void RemoveInternalBoundaries ()
 
double GetElementSize (int i, int type=0)
 
double GetElementSize (int i, const Vector &dir)
 
double GetElementVolume (int i)
 
void GetBoundingBox (Vector &min, Vector &max, int ref=2)
 
void GetCharacteristics (double &h_min, double &h_max, double &kappa_min, double &kappa_max, Vector *Vh=NULL, Vector *Vk=NULL)
 
void PrintCharacteristics (Vector *Vh=NULL, Vector *Vk=NULL, std::ostream &out=mfem::out)
 
void MesquiteSmooth (const int mesquite_option=0)
 
virtual ~Mesh ()
 Destroys Mesh. More...
 
ElementNewElement (int geom)
 
void AddVertex (const double *)
 
void AddTri (const int *vi, int attr=1)
 
void AddTriangle (const int *vi, int attr=1)
 
void AddQuad (const int *vi, int attr=1)
 
void AddTet (const int *vi, int attr=1)
 
void AddHex (const int *vi, int attr=1)
 
void AddHexAsTets (const int *vi, int attr=1)
 
void AddElement (Element *elem)
 
void AddBdrElement (Element *elem)
 
void AddBdrSegment (const int *vi, int attr=1)
 
void AddBdrTriangle (const int *vi, int attr=1)
 
void AddBdrQuad (const int *vi, int attr=1)
 
void AddBdrQuadAsTriangles (const int *vi, int attr=1)
 
void GenerateBoundaryElements ()
 
void FinalizeTriMesh (int generate_edges=0, int refine=0, bool fix_orientation=true)
 Finalize the construction of a triangular Mesh. More...
 
void FinalizeQuadMesh (int generate_edges=0, int refine=0, bool fix_orientation=true)
 Finalize the construction of a quadrilateral Mesh. More...
 
void FinalizeTetMesh (int generate_edges=0, int refine=0, bool fix_orientation=true)
 Finalize the construction of a tetrahedral Mesh. More...
 
void FinalizeHexMesh (int generate_edges=0, int refine=0, bool fix_orientation=true)
 Finalize the construction of a hexahedral Mesh. More...
 
void KnotInsert (Array< KnotVector * > &kv)
 
void DegreeElevate (int rel_degree, int degree=16)
 

Protected Member Functions

ElementReadElement (apf::MeshEntity *Ent, const int geom, apf::Downward Verts, const int Attr, apf::Numbering *vert_num)
 
- Protected Member Functions inherited from mfem::ParMesh
 ParMesh ()
 
 ParMesh (const ParNCMesh &pncmesh)
 Create from a nonconforming mesh. More...
 
virtual void MarkTetMeshForRefinement (DSTable &v_to_v)
 
int GetEdgeSplittings (Element *edge, const DSTable &v_to_v, int *middle)
 Return a number(0-1) identifying how the given edge has been split. More...
 
int GetFaceSplittings (Element *face, const DSTable &v_to_v, int *middle)
 Return a number(0-4) identifying how the given face has been split. More...
 
void GetFaceNbrElementTransformation (int i, IsoparametricTransformation *ElTr)
 
ElementTransformationGetGhostFaceTransformation (FaceElementTransformations *FETr, int face_type, int face_geom)
 
virtual void QuadUniformRefinement ()
 Refine quadrilateral mesh. More...
 
virtual void HexUniformRefinement ()
 Refine a hexahedral mesh. More...
 
virtual void NURBSUniformRefinement ()
 Refine NURBS mesh. More...
 
virtual void LocalRefinement (const Array< int > &marked_el, int type=3)
 This function is not public anymore. Use GeneralRefinement instead. More...
 
virtual void NonconformingRefinement (const Array< Refinement > &refinements, int nc_limit=0)
 This function is not public anymore. Use GeneralRefinement instead. More...
 
virtual bool NonconformingDerefinement (Array< double > &elem_error, double threshold, int nc_limit=0, int op=1)
 NC version of GeneralDerefinement. More...
 
void DeleteFaceNbrData ()
 
bool WantSkipSharedMaster (const NCMesh::Master &master) const
 
- Protected Member Functions inherited from mfem::Mesh
void Init ()
 
void InitTables ()
 
void SetEmpty ()
 
void DestroyTables ()
 
void DeleteTables ()
 
void DestroyPointers ()
 
void Destroy ()
 
void DeleteLazyTables ()
 
ElementReadElementWithoutAttr (std::istream &)
 
ElementReadElement (std::istream &)
 
void ReadMFEMMesh (std::istream &input, bool mfem_v11, 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 ReadVTKMesh (std::istream &input, int &curved, int &read_gf)
 
void ReadNURBSMesh (std::istream &input, int &curved, int &read_gf)
 
void ReadInlineMesh (std::istream &input, int generate_edges=0)
 
void ReadGmshMesh (std::istream &input)
 
void ReadCubit (const char *filename, int &curved, int &read_gf)
 
void SetMeshGen ()
 Determine the mesh generator bitmask meshgen, see MeshGenerator(). More...
 
double GetLength (int i, int j) const
 Return the length of the segment from node i to node j. More...
 
void GetElementJacobian (int i, DenseMatrix &J)
 
void MarkForRefinement ()
 
void MarkTriMeshForRefinement ()
 
void GetEdgeOrdering (DSTable &v_to_v, Array< int > &order)
 
void PrepareNodeReorder (DSTable **old_v_to_v, Table **old_elem_vert)
 
void DoNodeReorder (DSTable *old_v_to_v, Table *old_elem_vert)
 
STable3DGetFacesTable ()
 
STable3DGetElementToFaceTable (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 *)
 
void Bisection (int i, const DSTable &, int *)
 
void UniformRefinement (int i, const DSTable &, int *, int *, int *)
 
void AverageVertices (int *indexes, int n, int result)
 
void InitRefinementTransforms ()
 
int FindCoarseElement (int i)
 
void UpdateNodes ()
 Update the nodes of a curved mesh after refinement. More...
 
void DerefineMesh (const Array< int > &derefinements)
 Derefine elements once a list of derefinements is known. More...
 
void LoadPatchTopo (std::istream &input, Array< int > &edge_to_knot)
 Read NURBS patch/macro-element mesh. More...
 
void UpdateNURBS ()
 
void PrintTopo (std::ostream &out, const Array< int > &e_to_k) const
 
void GetLocalPtToSegTransformation (IsoparametricTransformation &, int)
 Used in GetFaceElementTransformations (...) More...
 
void GetLocalSegToTriTransformation (IsoparametricTransformation &loc, int i)
 
void GetLocalSegToQuadTransformation (IsoparametricTransformation &loc, int i)
 
void GetLocalTriToTetTransformation (IsoparametricTransformation &loc, int i)
 Used in GetFaceElementTransformations (...) More...
 
void GetLocalQuadToHexTransformation (IsoparametricTransformation &loc, int i)
 Used in GetFaceElementTransformations (...) More...
 
void ApplyLocalSlaveTransformation (IsoparametricTransformation &transf, const FaceInfo &fi)
 
bool IsSlaveFace (const FaceInfo &fi) const
 
void GetVertexToVertexTable (DSTable &) const
 
int GetElementToEdgeTable (Table &, Array< int > &)
 
void AddPointFaceElement (int lf, int gf, int el)
 Used in GenerateFaces() More...
 
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. More...
 
void InitBaseGeom ()
 
void FinalizeCheck ()
 
void Loader (std::istream &input, int generate_edges=0, std::string parse_tag="")
 
void Printer (std::ostream &out=mfem::out, std::string section_delimiter="") const
 
void Make3D (int nx, int ny, int nz, Element::Type type, int generate_edges, double sx, double sy, double sz)
 
void Make2D (int nx, int ny, Element::Type type, int generate_edges, double sx, double sy)
 
void Make1D (int n, double sx=1.0)
 Creates a 1D mesh for the interval [0,sx] divided into n equal intervals. More...
 
void InitFromNCMesh (const NCMesh &ncmesh)
 Initialize vertices/elements/boundary/tables from a nonconforming mesh. More...
 
 Mesh (const NCMesh &ncmesh)
 Create from a nonconforming mesh. More...
 
void Swap (Mesh &other, bool non_geometry=false)
 
void GetElementData (const Array< Element * > &elem_array, int geom, Array< int > &elem_vtx, Array< int > &attr) const
 

Additional Inherited Members

- Public Types inherited from mfem::Mesh
enum  Operation { NONE, REFINE, DEREFINE, REBALANCE }
 
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
 
- Static Public Member Functions inherited from mfem::Mesh
static FiniteElementGetTransformationFEforElementType (int)
 
- Public Attributes inherited from mfem::ParMesh
GroupTopology gtopo
 
bool have_face_nbr_data
 
Array< int > face_nbr_group
 
Array< int > face_nbr_elements_offset
 
Array< int > face_nbr_vertices_offset
 
Array< Element * > face_nbr_elements
 
Array< Vertexface_nbr_vertices
 
Table send_face_nbr_elements
 
Table send_face_nbr_vertices
 
ParNCMeshpncmesh
 
- Public Attributes inherited from mfem::Mesh
Array< int > attributes
 A list of all unique element attributes used by the Mesh. More...
 
Array< int > bdr_attributes
 A list of all unique boundary attributes used by the Mesh. More...
 
NURBSExtensionNURBSext
 Optional NURBS mesh extension. More...
 
NCMeshncmesh
 Optional non-conforming mesh extension. More...
 
- Static Public Attributes inherited from mfem::Mesh
static bool remove_unused_vertices = true
 
- Static Protected Member Functions inherited from mfem::Mesh
static void PrintElementWithoutAttr (const Element *, std::ostream &)
 
static void PrintElement (const Element *, std::ostream &)
 
static int GetTriOrientation (const int *base, const int *test)
 Returns the orientation of "test" relative to "base". More...
 
static int GetQuadOrientation (const int *base, const int *test)
 Returns the orientation of "test" relative to "base". More...
 
static void GetElementArrayEdgeTable (const Array< Element * > &elem_array, const DSTable &v_to_v, Table &el_to_edge)
 
static void ShiftL2R (int &, int &, int &)
 
static void Rotate3 (int &, int &, int &)
 
- Protected Attributes inherited from mfem::ParMesh
MPI_Comm MyComm
 
int NRanks
 
int MyRank
 
Array< Element * > shared_edges
 
Array< Element * > shared_faces
 
Table group_svert
 Shared objects in each group. More...
 
Table group_sedge
 
Table group_sface
 
Array< int > svert_lvert
 Shared to local index mapping. More...
 
Array< int > sedge_ledge
 
Array< int > sface_lface
 
- Protected Attributes inherited from mfem::Mesh
int Dim
 
int spaceDim
 
int NumOfVertices
 
int NumOfElements
 
int NumOfBdrElements
 
int NumOfEdges
 
int NumOfFaces
 
int BaseGeom
 
int BaseBdrGeom
 
int meshgen
 
long sequence
 
Array< Element * > elements
 
Array< Vertexvertices
 
Array< Element * > boundary
 
Array< Element * > faces
 
Array< FaceInfofaces_info
 
Array< NCFaceInfonc_faces_info
 
Tableel_to_edge
 
Tableel_to_face
 
Tableel_to_el
 
Array< int > be_to_edge
 
Tablebel_to_edge
 
Array< int > be_to_face
 
Tableface_edge
 
Tableedge_vertex
 
IsoparametricTransformation Transformation
 
IsoparametricTransformation Transformation2
 
IsoparametricTransformation FaceTransformation
 
IsoparametricTransformation EdgeTransformation
 
FaceElementTransformations FaceElemTr
 
CoarseFineTransformations CoarseFineTr
 
GridFunctionNodes
 
int own_nodes
 
MemAlloc< Tetrahedron, 1024 > TetMemory
 
Operation last_operation
 
- Static Protected Attributes inherited from mfem::Mesh
static const int vtk_quadratic_tet [10]
 
static const int vtk_quadratic_hex [27]
 

Detailed Description

Class for PUMI parallel meshes.

Definition at line 72 of file pumi.hpp.

Constructor & Destructor Documentation

mfem::ParPumiMesh::ParPumiMesh ( MPI_Comm  comm,
apf::Mesh2 *  apf_mesh 
)

Build a parallel MFEM mesh from a parallel PUMI mesh.

Definition at line 268 of file pumi.cpp.

virtual mfem::ParPumiMesh::~ParPumiMesh ( )
inlinevirtual

Definition at line 113 of file pumi.hpp.

Member Function Documentation

void mfem::ParPumiMesh::FieldMFEMtoPUMI ( apf::Mesh2 *  apf_mesh,
ParGridFunction Vel,
ParGridFunction Pr,
apf::Field *  VelField,
apf::Field *  PrField,
apf::Field *  VelMagField 
)

Transfer field from MFEM mesh to PUMI mesh [Mixed].

Definition at line 1105 of file pumi.cpp.

void mfem::ParPumiMesh::FieldMFEMtoPUMI ( apf::Mesh2 *  apf_mesh,
ParGridFunction Pr,
apf::Field *  PrField,
apf::Field *  PrMagField 
)

Transfer field from MFEM mesh to PUMI mesh [Scalar].

Definition at line 1326 of file pumi.cpp.

void mfem::ParPumiMesh::FieldPUMItoMFEM ( apf::Mesh2 *  apf_mesh,
apf::Field *  ScalarField,
ParGridFunction Pr 
)

Transfer a field from PUMI to MFEM after mesh adapt [Scalar].

Definition at line 1732 of file pumi.cpp.

Element * mfem::ParPumiMesh::ReadElement ( apf::MeshEntity *  Ent,
const int  geom,
apf::Downward  Verts,
const int  Attr,
apf::Numbering *  vert_num 
)
protected

Definition at line 242 of file pumi.cpp.

void mfem::ParPumiMesh::UpdateMesh ( const ParMesh AdaptedpMesh)

Update the mesh after adaptation.

Definition at line 938 of file pumi.cpp.

void mfem::ParPumiMesh::VectorFieldMFEMtoPUMI ( apf::Mesh2 *  apf_mesh,
ParGridFunction Vel,
apf::Field *  VelField,
apf::Field *  VelMagField 
)

Transfer field from MFEM mesh to PUMI mesh [Vector].

Definition at line 1526 of file pumi.cpp.


The documentation for this class was generated from the following files: