37#include <apfNumbering.h>
38#include <apfDynamicVector.h>
50 void ReadSCORECMesh(apf::Mesh2* apf_mesh, apf::Numbering* v_num_loc,
55 PumiMesh(apf::Mesh2* apf_mesh,
int generate_edges = 0,
int refine = 1,
56 bool fix_orientation =
true);
60 void Load(apf::Mesh2* apf_mesh,
int generate_edges = 0,
int refine = 1,
61 bool fix_orientation =
true);
74 apf::Numbering* v_num_loc;
79 int refine = 1,
bool fix_orientation =
true);
99 apf::NewArray<apf::Vector3>& pumi_xi,
100 bool checkOrientation =
true);
109 apf::MeshEntity* tet,
111 apf::NewArray<apf::Vector3>& pumi_xi,
112 bool checkOrientation =
true);
117 apf::Field* vel_field,
118 apf::Field* pr_field,
119 apf::Field* vel_mag_field);
124 apf::Field* pr_field,
125 apf::Field* pr_mag_field);
130 apf::Field* vel_field,
131 apf::Field* vel_mag_field);
136 apf::Field* nedelec_field);
156 const int mesh_order);
Class for PUMI grid functions.
virtual ~GridFunctionPumi()
Destroy the grid function.
GridFunctionPumi(Mesh *m, apf::Mesh2 *PumiM, apf::Numbering *v_num_loc, const int mesh_order)
Construct a GridFunction from a PUMI mesh.
Class for grid function - Vector with associated FE space.
Class for an integration rule - an Array of IntegrationPoint.
virtual void Load(std::istream &input, int generate_edges=0, int refine=1, bool fix_orientation=true)
Class for parallel grid function.
Class for parallel meshes.
Class for PUMI parallel meshes.
void FieldPUMItoMFEM(apf::Mesh2 *apf_mesh, apf::Field *field, ParGridFunction *grid)
Transfer a field from PUMI to MFEM after mesh adapt [Scalar and Vector].
void VectorFieldMFEMtoPUMI(apf::Mesh2 *apf_mesh, ParGridFunction *grid_vel, apf::Field *vel_field, apf::Field *vel_mag_field)
Transfer field from MFEM mesh to PUMI mesh [Vector].
void FieldMFEMtoPUMI(apf::Mesh2 *apf_mesh, ParGridFunction *grid_vel, ParGridFunction *grid_pr, apf::Field *vel_field, apf::Field *pr_field, apf::Field *vel_mag_field)
Transfer field from MFEM mesh to PUMI mesh [Mixed].
void ParentXisMFEMtoPUMI(apf::Mesh2 *apf_mesh, int elemId, apf::MeshEntity *tet, const IntegrationRule &mfem_xi, apf::NewArray< apf::Vector3 > &pumi_xi, bool checkOrientation=true)
Convert the parent coordinate from MFEM to PUMI.
int RotationPUMItoMFEM(apf::Mesh2 *apf_mesh, apf::MeshEntity *tet, int elemId)
Returns the PUMI-to-MFEM permutation (aka rotation, aka orientation)
void UpdateMesh(const ParMesh *AdaptedpMesh)
Update the mesh after adaptation.
IntegrationRule ParentXisPUMItoMFEM(apf::Mesh2 *apf_mesh, apf::MeshEntity *tet, int elemId, apf::NewArray< apf::Vector3 > &pumi_xi, bool checkOrientation=true)
Convert the parent coordinate from PUMI to MFEM.
void NedelecFieldMFEMtoPUMI(apf::Mesh2 *apf_mesh, ParGridFunction *gf, apf::Field *nedelec_field)
Transfer Nedelec field from MFEM mesh to PUMI mesh [Vector].
Base class for PUMI meshes.
void ReadSCORECMesh(apf::Mesh2 *apf_mesh, apf::Numbering *v_num_loc, const int curved)
PumiMesh(apf::Mesh2 *apf_mesh, int generate_edges=0, int refine=1, bool fix_orientation=true)
Generate an MFEM mesh from a PUMI mesh.
void CountBoundaryEntity(apf::Mesh2 *apf_mesh, const int BcDim, int &NumBC)
void Load(apf::Mesh2 *apf_mesh, int generate_edges=0, int refine=1, bool fix_orientation=true)
Load a PUMI mesh (following the steps in the MFEM Load function).
virtual ~PumiMesh()
Destroys Mesh.