Version: 5.1.6

INTERP_KERNEL.CellSimplify Class Reference

#include <InterpKernelCellSimplify.hxx>

Static Public Member Functions

static
INTERP_KERNEL::NormalizedCellType 
simplifyDegeneratedCell (INTERP_KERNEL::NormalizedCellType type, const int *conn, int lgth, int *retConn, int &retLgth) throw (INTERP_KERNEL::Exception)
static intgetFullPolyh3DCell (INTERP_KERNEL::NormalizedCellType type, const int *conn, int lgth, int &retNbOfFaces, int &retLgth)
static
INTERP_KERNEL::NormalizedCellType 
tryToUnPoly2D (const int *conn, int lgth, int *retConn, int &retLgth)
static
INTERP_KERNEL::NormalizedCellType 
tryToUnPoly3D (const int *conn, int nbOfFaces, int lgth, int *retConn, int &retLgth)
static
INTERP_KERNEL::NormalizedCellType 
tryToUnPolyHex8 (const int *conn, int nbOfFaces, int lgth, int *retConn, int &retLgth)
static
INTERP_KERNEL::NormalizedCellType 
tryToUnPolyHexp12 (const int *conn, int nbOfFaces, int lgth, int *retConn, int &retLgth)
static
INTERP_KERNEL::NormalizedCellType 
tryToUnPolyPenta6 (const int *conn, int nbOfFaces, int lgth, int *retConn, int &retLgth)
static
INTERP_KERNEL::NormalizedCellType 
tryToUnPolyPyra5 (const int *conn, int nbOfFaces, int lgth, int *retConn, int &retLgth)
static
INTERP_KERNEL::NormalizedCellType 
tryToUnPolyTetra4 (const int *conn, int nbOfFaces, int lgth, int *retConn, int &retLgth)
static bool tryToArrangeOppositeFace (const int *conn, int lgth, int lgthBaseFace, const int *baseFace, const int *oppFaceId, int nbOfFaces, int *retConnOfOppFace)
static bool isWellOriented (const int *baseFace, int *retConn, const int *sideFace, int lgthBaseFace)
static bool orientOppositeFace (const int *baseFace, int *retConn, const int *sideFace, int lgthBaseFace)

Member Function Documentation

INTERP_KERNEL::NormalizedCellType CellSimplify::simplifyDegeneratedCell ( INTERP_KERNEL::NormalizedCellType  type,
const int conn,
int  lgth,
int retConn,
int retLgth 
) throw (INTERP_KERNEL::Exception) [static]

This method takes as input a cell with type 'type' and whose connectivity is defined by (conn,lgth) It retrieves the same cell with a potentially different type (in return) whose connectivity is defined by (retConn,retLgth) WARNING for optimization reason the arrays 'retConn' and 'conn' can overlapped !

References testRenumbering.conn, INTERP_KERNEL.CellModel.GetCellModel(), INTERP_KERNEL.CellModel.getDimension(), INTERP_KERNEL.CellModel.isQuadratic(), testMEDMEM.ret, and medClient_test.type.

int * CellSimplify::getFullPolyh3DCell ( INTERP_KERNEL::NormalizedCellType  type,
const int conn,
int  lgth,
int retNbOfFaces,
int retLgth 
) [static]

This method takes as input a 3D linear cell and put its representation in returned array. Warning the returned array has to be deallocated. The length of the returned array is specified by out parameter The format of output array is the following : 1,2,3,-1,3,4,2,-1,3,4,1,-1,1,2,4,NORM_TRI3,NORM_TRI3,NORM_TRI3 (faces type at the end of classical polyhedron nodal description)

References INTERP_KERNEL.CellModel.fillSonCellNodalConnectivity2(), INTERP_KERNEL.CellModel.GetCellModel(), INTERP_KERNEL.CellModel.getNumberOfSons2(), and INTERP_KERNEL.CellSimplify.tryToUnPoly2D().

INTERP_KERNEL::NormalizedCellType CellSimplify::tryToUnPoly2D ( const int conn,
int  lgth,
int retConn,
int retLgth 
) [static]

This static method tries to unpolygonize a cell whose connectivity is given by 'conn' and 'lgth'. Contrary to INTERP_KERNEL.CellSimplify.simplifyDegeneratedCell method 'conn' and 'retConn' do not overlap.

References INTERP_KERNEL.NORM_POLYGON, INTERP_KERNEL.NORM_QUAD4, and INTERP_KERNEL.NORM_TRI3.

INTERP_KERNEL::NormalizedCellType CellSimplify::tryToUnPoly3D ( const int conn,
int  nbOfFaces,
int  lgth,
int retConn,
int retLgth 
) [static]

This static method tries to unpolygonize a cell whose connectivity is given by 'conn' (format is the same as specified in method INTERP_KERNEL.CellSimplify.getFullPolyh3DCell ) and 'lgth'+'nbOfFaces'. Contrary to INTERP_KERNEL.CellSimplify.simplifyDegeneratedCell method 'conn' and 'retConn' do not overlap.

References nodes, INTERP_KERNEL.NORM_POLYHED, INTERP_KERNEL.CellSimplify.tryToUnPolyHex8(), INTERP_KERNEL.CellSimplify.tryToUnPolyHexp12(), INTERP_KERNEL.CellSimplify.tryToUnPolyPenta6(), INTERP_KERNEL.CellSimplify.tryToUnPolyPyra5(), and INTERP_KERNEL.CellSimplify.tryToUnPolyTetra4().

INTERP_KERNEL::NormalizedCellType CellSimplify::tryToUnPolyHex8 ( const int conn,
int  nbOfFaces,
int  lgth,
int retConn,
int retLgth 
) [static]

Cell with 'conn' connectivity has been detected as a good candidate. Full check of this. If yes NORM_HEXA8 is returned. This method is only callable if in 'conn' there is 8 nodes and 6 faces. If fails a POLYHED is returned.

References med_test_grid.conn1, INTERP_KERNEL.NORM_HEXA8, INTERP_KERNEL.NORM_POLYHED, INTERP_KERNEL.NORM_QUAD4, and INTERP_KERNEL.CellSimplify.tryToArrangeOppositeFace().

INTERP_KERNEL::NormalizedCellType CellSimplify::tryToUnPolyHexp12 ( const int conn,
int  nbOfFaces,
int  lgth,
int retConn,
int retLgth 
) [static]
INTERP_KERNEL::NormalizedCellType CellSimplify::tryToUnPolyPenta6 ( const int conn,
int  nbOfFaces,
int  lgth,
int retConn,
int retLgth 
) [static]

Cell with 'conn' connectivity has been detected as a good candidate. Full check of this. If yes NORM_PENTA6 is returned. If fails a POLYHED is returned.

References med_test_grid.conn1, INTERP_KERNEL.NORM_PENTA6, INTERP_KERNEL.NORM_POLYHED, INTERP_KERNEL.NORM_QUAD4, INTERP_KERNEL.NORM_TRI3, and INTERP_KERNEL.CellSimplify.tryToArrangeOppositeFace().

INTERP_KERNEL::NormalizedCellType CellSimplify::tryToUnPolyPyra5 ( const int conn,
int  nbOfFaces,
int  lgth,
int retConn,
int retLgth 
) [static]

Cell with 'conn' connectivity has been detected as a good candidate. Full check of this. If yes NORM_PYRA5 is returned. If fails a POLYHED is returned.

References INTERP_KERNEL.NORM_POLYHED, INTERP_KERNEL.NORM_PYRA5, INTERP_KERNEL.NORM_QUAD4, and INTERP_KERNEL.NORM_TRI3.

INTERP_KERNEL::NormalizedCellType CellSimplify::tryToUnPolyTetra4 ( const int conn,
int  nbOfFaces,
int  lgth,
int retConn,
int retLgth 
) [static]

Cell with 'conn' connectivity has been detected as a good candidate. Full check of this. If yes NORM_TETRA4 is returned. If fails a POLYHED is returned.

References INTERP_KERNEL.NORM_POLYHED, INTERP_KERNEL.NORM_TETRA4, and INTERP_KERNEL.NORM_TRI3.

bool CellSimplify::tryToArrangeOppositeFace ( const int conn,
int  lgth,
int  lgthBaseFace,
const int baseFace,
const int oppFace,
int  nbOfFaces,
int retConnOfOppFace 
) [static]

This method is trying to permute the connectivity of 'oppFace' face so that the k_th node of 'baseFace' is associated to the k_th node in retConnOfOppFace. Excluded faces 'baseFace' and 'oppFace' all the other faces in 'conn' must be QUAD4 faces. If the arragement process succeeds true is returned and retConnOfOppFace is filled.

References INTERP_KERNEL.CellSimplify.isWellOriented(), INTERP_KERNEL.CellSimplify.orientOppositeFace(), and testMEDMEM.ret.

bool CellSimplify::isWellOriented ( const int baseFace,
int retConn,
const int sideFace,
int  lgthBaseFace 
) [static]
bool CellSimplify::orientOppositeFace ( const int baseFace,
int retConn,
const int sideFace,
int  lgthBaseFace 
) [static]

References Med_Gen_test.it.