Version: 8.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MEDCoupling::MEDCoupling1SGTUMesh Class Reference
Inheritance diagram for MEDCoupling::MEDCoupling1SGTUMesh:
Collaboration diagram for MEDCoupling::MEDCoupling1SGTUMesh:

Public Member Functions

std::string advancedRepr () const
 
void allocateCells (int nbOfCells=0)
 
MEDCouplingPointSetbuildPartOfMySelfKeepCoords (const int *begin, const int *end) const
 
MEDCouplingPointSetbuildPartOfMySelfKeepCoordsSlice (int start, int end, int step) const
 
MEDCoupling1SGTUMeshbuildSetInstanceFromThis (int spaceDim) const
 
MEDCouplingUMeshbuildUnstructured () const
 
void checkConsistency (double eps=1e-12) const
 
void checkConsistencyLight () const
 
void checkConsistencyOfConnectivity () const
 
void checkFastEquivalWith (const MEDCouplingMesh *other, double prec) const
 
void checkFullyDefined () const
 
MEDCoupling1SGTUMeshclone (bool recDeepCpy) const
 
MEDCouplingFieldDoublecomputeDiameterField () const
 
MEDCoupling1GTUMeshcomputeDualMesh () const
 
DataArrayIntcomputeEffectiveNbOfNodesPerCell () const
 
DataArrayIntcomputeFetchedNodeIds () const
 
DataArrayDoublecomputeIsoBarycenterOfNodesPerCell () const
 
DataArrayIntcomputeNbOfFacesPerCell () const
 
DataArrayIntcomputeNbOfNodesPerCell () const
 
void computeNodeIdsAlg (std::vector< bool > &nodeIdsInUse) const
 
MEDCoupling1SGTUMeshdeepCopy () const
 
MEDCoupling1SGTUMeshdeepCopyConnectivityOnly () const
 
MEDCoupling1SGTUMeshexplodeEachHexa8To6Quad4 () const
 
void fillCellIdsToKeepFromNodeIds (const int *begin, const int *end, bool fullyIn, DataArrayInt *&cellIdsKeptArr) const
 
DataArrayDoublegetBoundingBoxForBBTree (double arcDetEps=1e-12) const
 
std::vector< const
BigMemoryObject * > 
getDirectChildrenWithNull () const
 
std::size_t getHeapMemorySizeWithoutChildren () const
 
DataArrayIntgetNodalConnectivity () const
 
DataArrayIntgetNodeIdsInUse (int &nbrOfNodesInUse) const
 
void getNodeIdsOfCell (int cellId, std::vector< int > &conn) const
 
int getNumberOfCells () const
 
int getNumberOfNodesInCell (int cellId) const
 
int getNumberOfNodesPerCell () const
 
void getReverseNodalConnectivity (DataArrayInt *revNodal, DataArrayInt *revNodalIndx) const
 
void getTinySerializationInformation (std::vector< double > &tinyInfoD, std::vector< int > &tinyInfo, std::vector< std::string > &littleStrings) const
 
MEDCouplingMeshType getType () const
 
void insertNextCell (const int *nodalConnOfCellBg, const int *nodalConnOfCellEnd)
 
bool isEmptyMesh (const std::vector< int > &tinyInfo) const
 
bool isEqualIfNotWhy (const MEDCouplingMesh *other, double prec, std::string &reason) const
 
bool isEqualWithoutConsideringStr (const MEDCouplingMesh *other, double prec) const
 
MEDCouplingMeshmergeMyselfWith (const MEDCouplingMesh *other) const
 
MEDCouplingPointSetmergeMyselfWithOnSameCoords (const MEDCouplingPointSet *other) const
 
void renumberCells (const int *old2NewBg, bool check=true)
 
void renumberNodesInConn (const INTERP_KERNEL::HashMap< int, int > &newNodeNumbersO2N)
 
void renumberNodesInConn (const int *newNodeNumbersO2N)
 
void renumberNodesWithOffsetInConn (int offset)
 
void reprQuickOverview (std::ostream &stream) const
 
void resizeForUnserialization (const std::vector< int > &tinyInfo, DataArrayInt *a1, DataArrayDouble *a2, std::vector< std::string > &littleStrings) const
 
void serialize (DataArrayInt *&a1, DataArrayDouble *&a2) const
 
void setNodalConnectivity (DataArrayInt *nodalConn)
 
void shallowCopyConnectivityFrom (const MEDCouplingPointSet *other)
 
std::string simpleRepr () const
 
DataArrayIntsimplexize (int policy)
 
DataArrayIntsortHexa8EachOther ()
 
MEDCouplingCMeshstructurizeMe (DataArrayInt *&cellPerm, DataArrayInt *&nodePerm, double eps=1e-12) const
 
void unserialization (const std::vector< double > &tinyInfoD, const std::vector< int > &tinyInfo, const DataArrayInt *a1, DataArrayDouble *a2, const std::vector< std::string > &littleStrings)
 
void updateTime () const
 
- Public Member Functions inherited from MEDCoupling::MEDCoupling1GTUMesh
MEDCouplingPointSetbuildBoundaryMesh (bool keepCoords) const
 
MEDCouplingPointSetbuildFacePartOfMySelfNode (const int *start, const int *end, bool fullyIn) const
 
MEDCouplingFieldDoublebuildOrthogonalField () const
 
DataArrayIntcheckTypeConsistencyAndContig (const std::vector< int > &code, const std::vector< const DataArrayInt * > &idsPerType) const
 
DataArrayDoublecomputeCellCenterOfMass () const
 
DataArrayIntfindBoundaryNodes () const
 
void findCommonCells (int compType, int startCellId, DataArrayInt *&commonCellsArr, DataArrayInt *&commonCellsIArr) const
 
std::set
< INTERP_KERNEL::NormalizedCellType
getAllGeoTypes () const
 
int getCellContainingPoint (const double *pos, double eps) const
 
const INTERP_KERNEL::CellModel & getCellModel () const
 
INTERP_KERNEL::NormalizedCellType getCellModelEnum () const
 
void getCellsContainingPoint (const double *pos, double eps, std::vector< int > &elts) const
 
DataArrayIntgetCellsInBoundingBox (const double *bbox, double eps) const
 
DataArrayIntgetCellsInBoundingBox (const INTERP_KERNEL::DirectedBoundingBox &bbox, double eps)
 
std::vector< int > getDistributionOfTypes () const
 
MEDCouplingFieldDoublegetMeasureField (bool isAbs) const
 
MEDCouplingFieldDoublegetMeasureFieldOnNode (bool isAbs) const
 
int getMeshDimension () const
 
int getNodalConnectivityLength () const
 
int getNumberOfCellsWithType (INTERP_KERNEL::NormalizedCellType type) const
 
INTERP_KERNEL::NormalizedCellType getTypeOfCell (int cellId) const
 
std::string getVTKDataSetType () const
 
std::string getVTKFileExtension () const
 
DataArrayIntgiveCellsWithType (INTERP_KERNEL::NormalizedCellType type) const
 
void splitProfilePerType (const DataArrayInt *profile, std::vector< int > &code, std::vector< DataArrayInt * > &idsInPflPerType, std::vector< DataArrayInt * > &idsPerType) const
 
void writeVTKLL (std::ostream &ofs, const std::string &cellData, const std::string &pointData, DataArrayByte *byteData) const
 
- Public Member Functions inherited from MEDCoupling::MEDCouplingPointSet
virtual bool areAllNodesFetched () const
 
bool areCellsFrom2MeshEqual (const MEDCouplingPointSet *other, int cellId, double prec) const
 
bool areCoordsEqual (const MEDCouplingPointSet &other, double prec) const
 
bool areCoordsEqualIfNotWhy (const MEDCouplingPointSet &other, double prec, std::string &reason) const
 
bool areCoordsEqualWithoutConsideringStr (const MEDCouplingPointSet &other, double prec) const
 
DataArrayIntbuildNewNumberingFromCommonNodesFormat (const DataArrayInt *comm, const DataArrayInt *commIndex, int &newNbOfNodes) const
 
MEDCouplingMeshbuildPart (const int *start, const int *end) const
 
MEDCouplingMeshbuildPartAndReduceNodes (const int *start, const int *end, DataArrayInt *&arr) const
 
virtual MEDCouplingPointSetbuildPartOfMySelf (const int *start, const int *end, bool keepCoords=true) const
 
virtual MEDCouplingPointSetbuildPartOfMySelfNode (const int *start, const int *end, bool fullyIn) const
 
virtual MEDCouplingPointSetbuildPartOfMySelfSlice (int start, int end, int step, bool keepCoords=true) const
 
MEDCouplingMeshbuildPartRange (int beginCellIds, int endCellIds, int stepCellIds) const
 
MEDCouplingMeshbuildPartRangeAndReduceNodes (int beginCellIds, int endCellIds, int stepCellIds, int &beginOut, int &endOut, int &stepOut, DataArrayInt *&arr) const
 
DataArrayIntbuildPermArrayForMergeNode (double precision, int limitNodeId, bool &areNodesMerged, int &newNbOfNodes) const
 
void changeSpaceDimension (int newSpaceDim, double dftVal=0.)
 
void checkDeepEquivalOnSameNodesWith (const MEDCouplingMesh *other, int cellCompPol, double prec, DataArrayInt *&cellCor) const
 
void checkDeepEquivalWith (const MEDCouplingMesh *other, int cellCompPol, double prec, DataArrayInt *&cellCor, DataArrayInt *&nodeCor) const
 
void checkFastEquivalWith (const MEDCouplingMesh *other, double prec) const
 
void copyTinyStringsFrom (const MEDCouplingMesh *other)
 
void duplicateNodesInCoords (const int *nodeIdsToDuplicateBg, const int *nodeIdsToDuplicateEnd)
 
void findCommonNodes (double prec, int limitNodeId, DataArrayInt *&comm, DataArrayInt *&commIndex) const
 
void findNodesOnLine (const double *pt, const double *vec, double eps, std::vector< int > &nodes) const
 
void findNodesOnPlane (const double *pt, const double *vec, double eps, std::vector< int > &nodes) const
 
void getBoundingBox (double *bbox) const
 
double getCaracteristicDimension () const
 
DataArrayIntgetCellIdsFullyIncludedInNodeIds (const int *partBg, const int *partEnd) const
 
DataArrayIntgetCellIdsLyingOnNodes (const int *begin, const int *end, bool fullyIn) const
 
DataArrayDoublegetCoordinatesAndOwner () const
 
void getCoordinatesOfNode (int nodeId, std::vector< double > &coo) const
 
const DataArrayDoublegetCoords () const
 
DataArrayDoublegetCoords ()
 
const DataArrayDoublegetDirectAccessOfCoordsArrIfInStructure () const
 
std::vector< const
BigMemoryObject * > 
getDirectChildrenWithNull () const
 
std::size_t getHeapMemorySizeWithoutChildren () const
 
DataArrayIntgetNodeIdsNearPoint (const double *pos, double eps) const
 
void getNodeIdsNearPoints (const double *pos, int nbOfPoints, double eps, DataArrayInt *&c, DataArrayInt *&cI) const
 
int getNumberOfNodes () const
 
int getSpaceDimension () const
 
void getTinySerializationInformation (std::vector< double > &tinyInfoD, std::vector< int > &tinyInfo, std::vector< std::string > &littleStrings) const
 
bool isEqualIfNotWhy (const MEDCouplingMesh *other, double prec, std::string &reason) const
 
bool isEqualWithoutConsideringStr (const MEDCouplingMesh *other, double prec) const
 
virtual DataArrayIntmergeNodes (double precision, bool &areNodesMerged, int &newNbOfNodes)
 
virtual DataArrayIntmergeNodesCenter (double precision, bool &areNodesMerged, int &newNbOfNodes)
 
void recenterForMaxPrecision (double eps)
 
virtual void renumberNodes (const int *newNodeNumbers, int newNbOfNodes)
 
virtual void renumberNodesCenter (const int *newNodeNumbers, int newNbOfNodes)
 
void resizeForUnserialization (const std::vector< int > &tinyInfo, DataArrayInt *a1, DataArrayDouble *a2, std::vector< std::string > &littleStrings) const
 
void rotate (const double *center, const double *vector, double angle)
 
void scale (const double *point, double factor)
 
void serialize (DataArrayInt *&a1, DataArrayDouble *&a2) const
 
void setCoords (const DataArrayDouble *coords)
 
void translate (const double *vector)
 
void tryToShareSameCoords (const MEDCouplingPointSet &other, double epsilon)
 
virtual void tryToShareSameCoordsPermute (const MEDCouplingPointSet &other, double epsilon)
 
void unserialization (const std::vector< double > &tinyInfoD, const std::vector< int > &tinyInfo, const DataArrayInt *a1, DataArrayDouble *a2, const std::vector< std::string > &littleStrings)
 
void updateTime () const
 
virtual DataArrayIntzipConnectivityTraducer (int compType, int startCellId=0)
 
void zipCoords ()
 
virtual DataArrayIntzipCoordsTraducer ()
 
- Public Member Functions inherited from MEDCoupling::MEDCouplingMesh
virtual bool areCompatibleForMerge (const MEDCouplingMesh *other) const
 
void checkGeoEquivalWith (const MEDCouplingMesh *other, int levOfCheck, double prec, DataArrayInt *&cellCor, DataArrayInt *&nodeCor) const
 
virtual void copyTinyInfoFrom (const MEDCouplingMesh *other)
 
virtual MEDCouplingFieldDoublefillFromAnalytic (TypeOfField t, int nbOfComp, FunctionToEvaluate func) const
 
virtual MEDCouplingFieldDoublefillFromAnalytic (TypeOfField t, int nbOfComp, const std::string &func) const
 
virtual MEDCouplingFieldDoublefillFromAnalyticCompo (TypeOfField t, int nbOfComp, const std::string &func) const
 
virtual MEDCouplingFieldDoublefillFromAnalyticNamedCompo (TypeOfField t, int nbOfComp, const std::vector< std::string > &varsOrder, const std::string &func) const
 
virtual void getCellsContainingPoints (const double *pos, int nbOfPoints, double eps, MCAuto< DataArrayInt > &elts, MCAuto< DataArrayInt > &eltsIndex) const
 
std::string getDescription () const
 
std::string getName () const
 
double getTime (int &iteration, int &order) const
 
std::string getTimeUnit () const
 
std::string getVTKFileNameOf (const std::string &fileName) const
 
virtual bool isEqual (const MEDCouplingMesh *other, double prec) const
 
bool isStructured () const
 
void setDescription (const std::string &descr)
 
void setName (const std::string &name)
 
void setTime (double val, int iteration, int order)
 
void setTimeUnit (const std::string &unit)
 
std::string writeVTK (const std::string &fileName, bool isBinary=true) const
 
- Public Member Functions inherited from MEDCoupling::TimeLabel
void declareAsNew () const
 
std::size_t getTimeOfThis () const
 
TimeLabeloperator= (const TimeLabel &other)
 

Static Public Member Functions

static MEDCoupling1SGTUMeshMerge1SGTUMeshes (const MEDCoupling1SGTUMesh *mesh1, const MEDCoupling1SGTUMesh *mesh2)
 
static MEDCoupling1SGTUMeshMerge1SGTUMeshes (std::vector< const MEDCoupling1SGTUMesh * > &a)
 
static MEDCoupling1SGTUMeshMerge1SGTUMeshesOnSameCoords (std::vector< const MEDCoupling1SGTUMesh * > &a)
 
static MEDCoupling1SGTUMeshNew (const std::string &name, INTERP_KERNEL::NormalizedCellType type)
 
static MEDCoupling1SGTUMeshNew (const MEDCouplingUMesh *m)
 
static MEDCoupling1SGTUMeshNew ()
 
- Static Public Member Functions inherited from MEDCoupling::MEDCoupling1GTUMesh
static MEDCouplingUMeshAggregateOnSameCoordsToUMesh (const std::vector< const MEDCoupling1GTUMesh * > &parts)
 
static MEDCoupling1GTUMeshNew (const std::string &name, INTERP_KERNEL::NormalizedCellType type)
 
static MEDCoupling1GTUMeshNew (const MEDCouplingUMesh *m)
 
- Static Public Member Functions inherited from MEDCoupling::MEDCouplingPointSet
static MEDCouplingPointSetBuildInstanceFromMeshType (MEDCouplingMeshType type)
 
static DataArrayIntComputeNbOfInteractionsWithSrcCells (const MEDCouplingPointSet *srcMesh, const MEDCouplingPointSet *trgMesh, double eps)
 
static DataArrayDoubleMergeNodesArray (const MEDCouplingPointSet *m1, const MEDCouplingPointSet *m2)
 
static DataArrayDoubleMergeNodesArray (const std::vector< const MEDCouplingPointSet * > &ms)
 
- Static Public Member Functions inherited from MEDCoupling::MEDCouplingMesh
static
INTERP_KERNEL::NormalizedCellType 
GetCorrespondingPolyType (INTERP_KERNEL::NormalizedCellType type)
 
static int GetDimensionOfGeometricType (INTERP_KERNEL::NormalizedCellType type)
 
static int GetNumberOfNodesOfGeometricType (INTERP_KERNEL::NormalizedCellType type)
 
static const char * GetReprOfGeometricType (INTERP_KERNEL::NormalizedCellType type)
 
static bool IsLinearGeometricType (INTERP_KERNEL::NormalizedCellType type)
 
static bool IsStaticGeometricType (INTERP_KERNEL::NormalizedCellType type)
 
static MEDCouplingMeshMergeMeshes (const MEDCouplingMesh *mesh1, const MEDCouplingMesh *mesh2)
 
static MEDCouplingMeshMergeMeshes (std::vector< const MEDCouplingMesh * > &meshes)
 

Static Public Attributes

static const int HEXA8_FACE_PAIRS [6] ={0,1,2,4,3,5}
 

Additional Inherited Members

- Protected Member Functions inherited from MEDCoupling::MEDCoupling1GTUMesh
 MEDCoupling1GTUMesh (const std::string &name, const INTERP_KERNEL::CellModel &cm)
 
 MEDCoupling1GTUMesh (const MEDCoupling1GTUMesh &other, bool recDeepCpy)
 
 MEDCoupling1GTUMesh ()
 
- Static Protected Member Functions inherited from MEDCoupling::MEDCouplingPointSet
static bool intersectsBoundingBox (const double *bb1, const double *bb2, int dim, double eps)
 
static bool intersectsBoundingBox (const INTERP_KERNEL::DirectedBoundingBox &bb1, const double *bb2, int dim, double eps)
 
static bool isButterfly2DCell (const std::vector< double > &res, bool isQuad, double eps)
 
- Protected Attributes inherited from MEDCoupling::MEDCoupling1GTUMesh
const INTERP_KERNEL::CellModel * _cm
 

Member Function Documentation

MEDCoupling1SGTUMesh * MEDCoupling1SGTUMesh::New ( const std::string &  name,
INTERP_KERNEL::NormalizedCellType  type 
)
static
MEDCoupling1SGTUMesh * MEDCoupling1SGTUMesh::clone ( bool  recDeepCpy) const
virtual
MEDCoupling1SGTUMesh * MEDCoupling1SGTUMesh::deepCopy ( ) const
virtual

Implements MEDCoupling::MEDCouplingMesh.

References clone().

MEDCoupling1SGTUMesh * MEDCoupling1SGTUMesh::deepCopyConnectivityOnly ( ) const
virtual

This method behaves mostly like MEDCoupling1SGTUMesh::deepCopy method, except that only nodal connectivity arrays are deeply copied. The coordinates are shared between this and the returned instance.

Returns
MEDCoupling1SGTUMesh * - A new object instance holding the copy of this (deep for connectivity, shallow for coordiantes)
See Also
MEDCoupling1SGTUMesh::deepCopy

Implements MEDCoupling::MEDCouplingPointSet.

References checkConsistencyLight(), clone(), MEDCoupling::MCAuto< T >::retn(), and setNodalConnectivity().

void MEDCoupling1SGTUMesh::updateTime ( ) const
virtual

This method should be called on high level classes as Field or Mesh to take into acount modifications done in aggregates objects.

Implements MEDCoupling::TimeLabel.

References MEDCoupling::MEDCouplingPointSet::updateTime(), and MEDCoupling::TimeLabel::updateTimeWith().

Referenced by renumberNodesInConn(), and renumberNodesWithOffsetInConn().

std::size_t MEDCoupling1SGTUMesh::getHeapMemorySizeWithoutChildren ( ) const
virtual
std::vector< const BigMemoryObject * > MEDCoupling1SGTUMesh::getDirectChildrenWithNull ( ) const
virtual
MEDCouplingMeshType MEDCoupling::MEDCoupling1SGTUMesh::getType ( ) const
virtual
bool MEDCoupling1SGTUMesh::isEqualIfNotWhy ( const MEDCouplingMesh other,
double  prec,
std::string &  reason 
) const
virtual
bool MEDCoupling1SGTUMesh::isEqualWithoutConsideringStr ( const MEDCouplingMesh other,
double  prec 
) const
virtual
void MEDCoupling1SGTUMesh::checkFastEquivalWith ( const MEDCouplingMesh other,
double  prec 
) const
virtual

Checks if this and other meshes are geometrically equivalent with high probability, else an exception is thrown. The meshes are considered equivalent if (1) meshes contain the same number of nodes and the same number of elements of the same types (2) three cells of the two meshes (first, last and middle) are based on coincident nodes (with a specified precision).

Parameters
[in]other- the mesh to compare with.
[in]prec- the precision used to compare nodes of the two meshes.
Exceptions
Ifthe two meshes do not match.

Reimplemented from MEDCoupling::MEDCouplingMesh.

References MEDCoupling::MEDCouplingPointSet::checkFastEquivalWith(), MEDCoupling::DataArrayInt::getHashCode(), and MEDCoupling::DataArrayTemplate< T >::isAllocated().

void MEDCoupling1SGTUMesh::checkConsistencyLight ( ) const
virtual
void MEDCoupling1SGTUMesh::getNodeIdsOfCell ( int  cellId,
std::vector< int > &  conn 
) const
virtual
MEDCouplingMesh * MEDCoupling1SGTUMesh::mergeMyselfWith ( const MEDCouplingMesh other) const
virtual
DataArrayInt * MEDCoupling1SGTUMesh::simplexize ( int  policy)
virtual
void MEDCoupling1SGTUMesh::shallowCopyConnectivityFrom ( const MEDCouplingPointSet other)
virtual
MEDCouplingPointSet * MEDCoupling1SGTUMesh::mergeMyselfWithOnSameCoords ( const MEDCouplingPointSet other) const
virtual
void MEDCoupling1SGTUMesh::computeNodeIdsAlg ( std::vector< bool > &  nodeIdsInUse) const
virtual
void MEDCoupling1SGTUMesh::checkFullyDefined ( ) const
virtual
bool MEDCoupling1SGTUMesh::isEmptyMesh ( const std::vector< int > &  tinyInfo) const
virtual

First step of unserialization process.

Implements MEDCoupling::MEDCouplingPointSet.

DataArrayInt * MEDCoupling1SGTUMesh::computeFetchedNodeIds ( ) const
virtual

This method returns all node ids used in this. The data array returned has to be dealt by the caller. The returned node ids are sortes ascendingly. This method is closed to MEDCoupling1SGTUMesh::getNodeIdsInUse except the format of returned DataArrayInt instance.

Returns
a newly allocated DataArrayInt sorted ascendingly of fetched node ids.
See Also
MEDCoupling1SGTUMesh::getNodeIdsInUse, areAllNodesFetched

Implements MEDCoupling::MEDCouplingPointSet.

References MEDCoupling::DataArrayTemplate< T >::alloc(), checkConsistencyOfConnectivity(), computeNodeIdsAlg(), MEDCoupling::MEDCouplingPointSet::getNumberOfNodes(), MEDCoupling::DataArrayTemplate< T >::getPointer(), MEDCoupling::DataArrayInt::New(), and MEDCoupling::MCAuto< T >::retn().

DataArrayInt * MEDCoupling1SGTUMesh::getNodeIdsInUse ( int &  nbrOfNodesInUse) const
virtual

Finds nodes not used in any cell and returns an array giving a new id to every node by excluding the unused nodes, for which the array holds -1. The result array is a mapping in "Old to New" mode.

Parameters
[out]nbrOfNodesInUse- number of node ids present in the nodal connectivity.
Returns
DataArrayInt * - a new instance of DataArrayInt. Its length is this->getNumberOfNodes(). It holds for each node of this mesh either -1 if the node is unused or a new id else. The caller is to delete this array using decrRef() as it is no more needed.
Exceptions
Ifthe coordinates array is not set.
Ifthe nodal connectivity of cells is not defined.
Ifthe nodal connectivity includes an invalid id.
See Also
MEDCoupling1SGTUMesh::computeFetchedNodeIds, areAllNodesFetched

Implements MEDCoupling::MEDCouplingPointSet.

References MEDCoupling::DataArrayTemplate< T >::alloc(), getNumberOfCells(), MEDCoupling::MEDCouplingPointSet::getNumberOfNodes(), getNumberOfNodesPerCell(), MEDCoupling::DataArrayTemplate< T >::getPointer(), MEDCoupling::DataArrayInt::New(), and MEDCoupling::MCAuto< T >::retn().

void MEDCoupling1SGTUMesh::renumberNodesWithOffsetInConn ( int  offset)
virtual

This method renumbers only nodal connectivity in this. The renumbering is only an offset applied. So this method is a specialization of renumberNodesInConn. WARNING, this method does not check that the resulting node ids in the nodal connectivity is in a valid range !

Parameters
[in]offset- specifies the offset to be applied on each element of connectivity.
See Also
renumberNodesInConn

Implements MEDCoupling::MEDCouplingPointSet.

References getNumberOfCells(), and updateTime().

void MEDCoupling1SGTUMesh::renumberNodesInConn ( const INTERP_KERNEL::HashMap< int, int > &  newNodeNumbersO2N)
virtual

Same than renumberNodesInConn(const int *) except that here the format of old-to-new traducer is using map instead of array. This method is dedicated for renumbering from a big set of nodes the a tiny set of nodes which is the case during extraction of a big mesh.

Implements MEDCoupling::MEDCouplingPointSet.

References getNumberOfCells(), and updateTime().

void MEDCoupling1SGTUMesh::renumberNodesInConn ( const int *  newNodeNumbersO2N)
virtual

Changes ids of nodes within the nodal connectivity arrays according to a permutation array in "Old to New" mode. The node coordinates array is not changed by this method. This method is a generalization of shiftNodeNumbersInConn().

Warning
This method performs no check of validity of new ids. Use it with care !
Parameters
[in]newNodeNumbersO2N- a permutation array, of length this->getNumberOfNodes(), in "Old to New" mode. See Array indexing and numbering for more info on renumbering modes.
Exceptions
Ifthe nodal connectivity of cells is not defined.

Implements MEDCoupling::MEDCouplingPointSet.

References getNumberOfCells(), MEDCoupling::MEDCouplingPointSet::getNumberOfNodes(), and updateTime().

void MEDCoupling1SGTUMesh::fillCellIdsToKeepFromNodeIds ( const int *  begin,
const int *  end,
bool  fullyIn,
DataArrayInt *&  cellIdsKeptArr 
) const
virtual

Keeps from this only cells which constituing point id are in the ids specified by [begin,end). The resulting cell ids are stored at the end of the 'cellIdsKept' parameter. Parameter fullyIn specifies if a cell that has part of its nodes in ids array is kept or not. If fullyIn is true only cells whose ids are fully contained in [begin,end) tab will be kept.

Parameters
[in]begininput start of array of node ids.
[in]endinput end of array of node ids.
[in]fullyIninput that specifies if all node ids must be in [begin,end) array to consider cell to be in.
[in,out]cellIdsKeptArrarray where all candidate cell ids are put at the end.

Implements MEDCoupling::MEDCouplingPointSet.

References MEDCoupling::DataArrayTemplate< T >::alloc(), getNumberOfCells(), getNumberOfNodesPerCell(), MEDCoupling::DataArrayInt::New(), MEDCoupling::DataArrayTemplate< T >::pushBackSilent(), and MEDCoupling::MCAuto< T >::retn().

int MEDCoupling1SGTUMesh::getNumberOfNodesInCell ( int  cellId) const
virtual
DataArrayDouble * MEDCoupling1SGTUMesh::getBoundingBoxForBBTree ( double  arcDetEps = 1e-12) const
virtual

This method aggregate the bbox of each cell and put it into bbox

Parameters
[in]arcDetEps- a parameter specifying in case of 2D quadratic polygon cell the detection limit between linear and arc circle. (By default 1e-12) For all other cases this input parameter is ignored.
Returns
DataArrayDouble * - newly created object (to be managed by the caller) this number of cells tuples and 2*spacedim components.
Exceptions
Ifthis is not fully set (coordinates and connectivity).
Ifa cell in this has no valid nodeId.

Implements MEDCoupling::MEDCouplingPointSet.

References MEDCoupling::MEDCouplingPointSet::_coords, MEDCoupling::DataArrayTemplate< T >::alloc(), MEDCoupling::DataArrayTemplate< T >::getConstPointer(), getNumberOfCells(), MEDCoupling::MEDCouplingPointSet::getNumberOfNodes(), getNumberOfNodesPerCell(), MEDCoupling::DataArrayTemplate< T >::getPointer(), MEDCoupling::MEDCouplingPointSet::getSpaceDimension(), MEDCoupling::DataArrayDouble::New(), and MEDCoupling::MCAuto< T >::retn().

void MEDCoupling1SGTUMesh::allocateCells ( int  nbOfCells = 0)
virtual

Allocates memory to store an estimation of the given number of cells. Closer is the estimation to the number of cells effectively inserted, less will be the needs to realloc. If the number of cells to be inserted is not known simply put 0 to this parameter. If a nodal connectivity previouly existed before the call of this method, it will be reset.

Parameters
[in]nbOfCells- estimation of the number of cell this mesh will contain.

Implements MEDCoupling::MEDCoupling1GTUMesh.

References MEDCoupling::TimeLabel::declareAsNew(), getNumberOfNodesPerCell(), and MEDCoupling::DataArrayInt::New().

void MEDCoupling1SGTUMesh::insertNextCell ( const int *  nodalConnOfCellBg,
const int *  nodalConnOfCellEnd 
)
virtual

Appends at the end of this a cell having nodal connectivity array defined in [ nodalConnOfCellBg, nodalConnOfCellEnd ).

Parameters
[in]nodalConnOfCellBg- the begin (included) of nodal connectivity of the cell to add.
[in]nodalConnOfCellEnd- the end (excluded) of nodal connectivity of the cell to add.
Exceptions
Ifthe length of the input nodal connectivity array of the cell to add is not equal to number of nodes per cell relative to the unique geometric type attached to this. If the nodal connectivity array in this is null (call MEDCoupling1SGTUMesh::allocateCells before).

Implements MEDCoupling::MEDCoupling1GTUMesh.

References getNumberOfNodesPerCell(), and MEDCoupling::DataArrayTemplate< T >::pushBackValsSilent().

DataArrayInt * MEDCoupling1SGTUMesh::getNodalConnectivity ( ) const
virtual
Returns
DataArrayInt * - the internal reference to the nodal connectivity. The caller is not reponsible to deallocate it.

Implements MEDCoupling::MEDCoupling1GTUMesh.

Referenced by explodeEachHexa8To6Quad4(), shallowCopyConnectivityFrom(), and sortHexa8EachOther().

MEDCoupling1SGTUMesh * MEDCoupling1SGTUMesh::Merge1SGTUMeshesOnSameCoords ( std::vector< const MEDCoupling1SGTUMesh * > &  a)
static
Exceptions
Ifpresence of a null instance in the input vector a.
Ifa is empty

References MEDCoupling::DataArrayInt::Aggregate(), MEDCoupling::MCAuto< T >::retn(), and MEDCoupling::MEDCouplingPointSet::setCoords().

Referenced by mergeMyselfWithOnSameCoords().

MEDCoupling1GTUMesh * MEDCoupling1SGTUMesh::computeDualMesh ( ) const

This method builds the dual mesh of this and returns it.

Returns
MEDCoupling1SGTUMesh * - newly object created to be managed by the caller.
Exceptions
Ifthis is not a mesh containing only simplex cells.
Ifthis is not correctly allocated (coordinates and connectivities have to be correctly set !).
Ifat least one node in this is orphan (without any simplex cell lying on it !)

References MEDCoupling::MEDCoupling1GTUMesh::getCellModel(), and MEDCoupling::MEDCoupling1GTUMesh::getMeshDimension().

DataArrayInt * MEDCoupling1SGTUMesh::sortHexa8EachOther ( )

This method expects the this contains NORM_HEXA8 cells only. This method will sort each cells in this so that their numbering was homogeneous. If it succeeds the result of MEDCouplingUMesh::tetrahedrize will return a conform mesh.

Returns
DataArrayInt * - a newly allocated array (to be managed by the caller) containing renumbered cell ids.
Exceptions
Ifthis is not a mesh containing only NORM_HEXA8 cells.
Ifthis is not properly allocated.
See Also
MEDCouplingUMesh::tetrahedrize, MEDCouplingUMesh::simplexize.

References MEDCoupling::DataArrayTemplate< T >::alloc(), MEDCoupling::DataArrayTemplate< T >::begin(), buildUnstructured(), MEDCoupling::TimeLabel::declareAsNew(), MEDCoupling::DataArrayTemplate< T >::empty(), MEDCoupling::DataArrayTemplate< T >::end(), explodeEachHexa8To6Quad4(), getNodalConnectivity(), getNumberOfCells(), MEDCoupling::DataArrayTemplate< T >::getNumberOfTuples(), MEDCoupling::DataArrayTemplate< T >::getPointer(), HEXA8_FACE_PAIRS, MEDCoupling::DataArrayInt::New(), MEDCoupling::DataArrayTemplate< T >::pushBackSilent(), and MEDCoupling::MCAuto< T >::retn().

MEDCoupling1SGTUMesh * MEDCoupling1SGTUMesh::explodeEachHexa8To6Quad4 ( ) const

This method explode each NORM_HEXA8 cells in this into 6 NORM_QUAD4 cells and put the result into the MEDCoupling1SGTUMesh returned instance.

Returns
MEDCoupling1SGTUMesh * - a newly allocated instances (to be managed by the caller) storing the result of the explosion.
Exceptions
Ifthis is not a mesh containing only NORM_HEXA8 cells.
Ifthis is not properly allocated.

References MEDCoupling::DataArrayTemplate< T >::alloc(), MEDCoupling::MEDCoupling1GTUMesh::getCellModel(), MEDCoupling::MEDCouplingPointSet::getCoords(), MEDCoupling::MEDCouplingMesh::getName(), getNodalConnectivity(), getNumberOfCells(), MEDCoupling::DataArrayTemplate< T >::getPointer(), New(), MEDCoupling::DataArrayInt::New(), INTERP_KERNEL::NORM_HEXA8, INTERP_KERNEL::NORM_QUAD4, MEDCoupling::MCAuto< T >::retn(), MEDCoupling::MEDCouplingPointSet::setCoords(), and setNodalConnectivity().

Referenced by sortHexa8EachOther().

MEDCouplingCMesh * MEDCoupling1SGTUMesh::structurizeMe ( DataArrayInt *&  cellPerm,
DataArrayInt *&  nodePerm,
double  eps = 1e-12 
) const

This method starts from an unstructured mesh that hides in reality a cartesian mesh. If it is not the case, an exception will be thrown. This method returns three objects : The cartesian mesh geometrically equivalent to this (within a precision of eps) and a permutation of cells and a permutation of nodes.

  • this[cellPerm[i]]=ret[i]
Parameters
[out]cellPermthe permutation array of size this->getNumberOfCells()
[out]nodePermthe permutation array of size this->getNumberOfNodes()
Returns
MEDCouplingCMesh * - a newly allocated mesh that is the result of the structurization of this.

References MEDCoupling::MEDCouplingStructuredMesh::buildUnstructured(), buildUnstructured(), checkConsistencyLight(), MEDCoupling::MEDCouplingMesh::copyTinyInfoFrom(), MEDCoupling::MEDCoupling1GTUMesh::getCellModelEnum(), MEDCoupling::MEDCouplingPointSet::getCoords(), MEDCoupling::DataArrayDouble::getDifferentValues(), MEDCoupling::MEDCouplingStructuredMesh::GetGeoTypeGivenMeshDimension(), MEDCoupling::MEDCoupling1GTUMesh::getMeshDimension(), MEDCoupling::MEDCouplingPointSet::getNumberOfNodes(), MEDCoupling::MEDCouplingStructuredMesh::getNumberOfNodes(), MEDCoupling::MEDCouplingPointSet::getSpaceDimension(), MEDCoupling::MEDCouplingCMesh::New(), MEDCoupling::MCAuto< T >::retn(), MEDCoupling::MEDCouplingCMesh::setCoordsAt(), and MEDCoupling::DataArrayTemplate< T >::sort().

void MEDCoupling1SGTUMesh::resizeForUnserialization ( const std::vector< int > &  tinyInfo,
DataArrayInt a1,
DataArrayDouble a2,
std::vector< std::string > &  littleStrings 
) const
virtual

Member Data Documentation

const int MEDCoupling1SGTUMesh::HEXA8_FACE_PAIRS ={0,1,2,4,3,5}
static

Referenced by sortHexa8EachOther().