Version: 5.1.6

MEDMEM.CONNECTIVITY Class Reference

#include <MEDMEM_Connectivity.hxx>

Inheritance diagram for MEDMEM.CONNECTIVITY:
Inheritance graph

Data Structures

class  myHashFn

Public Member Functions

void calculateNodalConnectivity () const
void calculateReverseNodalConnectivity () const
void calculateDescendingConnectivity () const
void calculatePartialDescendingConnectivity () const
void addToDescendingConnectivity (const set< int > &nodes, multimap< int, int > &descending, int iglobal_cell, const CONNECTIVITY_HashMap &) const
const intgetReverseNodalConnectivity () const
const intgetReverseNodalConnectivityIndex () const
const intgetReverseDescendingConnectivity () const
const intgetReverseDescendingConnectivityIndex () const
void calculateNeighbourhood (CONNECTIVITY &myConnectivity)
int getIndexOfEndClassicElementInReverseNodal (const int *reverseNodalValue, const int *reverseNodalIndex, int rk) const
 CONNECTIVITY (MED_EN::medEntityMesh Entity=MED_EN::MED_CELL)
 CONNECTIVITY (int numberOfTypes, MED_EN::medEntityMesh Entity=MED_EN::MED_CELL)
 CONNECTIVITY (const CONNECTIVITY &m)
virtual ~CONNECTIVITY ()
void setConstituent (CONNECTIVITY *Constituent) throw (MEDEXCEPTION)
void setGeometricTypes (const MED_EN::medGeometryElement *Types, const MED_EN::medEntityMesh Entity) throw (MEDEXCEPTION)
void setCount (const int *Count, const MED_EN::medEntityMesh Entity) throw (MEDEXCEPTION)
void setNodal (const int *Connectivity, const MED_EN::medEntityMesh Entity, const MED_EN::medGeometryElement Type) throw (MEDEXCEPTION)
void setNumberOfNodes (int NumberOfNodes)
int getNumberOfNodes () const
int getEntityDimension () const
void setEntityDimension (int EntityDimension)
void setPolygonsConnectivity (MED_EN::medConnectivity ConnectivityType, MED_EN::medEntityMesh Entity, const int *PolygonsConnectivity, const int *PolygonsConnectivityIndex, int ConnectivitySize, int NumberOfPolygons)
void setPolyhedronConnectivity (MED_EN::medConnectivity ConnectivityType, const int *PolyhedronConnectivity, const int *PolyhedronIndex, int ConnectivitySize, int NumberOfPolyhedron, const int *PolyhedronFacesIndex=(int *) 0, int NumberOfFaces=0)
bool existConnectivity (MED_EN::medConnectivity connectivityType, MED_EN::medEntityMesh Entity) const
bool existConnectivityWithPoly (MED_EN::medConnectivity connectivityType, MED_EN::medEntityMesh Entity) const
virtual bool existPolygonsConnectivity (MED_EN::medConnectivity connectivityType, MED_EN::medEntityMesh Entity) const
virtual bool existPolyhedronConnectivity (MED_EN::medConnectivity connectivityType, MED_EN::medEntityMesh Entity) const
virtual void calculateConnectivity (MED_EN::medConnectivity connectivityType, MED_EN::medEntityMesh Entity)
virtual void calculateFullDescendingConnectivity (MED_EN::medEntityMesh Entity)
virtual void updateFamily (const vector< FAMILY * > &myFamilies)
MED_EN::medEntityMesh getEntity () const
int getNumberOfTypes (MED_EN::medEntityMesh Entity) const
int getNumberOfTypesWithPoly (MED_EN::medEntityMesh Entity) const
const intgetConnectivityOfAnElementWithPoly (MED_EN::medConnectivity ConnectivityType, MED_EN::medEntityMesh Entity, int Number, int &lgth) const
int getNumberOfPolyType () const
int getNumberOfElementsWithPoly (MED_EN::medEntityMesh Entity, MED_EN::medGeometryElement Type) const
int getNumberOfElementOfPolyType (MED_EN::medEntityMesh Entity) const
const MED_EN::medGeometryElementgetGeometricTypes (MED_EN::medEntityMesh Entity) const throw (MEDEXCEPTION)
MED_EN::medGeometryElementgetGeometricTypesWithPoly (MED_EN::medEntityMesh Entity) const throw (MEDEXCEPTION)
MED_EN::medGeometryElement getElementType (MED_EN::medEntityMesh Entity, int Number) const
MED_EN::medGeometryElement getElementTypeWithPoly (MED_EN::medEntityMesh Entity, int Number) const
MED_EN::medGeometryElement getPolyTypeRelativeTo () const
virtual const intgetGlobalNumberingIndex (MED_EN::medEntityMesh Entity) const throw (MEDEXCEPTION)
virtual const intgetConnectivity (MED_EN::medConnectivity ConnectivityType, MED_EN::medEntityMesh Entity, MED_EN::medGeometryElement Type) const
virtual int getConnectivityLength (MED_EN::medConnectivity ConnectivityType, MED_EN::medEntityMesh Entity, MED_EN::medGeometryElement Type) const
virtual const intgetConnectivityIndex (MED_EN::medConnectivity ConnectivityType, MED_EN::medEntityMesh Entity) const
virtual const intgetPolygonsConnectivity (MED_EN::medConnectivity ConnectivityType, MED_EN::medEntityMesh Entity) const
virtual const intgetPolygonsConnectivityIndex (MED_EN::medConnectivity ConnectivityType, MED_EN::medEntityMesh Entity) const
virtual int getNumberOfPolygons (MED_EN::medEntityMesh Entity=MED_EN::MED_ALL_ENTITIES) const
virtual const intgetPolyhedronConnectivity (MED_EN::medConnectivity ConnectivityType) const
virtual const intgetPolyhedronFacesIndex () const
virtual const intgetPolyhedronIndex (MED_EN::medConnectivity ConnectivityType) const
virtual int getNumberOfPolyhedronFaces () const
virtual int getNumberOfPolyhedron () const
intgetNodesOfPolyhedron (int polyhedronId, int &lgthOfTab) const
int ** getNodesPerFaceOfPolyhedron (int polyhedronId, int &nbOfFaces, int *&nbOfNodesPerFaces) const
const CELLMODELgetType (MED_EN::medGeometryElement Type) const
const CELLMODELgetCellsTypes (MED_EN::medEntityMesh Entity) const throw (MEDEXCEPTION)
string * getCellTypeNames (MED_EN::medEntityMesh Entity) const throw (MEDEXCEPTION)
int getNumberOfNodesInType (MED_EN::medGeometryElement Type) const
int getNumberOfSubCellInType (MED_EN::medGeometryElement Type) const
virtual int getNumberOf (MED_EN::medEntityMesh Entity, MED_EN::medGeometryElement Type) const
virtual const intgetValue (MED_EN::medConnectivity TypeConnectivity, MED_EN::medGeometryElement Type) const
virtual const intgetValueIndex (MED_EN::medConnectivity TypeConnectivity) const
virtual const intgetReverseConnectivity (MED_EN::medConnectivity ConnectivityType, MED_EN::medEntityMesh Entity=MED_EN::MED_CELL) const throw (MEDEXCEPTION)
virtual const intgetReverseConnectivityIndex (MED_EN::medConnectivity ConnectivityType, MED_EN::medEntityMesh Entity=MED_EN::MED_CELL) const throw (MEDEXCEPTION)
const intgetNeighbourhood () const
void invertConnectivityForAFace (int faceId, const int *nodalConnForFace, bool polygonFace=false)
bool deepCompare (const CONNECTIVITY &other) const

Data Fields

MED_EN::medEntityMesh _entity
MED_EN::medConnectivity _typeConnectivity
int _numberOfTypes
MED_EN::medGeometryElement_geometricTypes
CELLMODEL_type
int _entityDimension
int _numberOfNodes
int_count
MEDSKYLINEARRAY_nodal
MEDSKYLINEARRAY_polygonsNodal
POLYHEDRONARRAY_polyhedronNodal
MEDSKYLINEARRAY_descending
MEDSKYLINEARRAY_polygonsDescending
MEDSKYLINEARRAY_polyhedronDescending
MEDSKYLINEARRAY_reverseNodalConnectivity
MEDSKYLINEARRAY_reverseDescendingConnectivity
MEDSKYLINEARRAY_neighbourhood
CONNECTIVITY_constituent
bool _isDescendingConnectivityPartial

Private Types

typedef hash_map< vector< int >
, int, myHashFn
CONNECTIVITY_HashMap

Friends

class IMED_MESH_RDONLY_DRIVER
class MED_MESH_RDONLY_DRIVER21
class IMED_MESH_WRONLY_DRIVER
class MED_MESH_WRONLY_DRIVER21
class MED_MESH_RDONLY_DRIVER22
class MED_MESH_WRONLY_DRIVER22
class GRID
ostream & operator<< (ostream &os, CONNECTIVITY &connectivity)

Detailed Description

This class deals with all types of connectivity.
It is a recursive class.


Member Typedef Documentation

typedef hash_map<vector<int>,int, myHashFn > MEDMEM.CONNECTIVITY.CONNECTIVITY_HashMap [private]

Constructor & Destructor Documentation

MEDMEM.CONNECTIVITY.CONNECTIVITY ( MED_EN::medEntityMesh  Entity = MED_EN::MED_CELL  ) 
MEDMEM.CONNECTIVITY.CONNECTIVITY ( int  numberOfTypes,
MED_EN::medEntityMesh  Entity = MED_EN::MED_CELL 
)
CONNECTIVITY::CONNECTIVITY ( const CONNECTIVITY m  ) 
CONNECTIVITY::~CONNECTIVITY (  )  [virtual]

Member Function Documentation

void CONNECTIVITY::calculateNodalConnectivity (  )  const

private method :
does nothing if already exists, else evaluates _nodal from _descending

A DOCUMENTER (et a finir ???)

References MEDMEM.CONNECTIVITY._descending, MEDMEM.CONNECTIVITY._nodal, MEDMEM.CONNECTIVITY._polygonsDescending, MEDMEM.CONNECTIVITY._polygonsNodal, MEDMEM.CONNECTIVITY._polyhedronDescending, and MEDMEM.CONNECTIVITY._polyhedronNodal.

void CONNECTIVITY::calculateReverseNodalConnectivity (  )  const
void CONNECTIVITY::calculateDescendingConnectivity (  )  const
void CONNECTIVITY::calculatePartialDescendingConnectivity (  )  const

This method calculates the descending connectivity without creating missing elements. It only maps the constituent elements that are described in the nodal representation. For instance, let us consider the following mesh with no MED_EDGE elements on the inner edges.

+----1----+----2----+ | | | 8 1 | 2 3 | | | +---------+---------+ | | | 7 3 | 4 4 | | | +----6----+----5----+

calculatePartialDescendingConnectivity() will return 1:1,8 2:2,3 3:6,7 4:4,5

whereas calculateDescendingConnectivity() will create new edges, renumbering existing ones and return 1:1,2,3,4 2:5,6,7,2 3:3,8,9,10 4:7,11,12,8

+----1----+----5----+ | | | 4 1 2 2 6 | | | +----3----+----7----+ | | | 10 3 8 4 11 | | | +----9----+----12---+

References MEDMEM.CONNECTIVITY._constituent, MEDMEM.CONNECTIVITY._descending, MEDMEM.CONNECTIVITY._entity, MEDMEM.CONNECTIVITY._isDescendingConnectivityPartial, MEDMEM.CONNECTIVITY._nodal, MEDMEM.CONNECTIVITY._polygonsNodal, MEDMEM.CONNECTIVITY._polyhedronNodal, MEDMEM.CONNECTIVITY.addToDescendingConnectivity(), testRenumbering.conn, MEDMEM.CELLMODEL.getConstituentType(), MEDMEM.CONNECTIVITY.getEntity(), MEDMEM.CONNECTIVITY.getEntityDimension(), MEDMEM.POLYHEDRONARRAY.getFacesIndex(), MEDMEM.CONNECTIVITY.getGeometricTypes(), MEDMEM.MEDSKYLINEARRAY.getIndex(), MEDMEM.POLYHEDRONARRAY.getNodes(), MEDMEM.CELLMODEL.getNodesConstituent(), MEDMEM.CONNECTIVITY.getNumberOf(), MEDMEM.CELLMODEL.getNumberOfConstituents(), MEDMEM.CONNECTIVITY.getNumberOfElementsWithPoly(), MEDMEM.CONNECTIVITY.getNumberOfPolygons(), MEDMEM.CONNECTIVITY.getNumberOfTypes(), MEDMEM.POLYHEDRONARRAY.getPolyhedronIndex(), MEDMEM.MEDSKYLINEARRAY.getValue(), MED_EN.MED_POLYGON, MED_EN.MED_POLYHEDRA, nodes, MEDMEM.CELLMODEL_Map.retrieveCellModel(), and batchmode_medcorba_test.value.

void CONNECTIVITY::addToDescendingConnectivity ( const set< int > &  nodes,
multimap< int, int > &  descending,
int  iglobal_cell,
const CONNECTIVITY_HashMap face_map 
) const
const int * CONNECTIVITY::getReverseNodalConnectivity (  )  const

private method :
does nothing if already exists, else evaluates from _descending

Returns an array which contains, for each node, all cells arround it.

References MEDMEM.CONNECTIVITY._reverseNodalConnectivity, MEDMEM.CONNECTIVITY.calculateReverseNodalConnectivity(), and MEDMEM.MEDSKYLINEARRAY.getValue().

const int * CONNECTIVITY::getReverseNodalConnectivityIndex (  )  const

Give index array to use with getReverseConnectivity(MED_NODAL). It is unusefull with MED_DESCENDING mode, because we have allways two cells.

References MEDMEM.CONNECTIVITY._reverseNodalConnectivity, MEDMEM.CONNECTIVITY.calculateReverseNodalConnectivity(), and MEDMEM.MEDSKYLINEARRAY.getIndex().

const int * CONNECTIVITY::getReverseDescendingConnectivity (  )  const

Returns an array which contains, for each face (or edge), the 2 cells of each side. First is cell which face normal is outgoing. arround it.

References MEDMEM.CONNECTIVITY._descending, MEDMEM.CONNECTIVITY._entity, MEDMEM.CONNECTIVITY._reverseDescendingConnectivity, MEDMEM.CONNECTIVITY.calculateDescendingConnectivity(), MEDMEM.MEDSKYLINEARRAY.getValue(), MEDMEM.MEDSKYLINEARRAY.makeReverseArray(), and MED_EN.MED_CELL.

const int * CONNECTIVITY::getReverseDescendingConnectivityIndex (  )  const
void CONNECTIVITY::calculateNeighbourhood ( CONNECTIVITY myConnectivity  ) 

private method :
does nothing if already exists, else evaluates _neighbourhood from _descending

Not implemented yet

References MEDMEM.CONNECTIVITY._entity, BEGIN_OF_MED, END_OF_MED, and MESSAGE_MED.

int CONNECTIVITY::getIndexOfEndClassicElementInReverseNodal ( const int reverseNodalValue,
const int reverseNodalIndex,
int  rk 
) const
void CONNECTIVITY::setConstituent ( CONNECTIVITY Constituent  )  throw (MEDEXCEPTION)

set _constituent to Constituent be aware desallocation of _constituent is done by CONNECTIVITY:~CONNECTIVITY throws an exception if Constituent = MED_CELL A DOCUMENTER

References LOCALIZED, MED_EN.MED_CELL, MED_EN.MED_EDGE, and NULL.

void MEDMEM.CONNECTIVITY.setGeometricTypes ( const MED_EN::medGeometryElement Types,
const MED_EN::medEntityMesh  Entity 
) throw (MEDEXCEPTION)
void MEDMEM.CONNECTIVITY.setCount ( const int Count,
const MED_EN::medEntityMesh  Entity 
) throw (MEDEXCEPTION)
void MEDMEM.CONNECTIVITY.setNodal ( const int Connectivity,
const MED_EN::medEntityMesh  Entity,
const MED_EN::medGeometryElement  Type 
) throw (MEDEXCEPTION)
void MEDMEM.CONNECTIVITY::setNumberOfNodes ( int  NumberOfNodes  ) 
int MEDMEM.CONNECTIVITY::getNumberOfNodes (  )  const
int MEDMEM.CONNECTIVITY::getEntityDimension (  )  const
void MEDMEM.CONNECTIVITY::setEntityDimension ( int  EntityDimension  ) 
void MEDMEM.CONNECTIVITY.setPolygonsConnectivity ( MED_EN::medConnectivity  ConnectivityType,
MED_EN::medEntityMesh  Entity,
const int PolygonsConnectivity,
const int PolygonsConnectivityIndex,
int  ConnectivitySize,
int  NumberOfPolygons 
)
void MEDMEM.CONNECTIVITY.setPolyhedronConnectivity ( MED_EN::medConnectivity  ConnectivityType,
const int PolyhedronConnectivity,
const int PolyhedronIndex,
int  ConnectivitySize,
int  NumberOfPolyhedron,
const int PolyhedronFacesIndex = (int *) 0,
int  NumberOfFaces = 0 
)
bool MEDMEM.CONNECTIVITY::existConnectivity ( MED_EN::medConnectivity  ConnectivityType,
MED_EN::medEntityMesh  Entity 
) const

Returns true if a connectivity exists on elements of type "Entity"

References MED_EN.MED_DESCENDING, MED_EN.MED_NODAL, and NULL.

bool CONNECTIVITY::existConnectivityWithPoly ( MED_EN::medConnectivity  connectivityType,
MED_EN::medEntityMesh  Entity 
) const
bool MEDMEM.CONNECTIVITY::existPolygonsConnectivity ( MED_EN::medConnectivity  ConnectivityType,
MED_EN::medEntityMesh  Entity 
) const [virtual]

Returns true if a polygons connectivity exists on elements of type "Entity"

References MED_EN.MED_DESCENDING, MED_EN.MED_NODAL, MESSAGE_MED, and NULL.

bool MEDMEM.CONNECTIVITY::existPolyhedronConnectivity ( MED_EN::medConnectivity  ConnectivityType,
MED_EN::medEntityMesh  Entity 
) const [virtual]

Returns true if a polyhedron connectivity exists on elements of type "Entity"

References MED_EN.MED_DESCENDING, MED_EN.MED_NODAL, MESSAGE_MED, and NULL.

virtual void MEDMEM.CONNECTIVITY.calculateConnectivity ( MED_EN::medConnectivity  connectivityType,
MED_EN::medEntityMesh  Entity 
) [virtual]
void CONNECTIVITY::calculateFullDescendingConnectivity ( MED_EN::medEntityMesh  Entity  )  [virtual]

If not yet done, calculate the full Descending Connectivity

References MEDMEM.CONNECTIVITY._constituent, MEDMEM.CONNECTIVITY._count, MEDMEM.CONNECTIVITY._descending, MEDMEM.CONNECTIVITY._entity, MEDMEM.CONNECTIVITY._entityDimension, MEDMEM.CONNECTIVITY._geometricTypes, MEDMEM.CONNECTIVITY._isDescendingConnectivityPartial, MEDMEM.CONNECTIVITY._nodal, MEDMEM.CONNECTIVITY._numberOfNodes, MEDMEM.CONNECTIVITY._numberOfTypes, MEDMEM.CONNECTIVITY._polygonsDescending, MEDMEM.CONNECTIVITY._polygonsNodal, MEDMEM.CONNECTIVITY._polyhedronDescending, MEDMEM.CONNECTIVITY._polyhedronNodal, MEDMEM.CONNECTIVITY._reverseDescendingConnectivity, MEDMEM.CONNECTIVITY._reverseNodalConnectivity, MEDMEM.CONNECTIVITY._type, MEDMEM.CONNECTIVITY._typeConnectivity, BEGIN_OF_MED, MEDMEM.CONNECTIVITY.calculateFullDescendingConnectivity(), MEDMEM.CONNECTIVITY.calculateReverseNodalConnectivity(), MEDMEM.MEDMODULUSARRAY.compare(), MEDMEM.CONNECTIVITY.CONNECTIVITY(), END_OF_MED, face, MEDMEM.MEDMODULUSARRAY.getArray(), MEDMEM.CELLMODEL.getConstituentType(), MEDMEM.POLYHEDRONARRAY.getFacesIndex(), MEDMEM.MEDSKYLINEARRAY.getIJ(), MEDMEM.MEDSKYLINEARRAY.getIndex(), MEDMEM.CONNECTIVITY.getIndexOfEndClassicElementInReverseNodal(), MEDMEM.MEDSKYLINEARRAY.getLength(), MEDMEM.CELLMODEL.getNodeConstituent(), MEDMEM.POLYHEDRONARRAY.getNodes(), MEDMEM.CONNECTIVITY.getNumberOf(), MEDMEM.CELLMODEL.getNumberOfConstituents(), MEDMEM.POLYHEDRONARRAY.getNumberOfFaces(), MEDMEM.POLYHEDRONARRAY.getNumberOfNodes(), MEDMEM.CELLMODEL.getNumberOfNodes(), MEDMEM.CONNECTIVITY.getNumberOfPolygons(), MEDMEM.CONNECTIVITY.getNumberOfPolyhedron(), MEDMEM.POLYHEDRONARRAY.getPolyhedronIndex(), MEDMEM.MEDSKYLINEARRAY.getValue(), insert_vector(), LOCALIZED, TestMedCorba2.m, MED_EN.MED_ALL_ELEMENTS, MED_EN.MED_CELL, MED_EN.MED_EDGE, MED_EN.MED_FACE, MED_EN.MED_NODAL, MED_EN.MED_NONE, MED_EN.MED_SEG2, mergeOrderedTabs(), MESSAGE_MED, TestMedCorba2.n, MEDMEM.POLYHEDRONARRAY.setFacesIndex(), MEDMEM.POLYHEDRONARRAY.setNodes(), and testMedMemCxxTests.status.

void CONNECTIVITY::updateFamily ( const vector< FAMILY * > &  myFamilies  )  [virtual]
MED_EN::medEntityMesh MEDMEM.CONNECTIVITY::getEntity (  )  const

Returns the medEntityMesh

int MEDMEM.CONNECTIVITY::getNumberOfTypes ( MED_EN::medEntityMesh  Entity  )  const

Returns the number of different medGeometryElement types existing in the specified entity.
Note : Not implemented for MED_ALL_ENTITIES.

References MED_EN.MED_NODAL, MESSAGE_MED, NULL, and SCRUTE_MED.

int CONNECTIVITY::getNumberOfTypesWithPoly ( MED_EN::medEntityMesh  Entity  )  const
const int * CONNECTIVITY::getConnectivityOfAnElementWithPoly ( MED_EN::medConnectivity  ConnectivityType,
MED_EN::medEntityMesh  Entity,
int  Number,
int lgth 
) const
int CONNECTIVITY::getNumberOfPolyType (  )  const
int CONNECTIVITY::getNumberOfElementsWithPoly ( MED_EN::medEntityMesh  Entity,
MED_EN::medGeometryElement  Type 
) const
int CONNECTIVITY::getNumberOfElementOfPolyType ( MED_EN::medEntityMesh  Entity  )  const
const MED_EN::medGeometryElement * MEDMEM.CONNECTIVITY::getGeometricTypes ( MED_EN::medEntityMesh  Entity  )  const throw (MEDEXCEPTION)

Returns an array of all medGeometryElement types existing in the mesh for the given medEntityMesh. Note : Not implemented for MED_ALL_ENTITIES. Throws an exception if Entity is unknown

References NULL.

MED_EN::medGeometryElement * CONNECTIVITY::getGeometricTypesWithPoly ( MED_EN::medEntityMesh  Entity  )  const throw (MEDEXCEPTION)
MED_EN::medGeometryElement MEDMEM.CONNECTIVITY.getElementType ( MED_EN::medEntityMesh  Entity,
int  Number 
) const
MED_EN::medGeometryElement MEDMEM.CONNECTIVITY.getElementTypeWithPoly ( MED_EN::medEntityMesh  Entity,
int  Number 
) const
MED_EN::medGeometryElement MEDMEM.CONNECTIVITY::getPolyTypeRelativeTo (  )  const
const int * MEDMEM.CONNECTIVITY::getGlobalNumberingIndex ( MED_EN::medEntityMesh  Entity  )  const throw (MEDEXCEPTION) [virtual]

Returns an array containing the accumulated number of entities sorted by the geometric type.

Exemple :

In case of a CONNECTIVITY containing 3*MED_TRIA3 et 2*MED_QUAD4 :
int * count = getGlobalNumberingIndex(MED_CELL)
count[0] is always set to 1
count[1] is set to 1+3=4
count[2] is set to 4+2=6 = total number of cells + 1

Note : Not implemented for MED_ALL_ENTITIES.
Note : The geometric type order is given by the typedef enum medGeometryElement.

References NULL.

virtual const int* MEDMEM.CONNECTIVITY.getConnectivity ( MED_EN::medConnectivity  ConnectivityType,
MED_EN::medEntityMesh  Entity,
MED_EN::medGeometryElement  Type 
) const [virtual]
virtual int MEDMEM.CONNECTIVITY.getConnectivityLength ( MED_EN::medConnectivity  ConnectivityType,
MED_EN::medEntityMesh  Entity,
MED_EN::medGeometryElement  Type 
) const [virtual]
virtual const int* MEDMEM.CONNECTIVITY.getConnectivityIndex ( MED_EN::medConnectivity  ConnectivityType,
MED_EN::medEntityMesh  Entity 
) const [virtual]
virtual const int* MEDMEM.CONNECTIVITY.getPolygonsConnectivity ( MED_EN::medConnectivity  ConnectivityType,
MED_EN::medEntityMesh  Entity 
) const [virtual]
virtual const int* MEDMEM.CONNECTIVITY.getPolygonsConnectivityIndex ( MED_EN::medConnectivity  ConnectivityType,
MED_EN::medEntityMesh  Entity 
) const [virtual]
int CONNECTIVITY::getNumberOfPolygons ( MED_EN::medEntityMesh  Entity = MED_EN::MED_ALL_ENTITIES  )  const [virtual]

We suppose in this method that nodal and descending connectivities are coherent.

References MED_EN.MED_ALL_ENTITIES.

virtual const int* MEDMEM.CONNECTIVITY.getPolyhedronConnectivity ( MED_EN::medConnectivity  ConnectivityType  )  const [virtual]
const int * CONNECTIVITY::getPolyhedronFacesIndex (  )  const [virtual]
virtual const int* MEDMEM.CONNECTIVITY.getPolyhedronIndex ( MED_EN::medConnectivity  ConnectivityType  )  const [virtual]
int CONNECTIVITY::getNumberOfPolyhedronFaces (  )  const [virtual]

We suppose in this method that nodal and descending connectivities are coherent.

Reimplemented in MEDMEM.CONNECTIVITYClient.

References MEDMEM.CONNECTIVITY._polyhedronNodal, and MEDMEM.POLYHEDRONARRAY.getNumberOfFaces().

int CONNECTIVITY::getNumberOfPolyhedron (  )  const [virtual]

We suppose in this method that nodal and descending connectivities are coherent.

Reimplemented in MEDMEM.CONNECTIVITYClient.

References MEDMEM.CONNECTIVITY._polyhedronDescending, MEDMEM.CONNECTIVITY._polyhedronNodal, MEDMEM.MEDSKYLINEARRAY.getNumberOf(), and MEDMEM.POLYHEDRONARRAY.getNumberOfPolyhedron().

int * CONNECTIVITY::getNodesOfPolyhedron ( int  polyhedronId,
int lgthOfTab 
) const

method that adds to vector 'nodes' all the nodes of polyhedron with id 'polyhedronId'. WARNING the returned pointer should be deallocated. Returned nodes and polyhedronId are in form [1,...]

References MEDMEM.CONNECTIVITY._entity, MEDMEM.CONNECTIVITY.getNumberOf(), MEDMEM.CONNECTIVITY.getNumberOfElementsWithPoly(), MEDMEM.CONNECTIVITY.getPolyhedronConnectivity(), MEDMEM.CONNECTIVITY.getPolyhedronFacesIndex(), MEDMEM.CONNECTIVITY.getPolyhedronIndex(), MED_EN.MED_ALL_ELEMENTS, MED_EN.MED_CELL, MED_EN.MED_NODAL, nodes, and testMEDMEM.ret.

int ** CONNECTIVITY::getNodesPerFaceOfPolyhedron ( int  polyhedronId,
int nbOfFaces,
int *&  nbOfNodesPerFaces 
) const

Idem as MESH.getNodesOfPolyhedron except that returned nodes are sorted by face. 'nbOfNodesPerFaces' is an array of size 'nbOfFaces'. Returned int** has a size of 'nbOfNodesPerFaces' too, and for each element j in int** the size is nbOfNodesPerFaces[j]. Warning both returned 'nbOfNodesPerFaces' and returned value should be deallocated. Returned nodes and 'polyhedronId' are in form [1,...]

References MEDMEM.CONNECTIVITY._entity, MEDMEM.CONNECTIVITY.getNumberOf(), MEDMEM.CONNECTIVITY.getNumberOfElementsWithPoly(), MEDMEM.CONNECTIVITY.getPolyhedronConnectivity(), MEDMEM.CONNECTIVITY.getPolyhedronFacesIndex(), MEDMEM.CONNECTIVITY.getPolyhedronIndex(), MED_EN.MED_ALL_ELEMENTS, MED_EN.MED_CELL, MED_EN.MED_NODAL, nodes, and testMEDMEM.ret.

const CELLMODEL& MEDMEM.CONNECTIVITY.getType ( MED_EN::medGeometryElement  Type  )  const
const CELLMODEL * MEDMEM.CONNECTIVITY::getCellsTypes ( MED_EN::medEntityMesh  Entity  )  const throw (MEDEXCEPTION)

Returns an array containing CELLMODEL foreach element type present in connectivity for given medEntityMesh (similar as getGeometricTypes).
Throw an execption if the given entity is not defined or if the array is not defined.

References NULL.

string * MEDMEM.CONNECTIVITY::getCellTypeNames ( MED_EN::medEntityMesh  Entity  )  const throw (MEDEXCEPTION)

Returns an array (it should deleted after use) containing the whole list of CELLMODEL Name foreach element type present in connectivity for given medEntityMesh (similar as getGeometricTypes).
Throw an execption if the given entity is not defined or if the array is not defined.

References NULL.

int MEDMEM.CONNECTIVITY.getNumberOfNodesInType ( MED_EN::medGeometryElement  Type  )  const
int MEDMEM.CONNECTIVITY.getNumberOfSubCellInType ( MED_EN::medGeometryElement  Type  )  const
virtual int MEDMEM.CONNECTIVITY.getNumberOf ( MED_EN::medEntityMesh  Entity,
MED_EN::medGeometryElement  Type 
) const [virtual]
virtual const int* MEDMEM.CONNECTIVITY.getValue ( MED_EN::medConnectivity  TypeConnectivity,
MED_EN::medGeometryElement  Type 
) const [virtual]
virtual const int* MEDMEM.CONNECTIVITY.getValueIndex ( MED_EN::medConnectivity  TypeConnectivity  )  const [virtual]
const int * MEDMEM.CONNECTIVITY::getReverseConnectivity ( MED_EN::medConnectivity  ConnectivityType,
MED_EN::medEntityMesh  Entity = MED_EN::MED_CELL 
) const throw (MEDEXCEPTION) [virtual]

A DOCUMENTER

References MED_EN.MED_DESCENDING, MED_EN.MED_NODAL, and NULL.

const int * MEDMEM.CONNECTIVITY::getReverseConnectivityIndex ( MED_EN::medConnectivity  ConnectivityType,
MED_EN::medEntityMesh  Entity = MED_EN::MED_CELL 
) const throw (MEDEXCEPTION) [virtual]

A DOCUMENTER

References MED_EN.MED_DESCENDING, MED_EN.MED_NODAL, and NULL.

const int * CONNECTIVITY::getNeighbourhood (  )  const

Not yet implemented

Reimplemented in MEDMEM.CONNECTIVITYClient.

void CONNECTIVITY::invertConnectivityForAFace ( int  faceId,
const int nodalConnForFace,
bool  polygonFace = false 
)
bool CONNECTIVITY::deepCompare ( const CONNECTIVITY other  )  const

Friends And Related Function Documentation

friend class IMED_MESH_RDONLY_DRIVER [friend]
friend class MED_MESH_RDONLY_DRIVER21 [friend]
friend class IMED_MESH_WRONLY_DRIVER [friend]
friend class MED_MESH_WRONLY_DRIVER21 [friend]
friend class MED_MESH_RDONLY_DRIVER22 [friend]
friend class MED_MESH_WRONLY_DRIVER22 [friend]
friend class GRID [friend]
ostream& operator<< ( ostream &  os,
CONNECTIVITY connectivity 
) [friend]

Field Documentation

contains MED_CELL MED_FACE or MED_EDGE

contains MED_NODAL or MED_DESCEND

count of differents cells types used by the mesh

array of all med_geometric_type used by MESH.

map indexed by med_geometric_type which contains the different 'CellModel' used by MESH.

contains the dimension of the entity

needed by calculateReverseNodalConnectivity

array of size _numberOfTypes+1 which gives for each cell type the first cell number in _nodal or _descending array (depends on _typeConnectivity) To get cells count for one type, we must minus _count[i+1] and _count[i] ( 0 <= i < _numberOfTypes ). Note that _count[_numberOfTypes] returns total cells count + 1

pointer to an array which stores the nodal connectivity

pointer to an array which stores the nodal connectivity only for polygons

pointer to an array which stores the nodal connectivity only for polyhedron

pointer to an array which stores the descending connectivity

pointer to an array which stores the descending connectivity only for polygons

pointer to an array which stores the descending connectivity only for polyhedron

pointer to an array which stores the reverse nodal connectivity

pointer to an array which stores the reverse descending connectivity

if face or edge, list of 2 cells or 2 faces it belongs to. If 2nd number equals 0, we have a boundary entity. We could use MEDSKYLINEARRAY, but we suppose we have always only 2 (or 1) entities.

connectivity of sub cell if descendant connectivity is calculated

is descending connectivity computed by calculatePartialDescendingConnectivity()