Med Memory Users' Guide 5.1.3

MESH Connectivity information

Functions

virtual int MEDMEM::MESH::getNumberOfTypes (MED_EN::medEntityMesh Entity) const
virtual const
MED_EN::medGeometryElement * 
MEDMEM::MESH::getTypes (MED_EN::medEntityMesh Entity) const
virtual const int * MEDMEM::MESH::getGlobalNumberingIndex (MED_EN::medEntityMesh Entity) const
virtual int MEDMEM::MESH::getNumberOfElements (MED_EN::medEntityMesh Entity, MED_EN::medGeometryElement Type) const
virtual MED_EN::medGeometryElement MEDMEM::MESH::getElementType (MED_EN::medEntityMesh Entity, int Number) const
virtual const int * MEDMEM::MESH::getConnectivity (MED_EN::medModeSwitch Mode, MED_EN::medConnectivity ConnectivityType, MED_EN::medEntityMesh Entity, MED_EN::medGeometryElement Type) const
virtual const int * MEDMEM::MESH::getConnectivityIndex (MED_EN::medConnectivity ConnectivityType, MED_EN::medEntityMesh Entity) const

Detailed Description

These methods are related to the extraction of connectivity information from the mesh.


Function Documentation

int MEDMEM::MESH::getNumberOfTypes ( MED_EN::medEntityMesh  entity) const [virtual, inherited]

Gets the number of different geometric types for a given entity type.

For example getNumberOfTypes(MED_CELL) would return 3 if the MESH have some MED_TETRA4, MED_PYRA5 and MED_HEXA8 in it. If entity is not defined, returns 0. If there is no connectivity, returns an exception.

Parameters:
entityentity type (MED_CELL, MED_FACE, MED_EDGE, MED_NODE, MED_ALL_ENTITIES)

Reimplemented in MEDMEM::GRID.

Referenced by MEDMEM::MESH::convertToPoly(), MEDMEM::SUPPORT::getBoundaryElements(), MEDMEM::MESH::getSkin(), and ParaMEDMEM::medmemMeshToFVMMesh().

const MED_EN::medGeometryElement * MEDMEM::MESH::getTypes ( MED_EN::medEntityMesh  entity) const [virtual, inherited]

Gets the list of geometric types used by a given entity. If entity is not defined, it returns an exception.

Parameters:
entityEntity type must be MED_CELL, MED_FACE, MED_EDGE or MED_ALL_ENTITIES. Passing MED_NODE as an entity type will throw an exception.

Reimplemented in MEDMEM::GRID.

Referenced by MEDMEM::MESH::convertToPoly(), MEDMEM::SUPPORT::getBoundaryElements(), MEDMEM::MESH::getSkin(), MEDMEM::SUPPORT::makeMesh(), and ParaMEDMEM::medmemMeshToFVMMesh().

const int * MEDMEM::MESH::getGlobalNumberingIndex ( MED_EN::medEntityMesh  entity) const [virtual, inherited]

Returns an array of size NumberOfTypes+1 which contains, for each geometric type of the given entity, the first global element number of this type.

For exemple, if we have a mesh with 5 triangles and 4 quadrangle :

  • size of GlobalNumberingIndex is 3
  • GlobalNumberingIndex[0]=1 (the first type)
  • GlobalNumberingIndex[1]=6 (the second type)
  • GlobalNumberingIndex[2]=10

Reimplemented in MEDMEM::GRID.

Referenced by MEDMEM::SUPPORT::makeMesh().

int MEDMEM::MESH::getNumberOfElements ( MED_EN::medEntityMesh  entity,
MED_EN::medGeometryElement  Type 
) const [virtual, inherited]

Returns the number of elements of given geometric type of given entity. Returns 0 if query is not defined.

Example :

  • getNumberOfElements(MED_NODE,MED_NONE) : number of nodes
  • getNumberOfElements(MED_NODE,MED_TRIA3) : returns 0 (not defined)
  • getNumberOfElements(MED_FACE,MED_TRIA3) : returns number of triangle elements defined in face entity (0 if not defined)
  • getNumberOfElements(MED_CELL,MED_ALL_ELEMENTS) : returns total number of elements defined in cell entity

Reimplemented in MEDMEM::GRID.

Referenced by MEDMEM::MESH::convertToPoly(), MEDMEM::MESH::getArea(), MEDMEM::MESH::getBarycenter(), MEDMEM::SUPPORT::getBoundaryElements(), MEDMEM::MESH::getLength(), MEDMEM::MESH::getNormal(), MEDMEM::MESH::getNumberOfElementsWithPoly(), MEDMEM::MESH::getSkin(), MEDMEM::MESH::getVolume(), MEDMEM::SUPPORT::makeMesh(), ParaMEDMEM::medmemMeshToFVMMesh(), MEDMEM::FIELD< T, INTERLACING_TAG >::normL2(), and ParaMEDMEM::NonCoincidentDEC::synchronize().

MED_EN::medGeometryElement MEDMEM::MESH::getElementType ( MED_EN::medEntityMesh  Entity,
int  Number 
) const [virtual, inherited]

Returns the geometric type of global element number Number of entity Entity.

Throw an exception if Entity is not defined or if Numberis wrong.

Reimplemented in MEDMEM::GRID.

Referenced by MEDMEM::SUPPORT::getBoundaryElements(), and MEDMEM::MESH::getSkin().

const int * MEDMEM::MESH::getConnectivity ( MED_EN::medModeSwitch  Mode,
MED_EN::medConnectivity  ConnectivityType,
MED_EN::medEntityMesh  entity,
MED_EN::medGeometryElement  Type 
) const [virtual, inherited]

Returns the required connectivity in mode Mode for the geometric type Type of the entity type entity. ConnectivityType specifies descending or nodal connectivity.

To get connectivity for all geometric type, use Mode=MED_FULL_INTERLACE and Type=MED_ALL_ELEMENTS. You must also get the corresponding index array.

Reimplemented in MEDMEM::GRID.

Referenced by MEDMEM::MESH::convertToPoly(), MEDMEM::MESH::getArea(), MEDMEM::MESH::getBarycenter(), MEDMEM::MESH::getLength(), MEDMEM::MESH::getNormal(), MEDMEM::MESH::getSkin(), MEDMEM::MESH::getVolume(), MEDMEM::SUPPORT::makeMesh(), ParaMEDMEM::medmemMeshToFVMMesh(), and MEDMEM::FIELD< T, INTERLACING_TAG >::normL2().

const int * MEDMEM::MESH::getConnectivityIndex ( MED_EN::medConnectivity  ConnectivityType,
MED_EN::medEntityMesh  entity 
) const [virtual, inherited]

Returns the required index array for a connectivity received in MED_FULL_INTERLACE mode and MED_ALL_ELEMENTS type.

This array allows to find connectivity of each element.

Example : Connectivity of i-th element (1<=i<=NumberOfElement) begins at index ConnectivityIndex[i-1] and ends at index ConnectivityIndex[i]-1 in Connectivity array (Connectivity[ConnectivityIndex[i-1]-1] is the first node of the element)

Reimplemented in MEDMEM::GRID.

Referenced by MEDMEM::MESH::convertToPoly(), MEDMEM::MESH::getArea(), MEDMEM::MESH::getBarycenter(), MEDMEM::MESH::getLength(), MEDMEM::MESH::getNormal(), MEDMEM::MESH::getSkin(), MEDMEM::MESH::getVolume(), MEDMEM::SUPPORT::makeMesh(), and MEDMEM::FIELD< T, INTERLACING_TAG >::normL2().