GemaCoreLib
The GeMA Core library
Loading...
Searching...
No Matches
GmFileExtraNodes Class Reference

An auxiliary class for emiting extra mesh nodes needed by standard GeMA element transformations that can be used while exporting data. More...

#include <gmFileExtraNodes.h>

Collaboration diagram for GmFileExtraNodes:

Public Member Functions

 GmFileExtraNodes (const GmFileFormat *fileFormat, const GmCellMesh *mesh, bool activeOnly, const GmCellGroupSet *group, int numMeshNodes, bool useModelOrder)
 Constructor. Gets as parameter the file format object used to define which element types need transformation along with the target mesh, the definition of whether inactive cells should be considered or not, the definition of an optional cell group that contains the cells to be considered and the number of "standard" exported mesh nodes.
 
int numNodes () const
 Returns the number of extra nodes.
 
const QPair< int, int > & edgeNodes (int i) const
 Returns the mesh node indices for the endpoints of the edge where the i'th extra node was created.
 
void resetNext ()
 Resets the value that will be returned by nextNodeIndex() to the first extra node index.
 
int nextNodeIndex ()
 Each call returns the next extra node index. The series starts with the exported index for the first extra node and can be reset by a call to resetNext()
 
int lastNodeIndex () const
 Returns the index of the last valid extra node index.
 

Static Public Member Functions

static bool transformationExists (GmCellType cellType)
 Returns true if this class implements a standard transformation for the given type.
 

Private Attributes

QVector< QPair< int, int > > _extraNodes
 Set of extra nodes created for element transformations.
 
int _firstIndex
 The exported index for the first extra node.
 
int _currentIndex
 The "current" extra node index returned by nextNodeIndex()
 

Static Private Attributes

static QVector< GmCellType > _acceptedTypes
 The set of types that we can handle.
 

Detailed Description

An auxiliary class for emiting extra mesh nodes needed by standard GeMA element transformations that can be used while exporting data.

Available transformations are:

  • INT2DL6 / INT2DQ6 into a QUAD8
  • INT3DL12 / INT3DQ16 into an HEX20
  • INT3DL9 / INT3DQ12 into an WEDGE15

Constructor & Destructor Documentation

◆ GmFileExtraNodes()

GmFileExtraNodes::GmFileExtraNodes ( const GmFileFormat * fileFormat,
const GmCellMesh * mesh,
bool activeOnly,
const GmCellGroupSet * group,
int numMeshNodes,
bool useModelOrder )

Constructor. Gets as parameter the file format object used to define which element types need transformation along with the target mesh, the definition of whether inactive cells should be considered or not, the definition of an optional cell group that contains the cells to be considered and the number of "standard" exported mesh nodes.

The number of standard exported mesh nodes is not obtained from the mesh since it also depends on a set of other configurations, such as if unused nodes (due to not exporting inactive cells) are exported or not and if ghost nodes are exported or not.

If useModelOrder is true and no group was set, the cells will be traversed in the original model order, instead of the local, translated order. This is not necessary when working with a group since the group is always in the original order (cell indices inside the group are translated, but not reordered).

Member Data Documentation

◆ _acceptedTypes

QVector< GmCellType > GmFileExtraNodes::_acceptedTypes
staticprivate
Initial value:
@ GM_INT3DL12
A 3D linear interface element with 12 nodes (4 nodes of pore pressure dof at the middle)
Definition gmCellType.h:54
@ GM_INT3DQ16
A 3D quadratic interface element with 16 nodes.
Definition gmCellType.h:55
@ GM_INT2DL6
A 2D linear interface element with 6 nodes (2 nodes of pore pressure dof at the middle)
Definition gmCellType.h:46
@ GM_INT2DQ6
A 2D quadratic interface element with 6 nodes.
Definition gmCellType.h:47
@ GM_INT3DQ12
A 3D quadratic interface element with 12 nodes.
Definition gmCellType.h:59
@ GM_INT3DL9
A 3D linear interface element with 9 nodes (3 nodes of pore pressure dof at the middle)
Definition gmCellType.h:58

The set of types that we can handle.

The definition & initialization of the set of types that we can handle.


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