NEMoSys  0.63.0
A modular, extensible resource with robust automated mesh generation, mesh quality analysis, adaptive mesh refinement, and data transfer between arbitrary meshes.
NEM::MSH::gmshGeoMesh Class Reference

A concrete implementation of geoMeshBase representing a Gmsh mesh. More...

Detailed Description

Definition at line 41 of file gmshGeoMesh.H.

Public Member Functions

 gmshGeoMesh ()
 Construct a gmshGeoMesh with an empty mesh. More...
 
 gmshGeoMesh (const std::string &gmshMesh)
 Construct a gmshGeoMesh from an existing gmsh model. More...
 
 ~gmshGeoMesh () override
 
void write (const std::string &fileName) override
 Write mesh to file. More...
 
void report (std::ostream &out) const override
 Print a report about the mesh. More...
 
virtual void takeGeoMesh (geoMeshBase *otherGeoMesh)
 Take the GeoMesh of another geoMeshBase. More...
 
virtual void reconstructGeo ()
 Construct the geometry from the mesh alone. More...
 
virtual void mergeGeoMesh (geoMeshBase *otherGeoMesh)
 Merge mesh data from a new geoMesh to an existing geoMesh. More...
 
const std::string & getGeoEntArrayName () const
 Get the name of the geometric entities array. More...
 
void setGeoEntArrayName (const std::string &geoEntArrayName)
 Set the name of the geometric entities array. More...
 
double getAngleThreshold () const
 Get the angle threshold used for surface classification. More...
 
void setAngleThreshold (double angleThreshold)
 Set the angle threshold used for surface classification. More...
 
nemId_t getNumberOfPoints () const
 Get the number of points in mesh. More...
 
nemId_t getNumberOfCells () const
 Get the number of cells in mesh. More...
 
void getPoint (nemId_t id, std::array< double, 3 > *x) const
 Get the coordinate of a point. More...
 
std::array< double, 3 > getPoint (nemId_t id) const
 Get the coordinate of a point. More...
 
void getCell (nemId_t cellId, vtkGenericCell *cell) const
 Get cell. More...
 
vtkCell * getCell (nemId_t cellId) const
 Get cell. More...
 
void getCellBounds (nemId_t cellId, std::array< double, 6 > *bounds) const
 Get cell bounds. More...
 
std::array< double, 6 > getCellBounds (nemId_t cellId) const
 Get cell bounds. More...
 
VTKCellType getCellType (nemId_t cellId) const
 Get VTK cell type. More...
 
void getCellPoints (nemId_t cellId, vtkIdList *ptIds) const
 Get list of point ids defining specified cell. More...
 
void getPointCells (nemId_t ptId, vtkIdList *cellIds) const
 Get list of cell ids using specified point. More...
 
void getCellNeighbors (nemId_t cellId, vtkIdList *ptIds, vtkIdList *cellIds) const
 Get list of cells sharing points ptIds excluding cellId. More...
 
int getNumberOfPointDataArrays () const
 Get number of arrays in the point data. More...
 
void getPointDataArrayCopy (const std::string &arrayName, vtkAbstractArray *array, int *arrayIdx=nullptr) const
 Get copy of point data array by name. More...
 
vtkSmartPointer< vtkAbstractArray > getPointDataArrayCopy (const std::string &arrayName, int *arrayIdx=nullptr) const
 Create and return a copy of point data array by name. More...
 
void getPointDataArrayCopy (int arrayIdx, vtkAbstractArray *array) const
 Get copy of point data array by index. More...
 
vtkSmartPointer< vtkAbstractArray > getPointDataArrayCopy (int arrayIdx) const
 Create and return a copy of point data array by index. More...
 
int getNumberOfCellDataArrays () const
 Get number of arrays in the cell data. More...
 
void getCellDataArrayCopy (const std::string &arrayName, vtkAbstractArray *array, int *arrayIdx=nullptr) const
 Get copy of cell data array by name. More...
 
vtkSmartPointer< vtkAbstractArray > getCellDataArrayCopy (const std::string &arrayName, int *arrayIdx=nullptr) const
 Create and return a copy of cell data array by name. More...
 
void getCellDataArrayCopy (int arrayIdx, vtkAbstractArray *array) const
 Get copy of cell data array by index. More...
 
vtkSmartPointer< vtkAbstractArray > getCellDataArrayCopy (int arrayIdx) const
 Create and return a copy of cell data array by index. More...
 
int getNumberOfFieldDataArrays () const
 Get number of arrays in the field data. More...
 
void getFieldDataArrayCopy (const std::string &arrayName, vtkAbstractArray *array, int *arrayIdx=nullptr) const
 Get copy of field data array by name. More...
 
vtkSmartPointer< vtkAbstractArray > getFieldDataArrayCopy (const std::string &arrayName, int *arrayIdx=nullptr) const
 Create and return a copy of field data array by name. More...
 
void getFieldDataArrayCopy (int arrayIdx, vtkAbstractArray *array) const
 Get copy of field data array by index. More...
 
vtkSmartPointer< vtkAbstractArray > getFieldDataArrayCopy (int arrayIdx) const
 Create and return a copy of field data array by index. More...
 

Static Public Member Functions

static gmshGeoMeshNew ()
 
static vtkTypeMacro(gmshGeoMesh, geoMeshBase) public VTKCellType getVTKTypeFromGmshType (const std::string &gmshType)
 Create a gmshGeoMesh from a file. More...
 

Protected Member Functions

int setPointDataArray (vtkAbstractArray *array)
 Set point data. More...
 
int setCellDataArray (vtkAbstractArray *array)
 Set cell data. More...
 
int setFieldDataArray (vtkAbstractArray *array)
 Set field data. More...
 
void unsetPointDataArray (int arrayIdx)
 Remove point data array by index. More...
 
void unsetPointDataArray (const std::string &arrayName)
 Remove point data array by name. More...
 
void unsetCellDataArray (int arrayIdx)
 Remove cell data array by index. More...
 
void unsetCellDataArray (const std::string &arrayName)
 Remove cell data array by name. More...
 
void unsetFieldDataArray (int arrayIdx)
 Remove field data array by index. More...
 
void unsetFieldDataArray (const std::string &arrayName)
 Remove field data array by name. More...
 
const GeoMeshgetGeoMesh () const
 Get the underlying geometry object. More...
 
void setGeoMesh (const geoMeshBase::GeoMesh &geoMesh)
 Set the underlying geometry object. More...
 

Static Protected Attributes

static constexpr auto GEO_ENT_DEFAULT_NAME = "GeoEnt"
 

Private Member Functions

void resetNative () override
 

Static Private Member Functions

static GeoMesh gmsh2GM (const std::string &gmshMesh)
 Convert gmshMesh (name of a gmsh model) to GeoMesh. More...
 
static std::string GM2gmsh (const GeoMesh &geoMesh)
 Add the mesh from geoMesh to the gmsh model in geoMesh. More...
 

Private Attributes

std::string _gmshMesh
 

Inherits NEM::MSH::geoMeshBase.

Constructor & Destructor Documentation

◆ gmshGeoMesh() [1/2]

NEM::MSH::gmshGeoMesh::gmshGeoMesh ( )

Definition at line 111 of file gmshGeoMesh.C.

Referenced by NEM::MSH::vtkStandardNewMacro().

111 : gmshGeoMesh(std::string()) {}
gmshGeoMesh()
Construct a gmshGeoMesh with an empty mesh.
Definition: gmshGeoMesh.C:111

◆ gmshGeoMesh() [2/2]

NEM::MSH::gmshGeoMesh::gmshGeoMesh ( const std::string &  gmshMesh)
explicit
Parameters
gmshMeshname of gmsh model created from gmsh::open or gmsh::add

Definition at line 113 of file gmshGeoMesh.C.

115  std::cout << "gmshGeoMesh constructed" << std::endl;
116 }
static GeoMesh gmsh2GM(const std::string &gmshMesh)
Convert gmshMesh (name of a gmsh model) to GeoMesh.
Definition: gmshGeoMesh.C:187
std::string _gmshMesh
Definition: gmshGeoMesh.H:92
geoMeshBase()
Query for conversion from vtk to gmsh.
Definition: geoMeshBase.C:77

◆ ~gmshGeoMesh()

NEM::MSH::gmshGeoMesh::~gmshGeoMesh ( )
override

Definition at line 118 of file gmshGeoMesh.C.

References NEM::MSH::GmshInterface::Finalize().

118  {
120  std::cout << "gmshGeoMesh destructed" << std::endl;
121 }
static void Finalize()
Finalize Gmsh.
Definition: geoMeshBase.C:72

Member Function Documentation

◆ getAngleThreshold()

double NEM::MSH::geoMeshBase::getAngleThreshold ( ) const
inlineinherited
Returns
angle threshold (in radians)

Definition at line 171 of file geoMeshBase.H.

171 { return _angleThreshold; }
double _angleThreshold
Dihedral angle threshold (in radians) to classify surfaces (Default: 30 degrees)
Definition: geoMeshBase.H:554

◆ getCell() [1/2]

void NEM::MSH::geoMeshBase::getCell ( nemId_t  cellId,
vtkGenericCell *  cell 
) const
inlineinherited
Parameters
cellIdcell id
cellcell

Definition at line 214 of file geoMeshBase.H.

Referenced by NEM::MSH::diffMesh().

214  {
215  _geoMesh.mesh->GetCell(cellId, cell);
216  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getCell() [2/2]

vtkCell* NEM::MSH::geoMeshBase::getCell ( nemId_t  cellId) const
inlineinherited
Parameters
cellIdcell id
Returns
cell

Definition at line 222 of file geoMeshBase.H.

222  {
223  return _geoMesh.mesh->GetCell(cellId);
224  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getCellBounds() [1/2]

void NEM::MSH::geoMeshBase::getCellBounds ( nemId_t  cellId,
std::array< double, 6 > *  bounds 
) const
inlineinherited
Parameters
cellIdcell id
boundsarray of bounds as (x_min,x_max, y_min,y_max, z_min,z_max)

Definition at line 230 of file geoMeshBase.H.

230  {
231  _geoMesh.mesh->GetCellBounds(cellId, bounds->data());
232  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getCellBounds() [2/2]

std::array<double, 6> NEM::MSH::geoMeshBase::getCellBounds ( nemId_t  cellId) const
inlineinherited
Parameters
cellIdcell id
Returns
array of bounds as (x_min,x_max, y_min,y_max, z_min,z_max)

Definition at line 238 of file geoMeshBase.H.

238  {
239  std::array<double, 6> bounds{};
240  getCellBounds(cellId, &bounds);
241  return bounds;
242  }
void getCellBounds(nemId_t cellId, std::array< double, 6 > *bounds) const
Get cell bounds.
Definition: geoMeshBase.H:230

◆ getCellDataArrayCopy() [1/4]

void NEM::MSH::geoMeshBase::getCellDataArrayCopy ( const std::string &  arrayName,
vtkAbstractArray *  array,
int *  arrayIdx = nullptr 
) const
inherited

Optionally, get array index.

Parameters
arrayNamearray name
arraycell data array
arrayIdxarray index

Definition at line 180 of file geoMeshBase.C.

References NEM::MSH::geoMeshBase::_geoMesh, and NEM::MSH::geoMeshBase::GeoMesh::mesh.

Referenced by NEM::MSH::diffMesh().

182  {
183  getArrCopy(_geoMesh.mesh->GetCellData(), arrayName, arrayIdx, array);
184 }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getCellDataArrayCopy() [2/4]

vtkSmartPointer< vtkAbstractArray > NEM::MSH::geoMeshBase::getCellDataArrayCopy ( const std::string &  arrayName,
int *  arrayIdx = nullptr 
) const
inherited

Optionally, get array index.

Parameters
arrayNamearray name
arrayIdxarray index
Returns
pointer to copy of array

Definition at line 186 of file geoMeshBase.C.

References NEM::MSH::geoMeshBase::_geoMesh, and NEM::MSH::geoMeshBase::GeoMesh::mesh.

187  {
188  return getArrCopy(_geoMesh.mesh->GetCellData(), arrayName, arrayIdx);
189 }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getCellDataArrayCopy() [3/4]

void NEM::MSH::geoMeshBase::getCellDataArrayCopy ( int  arrayIdx,
vtkAbstractArray *  array 
) const
inherited
Parameters
arrayIdxarray index
arraycell data array

Definition at line 191 of file geoMeshBase.C.

References NEM::MSH::geoMeshBase::_geoMesh, and NEM::MSH::geoMeshBase::GeoMesh::mesh.

192  {
193  getArrCopy(_geoMesh.mesh->GetCellData(), arrayIdx, array);
194 }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getCellDataArrayCopy() [4/4]

vtkSmartPointer< vtkAbstractArray > NEM::MSH::geoMeshBase::getCellDataArrayCopy ( int  arrayIdx) const
inherited
Parameters
arrayIdxarray index
Returns
pointer to copy of array

Definition at line 196 of file geoMeshBase.C.

References NEM::MSH::geoMeshBase::_geoMesh, and NEM::MSH::geoMeshBase::GeoMesh::mesh.

197  {
198  return getArrCopy(_geoMesh.mesh->GetCellData(), arrayIdx);
199 }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getCellNeighbors()

void NEM::MSH::geoMeshBase::getCellNeighbors ( nemId_t  cellId,
vtkIdList *  ptIds,
vtkIdList *  cellIds 
) const
inlineinherited
Parameters
cellIdid of cell to exclude
ptIdspoint id
cellIdslist of cell ids

Definition at line 273 of file geoMeshBase.H.

274  {
275  _geoMesh.mesh->GetCellNeighbors(cellId, ptIds, cellIds);
276  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getCellPoints()

void NEM::MSH::geoMeshBase::getCellPoints ( nemId_t  cellId,
vtkIdList *  ptIds 
) const
inlineinherited
Parameters
cellIdcell id
ptIdslist of point ids

Definition at line 256 of file geoMeshBase.H.

256  {
257  _geoMesh.mesh->GetCellPoints(cellId, ptIds);
258  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getCellType()

VTKCellType NEM::MSH::geoMeshBase::getCellType ( nemId_t  cellId) const
inlineinherited
Parameters
cellIdcell id
Returns
VTK cell type (see vtk documentation for specifics)

Definition at line 248 of file geoMeshBase.H.

248  {
249  return static_cast<VTKCellType>(_geoMesh.mesh->GetCellType(cellId));
250  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getFieldDataArrayCopy() [1/4]

void NEM::MSH::geoMeshBase::getFieldDataArrayCopy ( const std::string &  arrayName,
vtkAbstractArray *  array,
int *  arrayIdx = nullptr 
) const
inherited

Optionally, get array index.

Parameters
arrayNamearray name
arrayfield data array
arrayIdxarray index

Definition at line 201 of file geoMeshBase.C.

References NEM::MSH::geoMeshBase::_geoMesh, and NEM::MSH::geoMeshBase::GeoMesh::mesh.

203  {
204  getArrCopy(_geoMesh.mesh->GetFieldData(), arrayName, arrayIdx, array);
205 }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getFieldDataArrayCopy() [2/4]

vtkSmartPointer< vtkAbstractArray > NEM::MSH::geoMeshBase::getFieldDataArrayCopy ( const std::string &  arrayName,
int *  arrayIdx = nullptr 
) const
inherited

Optionally, get array index.

Parameters
arrayNamearray name
arrayIdxarray index
Returns
pointer to copy of array

Definition at line 207 of file geoMeshBase.C.

References NEM::MSH::geoMeshBase::_geoMesh, and NEM::MSH::geoMeshBase::GeoMesh::mesh.

208  {
209  return getArrCopy(_geoMesh.mesh->GetFieldData(), arrayName, arrayIdx);
210 }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getFieldDataArrayCopy() [3/4]

void NEM::MSH::geoMeshBase::getFieldDataArrayCopy ( int  arrayIdx,
vtkAbstractArray *  array 
) const
inherited
Parameters
arrayIdxarray index
arrayfield data array

Definition at line 212 of file geoMeshBase.C.

References NEM::MSH::geoMeshBase::_geoMesh, and NEM::MSH::geoMeshBase::GeoMesh::mesh.

213  {
214  getArrCopy(_geoMesh.mesh->GetFieldData(), arrayIdx, array);
215 }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getFieldDataArrayCopy() [4/4]

vtkSmartPointer< vtkAbstractArray > NEM::MSH::geoMeshBase::getFieldDataArrayCopy ( int  arrayIdx) const
inherited
Parameters
arrayIdxarray index
Returns
pointer to copy of array

Definition at line 217 of file geoMeshBase.C.

References NEM::MSH::geoMeshBase::_geoMesh, and NEM::MSH::geoMeshBase::GeoMesh::mesh.

218  {
219  return getArrCopy(_geoMesh.mesh->GetFieldData(), arrayIdx);
220 }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getGeoEntArrayName()

const std::string& NEM::MSH::geoMeshBase::getGeoEntArrayName ( ) const
inlineinherited
Returns
name of geometric entities array

Definition at line 157 of file geoMeshBase.H.

Referenced by NEM::MSH::diffMesh().

157 { return _geoMesh.link; }

◆ getGeoMesh()

◆ getNumberOfCellDataArrays()

int NEM::MSH::geoMeshBase::getNumberOfCellDataArrays ( ) const
inlineinherited
Returns
number of arrays in the cell data

Definition at line 318 of file geoMeshBase.H.

Referenced by NEM::MSH::diffMesh().

318  {
319  return _geoMesh.mesh->GetCellData()->GetNumberOfArrays();
320  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getNumberOfCells()

nemId_t NEM::MSH::geoMeshBase::getNumberOfCells ( ) const
inlineinherited
Returns
number of cells in mesh

Definition at line 190 of file geoMeshBase.H.

Referenced by NEM::MSH::diffMesh().

190 { return _geoMesh.mesh->GetNumberOfCells(); }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getNumberOfFieldDataArrays()

int NEM::MSH::geoMeshBase::getNumberOfFieldDataArrays ( ) const
inlineinherited
Returns
number of arrays in the field data

Definition at line 355 of file geoMeshBase.H.

355  {
356  return _geoMesh.mesh->GetFieldData()->GetNumberOfArrays();
357  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getNumberOfPointDataArrays()

int NEM::MSH::geoMeshBase::getNumberOfPointDataArrays ( ) const
inlineinherited
Returns
number of arrays in the point data

Definition at line 281 of file geoMeshBase.H.

Referenced by NEM::MSH::diffMesh().

281  {
282  return _geoMesh.mesh->GetPointData()->GetNumberOfArrays();
283  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getNumberOfPoints()

nemId_t NEM::MSH::geoMeshBase::getNumberOfPoints ( ) const
inlineinherited
Returns
number of points in mesh

Definition at line 183 of file geoMeshBase.H.

Referenced by NEM::MSH::diffMesh().

183  {
184  return _geoMesh.mesh->GetNumberOfPoints();
185  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getPoint() [1/2]

void NEM::MSH::geoMeshBase::getPoint ( nemId_t  id,
std::array< double, 3 > *  x 
) const
inlineinherited
Parameters
idpoint id
xarray of coordinates as (x,y,z)

Definition at line 196 of file geoMeshBase.H.

Referenced by NEM::MSH::diffMesh().

196  {
197  _geoMesh.mesh->GetPoint(id, x->data());
198  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getPoint() [2/2]

std::array<double, 3> NEM::MSH::geoMeshBase::getPoint ( nemId_t  id) const
inlineinherited
Parameters
idpoint id
Returns
array of coordinates as (x,y,z)

Definition at line 204 of file geoMeshBase.H.

204  {
205  std::array<double, 3> x{};
206  getPoint(id, &x);
207  return x;
208  }
void getPoint(nemId_t id, std::array< double, 3 > *x) const
Get the coordinate of a point.
Definition: geoMeshBase.H:196

◆ getPointCells()

void NEM::MSH::geoMeshBase::getPointCells ( nemId_t  ptId,
vtkIdList *  cellIds 
) const
inlineinherited
Parameters
ptIdpoint id
cellIdslist of cell ids

Definition at line 264 of file geoMeshBase.H.

264  {
265  _geoMesh.mesh->GetPointCells(ptId, cellIds);
266  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getPointDataArrayCopy() [1/4]

void NEM::MSH::geoMeshBase::getPointDataArrayCopy ( const std::string &  arrayName,
vtkAbstractArray *  array,
int *  arrayIdx = nullptr 
) const
inherited

Optionally, get array index.

Parameters
arrayNamearray name
arraypoint data array
arrayIdxarray index

Definition at line 159 of file geoMeshBase.C.

References NEM::MSH::geoMeshBase::_geoMesh, and NEM::MSH::geoMeshBase::GeoMesh::mesh.

Referenced by NEM::MSH::diffMesh().

161  {
162  getArrCopy(_geoMesh.mesh->GetPointData(), arrayName, arrayIdx, array);
163 }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getPointDataArrayCopy() [2/4]

vtkSmartPointer< vtkAbstractArray > NEM::MSH::geoMeshBase::getPointDataArrayCopy ( const std::string &  arrayName,
int *  arrayIdx = nullptr 
) const
inherited

Optionally, get array index.

Parameters
arrayNamearray name
arrayIdxarray index
Returns
pointer to copy of array

Definition at line 165 of file geoMeshBase.C.

References NEM::MSH::geoMeshBase::_geoMesh, and NEM::MSH::geoMeshBase::GeoMesh::mesh.

166  {
167  return getArrCopy(_geoMesh.mesh->GetPointData(), arrayName, arrayIdx);
168 }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getPointDataArrayCopy() [3/4]

void NEM::MSH::geoMeshBase::getPointDataArrayCopy ( int  arrayIdx,
vtkAbstractArray *  array 
) const
inherited
Parameters
arrayIdxarray index
arraypoint data array

Definition at line 170 of file geoMeshBase.C.

References NEM::MSH::geoMeshBase::_geoMesh, and NEM::MSH::geoMeshBase::GeoMesh::mesh.

171  {
172  getArrCopy(_geoMesh.mesh->GetPointData(), arrayIdx, array);
173 }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getPointDataArrayCopy() [4/4]

vtkSmartPointer< vtkAbstractArray > NEM::MSH::geoMeshBase::getPointDataArrayCopy ( int  arrayIdx) const
inherited
Parameters
arrayIdxarray index
Returns
pointer to copy of array

Definition at line 175 of file geoMeshBase.C.

References NEM::MSH::geoMeshBase::_geoMesh, and NEM::MSH::geoMeshBase::GeoMesh::mesh.

176  {
177  return getArrCopy(_geoMesh.mesh->GetPointData(), arrayIdx);
178 }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ getVTKTypeFromGmshType()

VTKCellType NEM::MSH::gmshGeoMesh::getVTKTypeFromGmshType ( const std::string &  gmshType)
static
Parameters
fileNamefile name that gmsh can read
Returns
new gmshGeoMesh object Convert gmsh cell type to VTK cell type
Parameters
gmshTypegmsh cell type
Returns
VTK cell type

Definition at line 131 of file gmshGeoMesh.C.

References nemAux::findFromStr(), and nemAux::findToStr().

131  {
132  std::string name = nemAux::findToStr(gmshType, " ");
133  int numV;
134  if (name == "Point") {
135  numV = 1;
136  } else {
137  numV = std::stoi(nemAux::findFromStr(gmshType, " "));
138  }
139 
140  if (name == "Point") {
141  return VTK_VERTEX;
142  } else if (name == "Line") {
143  switch (numV) {
144  case 3: return VTK_QUADRATIC_EDGE;
145  default: return VTK_LINE;
146  }
147  } else if (name == "Triangle") {
148  switch (numV) {
149  case 6: return VTK_QUADRATIC_TRIANGLE;
150  default: return VTK_TRIANGLE;
151  }
152  } else if (name == "Quadrilateral") {
153  switch (numV) {
154  case 8: return VTK_QUADRATIC_QUAD;
155  case 9: return VTK_BIQUADRATIC_QUAD;
156  default: return VTK_QUAD;
157  }
158  } else if (name == "Polygon") {
159  return VTK_POLYGON;
160  } else if (name == "Tetrahedron") {
161  switch (numV) {
162  case 10: return VTK_QUADRATIC_TETRA;
163  default: return VTK_TETRA;
164  }
165  } else if (name == "Hexahedron") {
166  switch (numV) {
167  case 20: return VTK_QUADRATIC_HEXAHEDRON;
168  case 27: return VTK_TRIQUADRATIC_HEXAHEDRON;
169  default: return VTK_HEXAHEDRON;
170  }
171  } else if (name == "Prism") {
172  return VTK_WEDGE;
173  } else if (name == "Pyramid") {
174  return VTK_PYRAMID;
175  } else if (name == "Trihedron" || // Flat Quad + 2 Tris.
176  name == "Polyhedron") // Occurs in MElementCuts
177  {
178  std::cerr << "ERROR in Gmsh to VTK element conversion: Gmsh element \""
179  << name << "\" is not supported by VTK." << std::endl;
180  } else {
181  std::cerr << "ERROR in Gmsh to VTK element conversion: Gmsh element \""
182  << name << "\" is not recognized." << std::endl;
183  }
184  throw;
185 }
std::string findToStr(const std::string &str, const std::string &ptrn)
std::string findFromStr(const std::string &str, const std::string &ptrn)

◆ GM2gmsh()

std::string NEM::MSH::gmshGeoMesh::GM2gmsh ( const GeoMesh geoMesh)
staticprivate

Definition at line 271 of file gmshGeoMesh.C.

References NEM::MSH::geoMeshBase::GeoMesh::geo, NEM::MSH::geoMeshBase::SideSet::getGeoEntArr(), NEM::MSH::geoMeshBase::GeoMesh::link, NEM::MSH::geoMeshBase::GeoMesh::mesh, NEM::MSH::geoMeshBase::SideSet::sides, and NEM::MSH::geoMeshBase::GeoMesh::sideSet.

Referenced by write().

271  {
272  gmsh::model::setCurrent(geoMesh.geo);
273 
274  if (geoMesh.mesh->GetNumberOfPoints() > 0) { // Add points
275  std::vector<std::size_t> nodeTags;
276  std::vector<double> coord;
277 
278  vtkSmartPointer<vtkPoints> dataSetPoints = geoMesh.mesh->GetPoints();
279  coord.resize(3 * dataSetPoints->GetNumberOfPoints());
280  nodeTags.resize(dataSetPoints->GetNumberOfPoints());
281  for (vtkIdType ptId = 0; ptId < dataSetPoints->GetNumberOfPoints();
282  ++ptId) {
283  nodeTags[ptId] = ptId + 1;
284  dataSetPoints->GetPoint(ptId, &coord[3 * ptId]);
285  }
286 
287  gmsh::vectorpair dimTags;
288  gmsh::model::getEntities(dimTags);
289  gmsh::model::mesh::addNodes(dimTags[0].first, dimTags[0].second, nodeTags,
290  coord);
291  }
292 
293  if (geoMesh.mesh->GetNumberOfCells() > 0) { // Add elements
294  // Sort all cells by entity and element type
295  auto it =
296  vtkSmartPointer<vtkCellIterator>::Take(geoMesh.mesh->NewCellIterator());
297  vtkSmartPointer<vtkIntArray> geoEntArray = vtkIntArray::FastDownCast(
298  geoMesh.mesh->GetCellData()->GetArray(geoMesh.link.c_str()));
299  for (it->InitTraversal(); !it->IsDoneWithTraversal(); it->GoToNextCell()) {
300  int geoEnt = geoEntArray->GetTypedComponent(it->GetCellId(), 0);
301 
302  vtkSmartPointer<vtkIdList> ptIds = it->GetPointIds();
303  std::vector<std::size_t> nodeTag;
304  for (vtkIdType pt = 0; pt < it->GetNumberOfPoints(); ++pt) {
305  nodeTag.emplace_back(ptIds->GetId(pt) + 1);
306  }
307 
308  gmsh::model::mesh::addElementsByType(
309  geoEnt, getGmshTypeFromVTKType(it->GetCellType()),
310  {static_cast<std::size_t>(it->GetCellId() + 1)}, nodeTag);
311  }
312  }
313 
314  if (geoMesh.sideSet.sides && geoMesh.sideSet.sides->GetNumberOfCells() > 0) {
315  auto it = vtkSmartPointer<vtkCellIterator>::Take(
316  geoMesh.sideSet.sides->NewCellIterator());
317  auto geoEntArray = geoMesh.sideSet.getGeoEntArr();
318  for (it->InitTraversal(); !it->IsDoneWithTraversal(); it->GoToNextCell()) {
319  int geoEnt = geoEntArray->GetTypedComponent(it->GetCellId(), 0);
320 
321  vtkSmartPointer<vtkIdList> ptIds = it->GetPointIds();
322  std::vector<std::size_t> nodeTag;
323  for (vtkIdType pt = 0; pt < it->GetNumberOfPoints(); ++pt) {
324  nodeTag.emplace_back(ptIds->GetId(pt) + 1);
325  }
326 
327  gmsh::model::mesh::addElementsByType(
328  geoEnt, getGmshTypeFromVTKType(it->GetCellType()),
329  {static_cast<std::size_t>(it->GetCellId() + 1)}, nodeTag);
330  }
331  }
332 
333  gmsh::model::mesh::reclassifyNodes();
334 
335  return geoMesh.geo;
336 }

◆ gmsh2GM()

geoMeshBase::GeoMesh NEM::MSH::gmshGeoMesh::gmsh2GM ( const std::string &  gmshMesh)
staticprivate

Definition at line 187 of file gmshGeoMesh.C.

References NEM::MSH::geoMeshBase::GEO_ENT_DEFAULT_NAME, NEM::MSH::New(), and points.

187  {
189 
190  if (gmshMesh.empty()) return {vtkMesh, gmshMesh, "", {}};
191 
192  std::string geoEntArrayName = GEO_ENT_DEFAULT_NAME;
193 
194  gmsh::model::setCurrent(gmshMesh);
195 
196  // Track GMSH node ids and VTK point ids.
197  std::map<std::size_t, vtkIdType> gmshNodeNum2vtkId;
198 
199  { // Add points
200  vtkSmartPointer<vtkPoints> points =
201  vtkSmartPointer<vtkPoints>::Take(vtkPoints::New(VTK_DOUBLE));
202 
203  // Get GMSH nodes
204  std::vector<std::size_t> nodeTags;
205  std::vector<double> coord;
206  std::vector<double> parametricCoord;
207  gmsh::model::mesh::getNodes(nodeTags, coord, parametricCoord);
208 
209  // Allocate
210  points->Allocate(nodeTags.size());
211 
212  // Convert GMSH nodes to VTK points
213  for (std::size_t i = 0; i < nodeTags.size(); ++i) {
214  gmshNodeNum2vtkId[nodeTags[i]] = points->GetNumberOfPoints();
215  points->InsertNextPoint(coord[i * 3 + 0], coord[i * 3 + 1],
216  coord[i * 3 + 2]);
217  }
218 
219  vtkMesh->SetPoints(points);
220  }
221 
222  { // Add elements and geometric entities
223  // Note: Cannot pre-allocate cells since GMSH does not provide an API to get
224  // total number of elements
225 
226  gmsh::vectorpair dimTags;
227  gmsh::model::getEntities(dimTags, gmsh::model::getDimension());
228 
229  // geoEnt: Track entities to place as cell data
230  vtkSmartPointer<vtkIntArray> vtkEntities =
232  vtkEntities->Initialize(); // Cannot allocate
233  vtkEntities->SetName(geoEntArrayName.c_str());
234 
235  addGmshEntitiesToDataSet(dimTags, gmshNodeNum2vtkId, vtkMesh, vtkEntities);
236 
237  // geoEnt: Add geometric entity data to VTK
238  vtkMesh->GetCellData()->AddArray(vtkEntities);
239 
240  // Since could not allocate elements/cells, we have to squeeze
241  vtkMesh->Squeeze();
242  }
243 
244  SideSet sideSet{};
245  { // sideSet
246  gmsh::vectorpair dimTags;
247  gmsh::model::getEntities(dimTags, gmsh::model::getDimension() - 1);
248  if (!dimTags.empty()) {
249  auto sideSetPD = vtkSmartPointer<vtkPolyData>::New();
250  sideSetPD->SetPoints(vtkMesh->GetPoints());
251  sideSetPD->Allocate();
252  vtkNew<vtkIntArray> vtkEntities{};
253 
254  addGmshEntitiesToDataSet(dimTags, gmshNodeNum2vtkId, sideSetPD,
255  vtkEntities);
256  if (sideSetPD->GetNumberOfCells() > 0) {
257  sideSetPD->Squeeze();
258  sideSet = SideSet(sideSetPD, vtkEntities);
259  }
260  }
261  }
262 
263  // TODO: Add point, cell data
264 
265  // Only keep the geometry in the gmshMesh
266  gmsh::model::mesh::clear();
267 
268  return {vtkMesh, gmshMesh, geoEntArrayName, sideSet};
269 }
static constexpr auto GEO_ENT_DEFAULT_NAME
Definition: geoMeshBase.H:446
geoMeshBase * New(MeshType meshType)
Create a new mesh object.
std::vector< vtkIdType > points
points given by id in .inp file
Definition: inpGeoMesh.C:133

◆ mergeGeoMesh()

void NEM::MSH::geoMeshBase::mergeGeoMesh ( geoMeshBase otherGeoMesh)
virtualinherited

Deletes the data from the new geoMesh pointer

Parameters
otherGeoMeshA new geoMesh data to merge

Definition at line 113 of file geoMeshBase.C.

References NEM::MSH::geoMeshBase::_geoMesh, NEM::MSH::geoMeshBase::GeoMesh::mesh, NEM::MSH::New(), and NEM::MSH::geoMeshBase::resetNative().

113  {
114  vtkSmartPointer<vtkAppendFilter> appendFilter =
116  appendFilter->AddInputData(_geoMesh.mesh);
117  appendFilter->AddInputData(otherGeoMesh->_geoMesh.mesh);
118  appendFilter->MergePointsOn();
119  appendFilter->Update();
120  _geoMesh.mesh = appendFilter->GetOutput();
121  otherGeoMesh->_geoMesh = {
123  otherGeoMesh->resetNative();
124 }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419
geoMeshBase * New(MeshType meshType)
Create a new mesh object.
virtual void resetNative()=0

◆ New()

static gmshGeoMesh* NEM::MSH::gmshGeoMesh::New ( )
static

◆ reconstructGeo()

void NEM::MSH::geoMeshBase::reconstructGeo ( )
virtualinherited

Sets geometry, link, and side set. Does not alter the mesh.

Reimplemented in NEM::MSH::exoGeoMesh, NEM::MSH::oshGeoMesh, and NEM::MSH::inpGeoMesh.

Definition at line 466 of file geoMeshBaseReconstructGeo.C.

References NEM::MSH::geoMeshBase::_angleThreshold, NEM::MSH::geoMeshBase::_geoMesh, NEM::MSH::geoMeshBase::GeoMesh::geo, NEM::MSH::geoMeshBase::GEO_ENT_DEFAULT_NAME, nemAux::getRandomString(), NEM::MSH::geoMeshBase::GeoMesh::link, NEM::MSH::geoMeshBase::GeoMesh::mesh, NEM::MSH::geoMeshBase::SideSet::sides, and NEM::MSH::geoMeshBase::GeoMesh::sideSet.

Referenced by NEM::MSH::inpGeoMesh::reconstructGeo(), NEM::MSH::oshGeoMesh::reconstructGeo(), and NEM::MSH::exoGeoMesh::reconstructGeo().

466  {
467 #ifdef HAVE_GMSH
468  if (_geoMesh.geo.empty()) {
469  _geoMesh.geo = "geoMesh_" + nemAux::getRandomString(6);
470  } else {
471  gmsh::model::setCurrent(_geoMesh.geo);
472  gmsh::model::remove();
473  }
474  gmsh::model::add(_geoMesh.geo);
475  gmsh::model::setCurrent(_geoMesh.geo);
476 #endif
477  if (_geoMesh.link.empty()) {
479  }
480  _geoMesh.sideSet = SideSet{
481  computeDiscreteGeoFromMsh(_geoMesh.mesh, _geoMesh.link, _angleThreshold)};
482  assert(_geoMesh.mesh->GetPoints() == _geoMesh.sideSet.sides->GetPoints());
483 }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419
static constexpr auto GEO_ENT_DEFAULT_NAME
Definition: geoMeshBase.H:446
std::string getRandomString(int length)
vtkSmartPointer< vtkPolyData > sides
Cells represent edges/faces of some GeoMesh.
Definition: geoMeshBase.H:399
double _angleThreshold
Dihedral angle threshold (in radians) to classify surfaces (Default: 30 degrees)
Definition: geoMeshBase.H:554

◆ report()

void NEM::MSH::gmshGeoMesh::report ( std::ostream &  out) const
overridevirtual
Parameters
outstream

Implements NEM::MSH::geoMeshBase.

Definition at line 129 of file gmshGeoMesh.C.

References NEM::MSH::geoMeshBase::report().

129 { geoMeshBase::report(out); }
virtual void report(std::ostream &out) const =0
Print a report about the mesh.
Definition: geoMeshBase.C:97

◆ resetNative()

void NEM::MSH::gmshGeoMesh::resetNative ( )
overrideprivatevirtual

Implements NEM::MSH::geoMeshBase.

Definition at line 338 of file gmshGeoMesh.C.

References _gmshMesh, NEM::MSH::geoMeshBase::GEO_ENT_DEFAULT_NAME, NEM::MSH::geoMeshBase::getGeoMesh(), nemAux::getRandomString(), mesh, NEM::MSH::geoMeshBase::GeoMesh::mesh, NEM::MSH::New(), and NEM::MSH::geoMeshBase::setGeoMesh().

338  {
339  auto gm = getGeoMesh();
340  if (gm.geo.empty()) {
341  gm.geo = "geoMesh_" + nemAux::getRandomString(6);
342  gmsh::model::add(gm.geo);
343  }
344  if (gm.link.empty()) {
345  gm.link = GEO_ENT_DEFAULT_NAME;
346  auto linkArr = vtkSmartPointer<vtkIntArray>::New();
347  linkArr->SetName(gm.link.c_str());
348  linkArr->SetNumberOfTuples(getGeoMesh().mesh->GetNumberOfCells());
349  linkArr->FillComponent(0, 1);
350  getGeoMesh().mesh->GetCellData()->AddArray(linkArr);
351  }
352  setGeoMesh(gm);
353  _gmshMesh = gm.geo;
354 }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419
static constexpr auto GEO_ENT_DEFAULT_NAME
Definition: geoMeshBase.H:446
geoMeshBase * New(MeshType meshType)
Create a new mesh object.
void setGeoMesh(const geoMeshBase::GeoMesh &geoMesh)
Set the underlying geometry object.
Definition: geoMeshBase.H:538
std::string _gmshMesh
Definition: gmshGeoMesh.H:92
std::string getRandomString(int length)
std::shared_ptr< meshBase > mesh
const GeoMesh & getGeoMesh() const
Get the underlying geometry object.
Definition: geoMeshBase.H:533

◆ setAngleThreshold()

void NEM::MSH::geoMeshBase::setAngleThreshold ( double  angleThreshold)
inlineinherited
Parameters
angleThreshold(in radians)

Definition at line 176 of file geoMeshBase.H.

176  {
177  _angleThreshold = angleThreshold;
178  }
double _angleThreshold
Dihedral angle threshold (in radians) to classify surfaces (Default: 30 degrees)
Definition: geoMeshBase.H:554

◆ setCellDataArray()

int NEM::MSH::geoMeshBase::setCellDataArray ( vtkAbstractArray *  array)
inlineprotectedinherited
Parameters
arrayarray pointer
Returns
array index

Definition at line 473 of file geoMeshBase.H.

473  {
474  return _geoMesh.mesh->GetCellData()->AddArray(array);
475  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ setFieldDataArray()

int NEM::MSH::geoMeshBase::setFieldDataArray ( vtkAbstractArray *  array)
inlineprotectedinherited
Parameters
arrayarray pointer
Returns
array index

Definition at line 481 of file geoMeshBase.H.

481  {
482  return _geoMesh.mesh->GetFieldData()->AddArray(array);
483  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ setGeoEntArrayName()

void NEM::MSH::geoMeshBase::setGeoEntArrayName ( const std::string &  geoEntArrayName)
inlineinherited
Parameters
geoEntArrayNamename of geometric entities array

Definition at line 162 of file geoMeshBase.H.

162  {
163  auto a = _geoMesh.mesh->GetCellData()->GetArray(_geoMesh.link.c_str());
164  if (a) a->SetName(geoEntArrayName.c_str());
165  _geoMesh.link = geoEntArrayName;
166  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ setGeoMesh()

void NEM::MSH::geoMeshBase::setGeoMesh ( const geoMeshBase::GeoMesh geoMesh)
inlineprotectedinherited

◆ setPointDataArray()

int NEM::MSH::geoMeshBase::setPointDataArray ( vtkAbstractArray *  array)
inlineprotectedinherited
Parameters
arrayarray pointer
Returns
array index

Definition at line 465 of file geoMeshBase.H.

465  {
466  return _geoMesh.mesh->GetPointData()->AddArray(array);
467  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ takeGeoMesh()

void NEM::MSH::geoMeshBase::takeGeoMesh ( geoMeshBase otherGeoMesh)
virtualinherited

Note that otherGeoMesh will be left with an empty mesh.

Parameters
otherGeoMeshother geoMeshBase object; mesh will be left empty

Reimplemented in NEM::MSH::exoGeoMesh, and NEM::MSH::oshGeoMesh.

Definition at line 104 of file geoMeshBase.C.

References NEM::MSH::geoMeshBase::_geoMesh, NEM::MSH::New(), and NEM::MSH::geoMeshBase::resetNative().

Referenced by NEM::MSH::oshGeoMesh::takeGeoMesh(), and NEM::MSH::exoGeoMesh::takeGeoMesh().

104  {
105  _geoMesh = std::move(otherGeoMesh->_geoMesh);
106  otherGeoMesh->_geoMesh = {
108  otherGeoMesh->resetNative();
109  resetNative();
110 }
geoMeshBase * New(MeshType meshType)
Create a new mesh object.
virtual void resetNative()=0

◆ unsetCellDataArray() [1/2]

void NEM::MSH::geoMeshBase::unsetCellDataArray ( int  arrayIdx)
inlineprotectedinherited
Parameters
arrayIdxarray index

Definition at line 503 of file geoMeshBase.H.

503  {
504  _geoMesh.mesh->GetCellData()->RemoveArray(arrayIdx);
505  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ unsetCellDataArray() [2/2]

void NEM::MSH::geoMeshBase::unsetCellDataArray ( const std::string &  arrayName)
inlineprotectedinherited
Parameters
arrayNamearray name

Definition at line 510 of file geoMeshBase.H.

510  {
511  _geoMesh.mesh->GetCellData()->RemoveArray(arrayName.c_str());
512  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ unsetFieldDataArray() [1/2]

void NEM::MSH::geoMeshBase::unsetFieldDataArray ( int  arrayIdx)
inlineprotectedinherited
Parameters
arrayIdxarray index

Definition at line 517 of file geoMeshBase.H.

517  {
518  _geoMesh.mesh->GetFieldData()->RemoveArray(arrayIdx);
519  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ unsetFieldDataArray() [2/2]

void NEM::MSH::geoMeshBase::unsetFieldDataArray ( const std::string &  arrayName)
inlineprotectedinherited
Parameters
arrayNamearray name

Definition at line 524 of file geoMeshBase.H.

524  {
525  _geoMesh.mesh->GetFieldData()->RemoveArray(arrayName.c_str());
526  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ unsetPointDataArray() [1/2]

void NEM::MSH::geoMeshBase::unsetPointDataArray ( int  arrayIdx)
inlineprotectedinherited
Parameters
arrayIdxarray index

Definition at line 489 of file geoMeshBase.H.

489  {
490  _geoMesh.mesh->GetPointData()->RemoveArray(arrayIdx);
491  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ unsetPointDataArray() [2/2]

void NEM::MSH::geoMeshBase::unsetPointDataArray ( const std::string &  arrayName)
inlineprotectedinherited
Parameters
arrayNamearray name

Definition at line 496 of file geoMeshBase.H.

496  {
497  _geoMesh.mesh->GetPointData()->RemoveArray(arrayName.c_str());
498  }
vtkSmartPointer< vtkUnstructuredGrid > mesh
Definition: geoMeshBase.H:419

◆ write()

void NEM::MSH::gmshGeoMesh::write ( const std::string &  fileName)
overridevirtual
Parameters
fileNamefile name

Implements NEM::MSH::geoMeshBase.

Definition at line 123 of file gmshGeoMesh.C.

References _gmshMesh, NEM::MSH::geoMeshBase::getGeoMesh(), and GM2gmsh().

123  {
124  _gmshMesh = GM2gmsh(this->getGeoMesh());
125  gmsh::write(fileName);
126  gmsh::model::mesh::clear();
127 }
std::string _gmshMesh
Definition: gmshGeoMesh.H:92
static std::string GM2gmsh(const GeoMesh &geoMesh)
Add the mesh from geoMesh to the gmsh model in geoMesh.
Definition: gmshGeoMesh.C:271
const GeoMesh & getGeoMesh() const
Get the underlying geometry object.
Definition: geoMeshBase.H:533

Member Data Documentation

◆ _gmshMesh

std::string NEM::MSH::gmshGeoMesh::_gmshMesh
private

Definition at line 92 of file gmshGeoMesh.H.

Referenced by resetNative(), and write().

◆ GEO_ENT_DEFAULT_NAME

constexpr auto NEM::MSH::geoMeshBase::GEO_ENT_DEFAULT_NAME = "GeoEnt"
staticprotectedinherited

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