MFEM
v3.1
Finite element discretization library
|
#include <mesh.hpp>
Classes | |
struct | FaceInfo |
struct | NCFaceInfo |
Public Types | |
enum | { NORMAL, TWO_LEVEL_COARSE, TWO_LEVEL_FINE } |
Public Member Functions | |
Mesh () | |
Mesh (const Mesh &mesh, bool copy_nodes=true) | |
Mesh (int _Dim, int NVert, int NElem, int NBdrElem=0, int _spaceDim=-1) | |
Element * | NewElement (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) |
void | FinalizeQuadMesh (int generate_edges=0, int refine=0, bool fix_orientation=true) |
void | FinalizeTetMesh (int generate_edges=0, int refine=0, bool fix_orientation=true) |
void | FinalizeHexMesh (int generate_edges=0, int refine=0, bool fix_orientation=true) |
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 (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... | |
void | Load (std::istream &input, int generate_edges=0, int refine=1, bool fix_orientation=true) |
int | MeshGenerator () |
Truegrid or NetGen? More... | |
int | GetNV () const |
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... | |
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) |
const Element * | GetElement (int i) const |
Element * | GetElement (int i) |
const Element * | GetBdrElement (int i) const |
Element * | GetBdrElement (int i) |
const Element * | GetFace (int i) const |
int | GetFaceBaseGeometry (int i) const |
int | GetElementBaseGeometry (int i) const |
int | GetBdrElementBaseGeometry (int i) const |
void | GetElementVertices (int i, Array< int > &dofs) const |
Returns the indices of the dofs of element i. More... | |
void | GetBdrElementVertices (int i, Array< int > &dofs) const |
Returns the indices of the dofs 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... | |
Table * | GetFaceEdgeTable () const |
Returns the face-to-edge Table (3D) More... | |
Table * | GetEdgeVertexTable () 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 |
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) |
ElementTransformation * | GetElementTransformation (int i) |
Returns the transformation defining the i-th element. More... | |
void | GetElementTransformation (int i, const Vector &nodes, IsoparametricTransformation *ElTr) |
ElementTransformation * | GetBdrElementTransformation (int i) |
Returns the transformation defining the i-th boundary element. More... | |
void | GetBdrElementTransformation (int i, IsoparametricTransformation *ElTr) |
void | GetFaceTransformation (int i, IsoparametricTransformation *FTr) |
ElementTransformation * | GetFaceTransformation (int FaceNo) |
Returns the transformation defining the given face element. More... | |
void | GetEdgeTransformation (int i, IsoparametricTransformation *EdTr) |
ElementTransformation * | GetEdgeTransformation (int EdgeNo) |
Returns the transformation defining the given face element. More... | |
FaceElementTransformations * | GetFaceElementTransformations (int FaceNo, int mask=31) |
FaceElementTransformations * | GetInteriorFaceTransformations (int FaceNo) |
FaceElementTransformations * | GetBdrFaceTransformations (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) |
void | CheckElementOrientation (bool fix_it=true) |
Check the orientation of the elements. More... | |
void | 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... | |
int | GetBdrAttribute (int i) const |
Return the attribute of boundary element i. More... | |
const Table & | ElementToElementTable () |
const Table & | ElementToFaceTable () const |
const Table & | ElementToEdgeTable () const |
Table * | GetVertexToElementTable () |
The returned Table must be destroyed by the caller. More... | |
Table * | GetFaceToElementTable () const |
virtual void | ReorientTetMesh () |
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) |
GridFunction * | GetNodes () |
Return a pointer to the internal node GridFunction (may be NULL). 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 FiniteElementSpace * | GetNodalFESpace () |
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 | EnsureNCMesh () |
void | RandomRefinement (int levels, int frac=2, bool aniso=false, int nonconforming=-1, int nc_limit=-1, int seed=0) |
Refine each element with 1/frac probability, repeat 'levels' times. More... | |
void | RefineAtVertex (const Vertex &vert, int levels, double eps=0.0, int nonconforming=-1) |
Refine elements sharing the specified vertex, 'levels' times. More... | |
void | KnotInsert (Array< KnotVector * > &kv) |
void | DegreeElevate (int t) |
void | UseTwoLevelState (int use) |
void | SetState (int s) |
Change the mesh state to NORMAL, TWO_LEVEL_COARSE, TWO_LEVEL_FINE. More... | |
int | GetState () const |
int | GetNumFineElems (int i) |
int | GetRefinementType (int i) |
For a given coarse element i returns its refinement type. More... | |
int | GetFineElem (int i, int j) |
ElementTransformation * | GetFineElemTrans (int i, int j) |
virtual void | PrintXG (std::ostream &out=std::cout) const |
Print the mesh to the given stream using Netgen/Truegrid format. More... | |
virtual void | Print (std::ostream &out=std::cout) const |
Print the mesh to the given stream using the default MFEM mesh format. More... | |
void | PrintVTK (std::ostream &out) |
Print the mesh in VTK format (linear and quadratic meshes only). More... | |
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 | PrintCharacteristics (Vector *Vh=NULL, Vector *Vk=NULL, std::ostream &out=std::cout) |
virtual void | PrintInfo (std::ostream &out=std::cout) |
void | MesquiteSmooth (const int mesquite_option=0) |
virtual | ~Mesh () |
Destroys mesh. More... | |
Static Public Member Functions | |
static FiniteElement * | GetTransformationFEforElementType (int) |
Public Attributes | |
Array< int > | attributes |
Array< int > | bdr_attributes |
NURBSExtension * | NURBSext |
NCMesh * | ncmesh |
Protected Member Functions | |
void | Init () |
void | InitTables () |
void | DeleteTables () |
void | DeleteCoarseTables () |
Element * | ReadElementWithoutAttr (std::istream &) |
Element * | ReadElement (std::istream &) |
void | SetMeshGen () |
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 | MarkTetMeshForRefinement () |
void | PrepareNodeReorder (DSTable **old_v_to_v, Table **old_elem_vert) |
void | DoNodeReorder (DSTable *old_v_to_v, Table *old_elem_vert) |
STable3D * | GetFacesTable () |
STable3D * | GetElementToFaceTable (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 | UpdateNodes () |
Update the nodes of a curved mesh after refinement. More... | |
virtual void | QuadUniformRefinement () |
Refine quadrilateral mesh. More... | |
virtual void | HexUniformRefinement () |
Refine 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... | |
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 | BisectTriTrans (DenseMatrix &pointmat, Triangle *tri, int child) |
void | BisectTetTrans (DenseMatrix &pointmat, Tetrahedron *tet, int child) |
int | GetFineElemPath (int i, int j) |
int | GetBisectionHierarchy (Element *E) |
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 | ApplySlaveTransformation (IsoparametricTransformation &transf, const FaceInfo &fi) |
bool | IsSlaveFace (const FaceInfo &fi) |
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 | 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) |
Static Protected Member Functions | |
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 &) |
Static Protected Attributes | |
static const int | tet_faces [4][3] |
static const int | hex_faces [6][4] |
static const int | tri_orientations [6][3] |
static const int | quad_orientations [8][4] |
Friends | |
class | ParMesh |
class | ParNCMesh |
class | NURBSExtension |
class | Tetrahedron |
anonymous enum |
|
protected |
|
explicit |
Copy constructor. Performs a deep copy of (almost) all data, so that the source mesh can be modified (e.g. deleted, refined) without affecting the new mesh. The source mesh has to be in a NORMAL, i.e. not TWO_LEVEL_*, state. If 'copy_nodes' is false, use a shallow (pointer) copy for the nodes, if present.
|
inline |
|
inline |
|
inline |
|
inlineexplicit |
mfem::Mesh::Mesh | ( | std::istream & | input, |
int | generate_edges = 0 , |
||
int | refine = 1 , |
||
bool | fix_orientation = true |
||
) |
mfem::Mesh::Mesh | ( | Mesh * | mesh_array[], |
int | num_pieces | ||
) |
void mfem::Mesh::AddBdrQuad | ( | const int * | vi, |
int | attr = 1 |
||
) |
void mfem::Mesh::AddBdrQuadAsTriangles | ( | const int * | vi, |
int | attr = 1 |
||
) |
void mfem::Mesh::AddBdrSegment | ( | const int * | vi, |
int | attr = 1 |
||
) |
void mfem::Mesh::AddBdrTriangle | ( | const int * | vi, |
int | attr = 1 |
||
) |
void mfem::Mesh::AddHexAsTets | ( | const int * | vi, |
int | attr = 1 |
||
) |
|
protected |
Used in GenerateFaces()
|
protected |
|
protected |
void mfem::Mesh::AddTriangle | ( | const int * | vi, |
int | attr = 1 |
||
) |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
void mfem::Mesh::CheckBdrElementOrientation | ( | bool | fix_it = true | ) |
void mfem::Mesh::CheckDisplacements | ( | const Vector & | displacements, |
double & | tmax | ||
) |
void mfem::Mesh::CheckElementOrientation | ( | bool | fix_it = true | ) |
|
protected |
void mfem::Mesh::EnsureNCMesh | ( | ) |
|
inline |
|
inline |
|
inline |
|
inlineprotected |
void mfem::Mesh::FinalizeHexMesh | ( | int | generate_edges = 0 , |
int | refine = 0 , |
||
bool | fix_orientation = true |
||
) |
void mfem::Mesh::FinalizeQuadMesh | ( | int | generate_edges = 0 , |
int | refine = 0 , |
||
bool | fix_orientation = true |
||
) |
void mfem::Mesh::FinalizeTetMesh | ( | int | generate_edges = 0 , |
int | refine = 0 , |
||
bool | fix_orientation = true |
||
) |
void mfem::Mesh::FinalizeTriMesh | ( | int | generate_edges = 0 , |
int | refine = 0 , |
||
bool | fix_orientation = true |
||
) |
void mfem::Mesh::GeneralRefinement | ( | const Array< Refinement > & | refinements, |
int | nonconforming = -1 , |
||
int | nc_limit = 0 |
||
) |
Refine selected mesh elements. Refinement type can be specified for each element. The function can do conforming refinement of triangles and tetrahedra and non-conforming refinement (i.e., with hanging-nodes) of triangles, quadrilaterals and hexahedrons. If 'nonconforming' = -1, suitable refinement method is selected automatically (namely, conforming refinement for triangles). Use noncoforming = 0/1 to force the method. For nonconforming refinements, nc_limit optionally specifies the maximum level of hanging nodes (unlimited by default).
void mfem::Mesh::GeneralRefinement | ( | const Array< int > & | el_to_refine, |
int | nonconforming = -1 , |
||
int | nc_limit = 0 |
||
) |
int * mfem::Mesh::GeneratePartitioning | ( | int | nparts, |
int | part_method = 1 |
||
) |
|
inline |
|
inline |
|
inline |
|
inline |
int mfem::Mesh::GetBdrElementEdgeIndex | ( | int | i | ) | const |
void mfem::Mesh::GetBdrElementFace | ( | int | i, |
int * | f, | ||
int * | o | ||
) | const |
ElementTransformation * mfem::Mesh::GetBdrElementTransformation | ( | int | i | ) |
void mfem::Mesh::GetBdrElementTransformation | ( | int | i, |
IsoparametricTransformation * | ElTr | ||
) |
int mfem::Mesh::GetBdrElementType | ( | int | i | ) | const |
|
inline |
FaceElementTransformations * mfem::Mesh::GetBdrFaceTransformations | ( | int | BdrElemNo | ) |
void mfem::Mesh::GetBdrPointMatrix | ( | int | i, |
DenseMatrix & | pointmat | ||
) | const |
|
protected |
void mfem::Mesh::GetEdgeTransformation | ( | int | i, |
IsoparametricTransformation * | EdTr | ||
) |
ElementTransformation * mfem::Mesh::GetEdgeTransformation | ( | int | EdgeNo | ) |
Table * mfem::Mesh::GetEdgeVertexTable | ( | ) | const |
void mfem::Mesh::GetEdgeVertices | ( | int | i, |
Array< int > & | vert | ||
) | const |
|
inline |
|
inline |
void mfem::Mesh::GetElementColoring | ( | Array< int > & | colors, |
int | el0 = 0 |
||
) |
|
protected |
double mfem::Mesh::GetElementSize | ( | int | i, |
int | type = 0 |
||
) |
double mfem::Mesh::GetElementSize | ( | int | i, |
const Vector & | dir | ||
) |
Return element to edge table and the indices for the boundary edges. The entries in the table are ordered according to the order of the nodes in the elements. For example, if T is the element to edge table T(i, 0) gives the index of edge in element i that connects vertex 0 to vertex 1, etc. Returns the number of the edges.
|
protected |
void mfem::Mesh::GetElementTransformation | ( | int | i, |
IsoparametricTransformation * | ElTr | ||
) |
ElementTransformation * mfem::Mesh::GetElementTransformation | ( | int | i | ) |
void mfem::Mesh::GetElementTransformation | ( | int | i, |
const Vector & | nodes, | ||
IsoparametricTransformation * | ElTr | ||
) |
int mfem::Mesh::GetElementType | ( | int | i | ) | const |
|
inline |
Table * mfem::Mesh::GetFaceEdgeTable | ( | ) | const |
void mfem::Mesh::GetFaceElements | ( | int | Face, |
int * | Elem1, | ||
int * | Elem2 | ||
) |
FaceElementTransformations * mfem::Mesh::GetFaceElementTransformations | ( | int | FaceNo, |
int | mask = 31 |
||
) |
Returns (a pointer to a structure containing) the following data: 1) Elem1No - the index of the first element that contains this face this is the element that has the same outward unit normal vector as the face; 2) Elem2No - the index of the second element that contains this face this element has outward unit normal vector as the face multiplied with -1; 3) Elem1, Elem2 - pointers to the ElementTransformation's of the first and the second element respectively; 4) Face - pointer to the ElementTransformation of the face; 5) Loc1, Loc2 - IntegrationPointTransformation's mapping the face coordinate system to the element coordinate system (both in their reference elements). Used to transform IntegrationPoints from face to element. More formally, let: TL1, TL2 be the transformations represented by Loc1, Loc2, TE1, TE2 - the transformations represented by Elem1, Elem2, TF - the transformation represented by Face, then TF(x) = TE1(TL1(x)) = TE2(TL2(x)) for all x in the reference face. 6) FaceGeom - the base geometry for the face. The mask specifies which fields in the structure to return: mask & 1 - Elem1, mask & 2 - Elem2, mask & 4 - Loc1, mask & 8 - Loc2, mask & 16 - Face.
void mfem::Mesh::GetFaceInfos | ( | int | Face, |
int * | Inf1, | ||
int * | Inf2 | ||
) |
Table * mfem::Mesh::GetFaceToElementTable | ( | ) | const |
void mfem::Mesh::GetFaceTransformation | ( | int | i, |
IsoparametricTransformation * | FTr | ||
) |
ElementTransformation * mfem::Mesh::GetFaceTransformation | ( | int | FaceNo | ) |
|
inline |
int mfem::Mesh::GetFineElem | ( | int | i, |
int | j | ||
) |
|
protected |
ElementTransformation * mfem::Mesh::GetFineElemTrans | ( | int | i, |
int | j | ||
) |
void mfem::Mesh::GetGeckoElementReordering | ( | Array< int > & | ordering | ) |
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
inline |
|
inline |
|
inline |
|
inline |
const FiniteElementSpace * mfem::Mesh::GetNodalFESpace | ( | ) |
Return the FiniteElementSpace on which the current mesh nodes are defined or NULL if the mesh does not have nodes.
|
inline |
Return a pointer to the internal node GridFunction (may be NULL).
void mfem::Mesh::GetNodes | ( | GridFunction & | nodes | ) | const |
Return the mesh nodes/vertices projected on the given GridFunction.
int mfem::Mesh::GetNumFaces | ( | ) | const |
int mfem::Mesh::GetNumFineElems | ( | int | i | ) |
|
inline |
void mfem::Mesh::GetPointMatrix | ( | int | i, |
DenseMatrix & | pointmat | ||
) | const |
|
staticprotected |
int mfem::Mesh::GetRefinementType | ( | int | i | ) |
|
static |
|
staticprotected |
|
inline |
Table * mfem::Mesh::GetVertexToElementTable | ( | ) |
|
protected |
|
inlineprotected |
|
protectedvirtual |
|
protected |
|
protected |
|
protected |
void mfem::Mesh::KnotInsert | ( | Array< KnotVector * > & | kv | ) |
void mfem::Mesh::Load | ( | std::istream & | input, |
int | generate_edges = 0 , |
||
int | refine = 1 , |
||
bool | fix_orientation = true |
||
) |
|
protected |
|
protectedvirtual |
|
protected |
|
protected |
|
protected |
|
inline |
void mfem::Mesh::MesquiteSmooth | ( | const int | mesquite_option = 0 | ) |
Definition at line 1144 of file mesquite.cpp.
void mfem::Mesh::MoveNodes | ( | const Vector & | displacements | ) |
void mfem::Mesh::MoveVertices | ( | const Vector & | displacements | ) |
void mfem::Mesh::NewNodes | ( | GridFunction & | nodes, |
bool | make_owner = false |
||
) |
Replace the internal node GridFunction with the given GridFunction.
|
protectedvirtual |
|
protectedvirtual |
|
virtual |
Print the mesh to the given stream using the default MFEM mesh format.
Reimplemented in mfem::ParMesh.
|
staticprotected |
void mfem::Mesh::PrintElementsWithPartitioning | ( | int * | partitioning, |
std::ostream & | out, | ||
int | interior_faces = 0 |
||
) |
|
staticprotected |
|
inlinevirtual |
Reimplemented in mfem::ParMesh.
void mfem::Mesh::PrintSurfaces | ( | const Table & | Aface_face, |
std::ostream & | out | ||
) | const |
|
protected |
void mfem::Mesh::PrintVTK | ( | std::ostream & | out | ) |
void mfem::Mesh::PrintVTK | ( | std::ostream & | out, |
int | ref, | ||
int | field_data = 0 |
||
) |
Print the mesh in VTK format. The parameter ref specifies an element subdivision number (useful for high order fields and curved meshes). If the optional field_data is set, we also add a FIELD section in the beginning of the file with additional dataset information.
void mfem::Mesh::PrintWithPartitioning | ( | int * | partitioning, |
std::ostream & | out, | ||
int | elem_attr = 0 |
||
) | const |
|
virtual |
Print the mesh to the given stream using Netgen/Truegrid format.
Reimplemented in mfem::ParMesh.
|
protectedvirtual |
void mfem::Mesh::RandomRefinement | ( | int | levels, |
int | frac = 2 , |
||
bool | aniso = false , |
||
int | nonconforming = -1 , |
||
int | nc_limit = -1 , |
||
int | seed = 0 |
||
) |
|
protected |
|
protected |
|
inlineprotected |
void mfem::Mesh::RefineAtVertex | ( | const Vertex & | vert, |
int | levels, | ||
double | eps = 0.0 , |
||
int | nonconforming = -1 |
||
) |
void mfem::Mesh::RemoveInternalBoundaries | ( | ) |
void mfem::Mesh::RemoveUnusedVertices | ( | ) |
void mfem::Mesh::ReorderElements | ( | const Array< int > & | ordering, |
bool | reorder_vertices = true |
||
) |
|
virtual |
This method modifies a tetrahedral mesh so that Nedelec spaces of order greater than 1 can be defined on the mesh. Specifically, we 1) rotate all tets in the mesh so that the vertices {v0, v1, v2, v3} satisfy: v0 < v1 < min(v2, v3). 2) rotate all boundary triangles so that the vertices {v0, v1, v2} satisfy: v0 < min(v1, v2).
Note: refinement does not work after a call to this method!
Reimplemented in mfem::ParMesh.
|
inlinestaticprotected |
void mfem::Mesh::SetCurvature | ( | int | order, |
bool | discont = false , |
||
int | space_dim = -1 , |
||
int | ordering = 1 |
||
) |
void mfem::Mesh::SetNodalFESpace | ( | FiniteElementSpace * | nfes | ) |
Replace the internal node GridFunction with a new GridFunction defined on the given FiniteElementSpace. The new node coordinates are projected (derived) from the current nodes/vertices.
void mfem::Mesh::SetNodalGridFunction | ( | GridFunction * | nodes, |
bool | make_owner = false |
||
) |
Replace the internal node GridFunction with the given GridFunction. The given GridFunction is updated with node coordinates projected (derived) from the current nodes/vertices.
void mfem::Mesh::SetState | ( | int | s | ) |
|
inlinestaticprotected |
|
protected |
void mfem::Mesh::SwapNodes | ( | GridFunction *& | nodes, |
int & | own_nodes_ | ||
) |
Swap the internal node GridFunction pointer and ownership flag members with the given ones.
void mfem::Mesh::Transform | ( | VectorCoefficient & | deformation | ) |
|
protected |
Uniform Refinement. Element with index i is refined uniformly.
void mfem::Mesh::UniformRefinement | ( | ) |
|
protected |
|
inline |
|
friend |
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
staticprotected |
|
protected |
|
protected |
NURBSExtension* mfem::Mesh::NURBSext |
|
staticprotected |
|
staticprotected |
|
protected |
|
protected |
|
protected |
|
staticprotected |