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

Public Member Functions

void createPatchesFromCriterionML (const std::vector< const INTERP_KERNEL::BoxSplittingOptions * > &bso, const DataArrayDouble *criterion, const std::vector< std::vector< int > > &factors, double eps)
 
MEDCouplingCartesianAMRMeshdeepCopy (MEDCouplingCartesianAMRMeshGen *father) const
 
void detachFromFather ()
 
int getAbsoluteLevel () const
 
int getAbsoluteLevelRelativeTo (const MEDCouplingCartesianAMRMeshGen *ref) const
 
const
MEDCouplingCartesianAMRMeshGen
getFather () const
 
const
MEDCouplingCartesianAMRMeshGen
getGodFather () const
 
std::vector< std::pair< int,
int > > 
positionRelativeToGodFather (std::vector< int > &st) const
 
std::vector
< MEDCouplingCartesianAMRPatchGen * > 
retrieveGridsAt (int absoluteLev) const
 
- Public Member Functions inherited from MEDCoupling::MEDCouplingCartesianAMRMeshGen
void addPatch (const std::vector< std::pair< int, int > > &bottomLeftTopRight, const std::vector< int > &factors)
 
MEDCouplingFieldDoublebuildCellFieldOnRecurseWithoutOverlapWithoutGhost (int ghostSz, const std::vector< const DataArrayDouble * > &recurseArrs) const
 
MEDCoupling1SGTUMeshbuildMeshFromPatchEnvelop () const
 
MEDCoupling1SGTUMeshbuildMeshOfDirectChildrenOnly () const
 
std::string buildPythonDumpOfThis () const
 
MEDCouplingUMeshbuildUnstructured () const
 
DataArrayDoublecreateCellFieldOnPatch (int patchId, const DataArrayDouble *cellFieldOnThis) const
 
void createPatchesFromCriterion (const INTERP_KERNEL::BoxSplittingOptions &bso, const std::vector< bool > &criterion, const std::vector< int > &factors)
 
void createPatchesFromCriterion (const INTERP_KERNEL::BoxSplittingOptions &bso, const DataArrayByte *criterion, const std::vector< int > &factors)
 
void createPatchesFromCriterion (const INTERP_KERNEL::BoxSplittingOptions &bso, const DataArrayDouble *criterion, const std::vector< int > &factors, double eps)
 
DataArrayDoubleextractGhostFrom (int ghostSz, const DataArrayDouble *arr) const
 
void fillCellFieldComingFromPatch (int patchId, const DataArrayDouble *cellFieldOnPatch, DataArrayDouble *cellFieldOnThis, bool isConservative=true) const
 
void fillCellFieldComingFromPatchGhost (int patchId, const DataArrayDouble *cellFieldOnPatch, DataArrayDouble *cellFieldOnThis, int ghostLev, bool isConservative=true) const
 
void fillCellFieldOnPatch (int patchId, const DataArrayDouble *cellFieldOnThis, DataArrayDouble *cellFieldOnPatch, bool isConservative=true) const
 
void fillCellFieldOnPatchGhost (int patchId, const DataArrayDouble *cellFieldOnThis, DataArrayDouble *cellFieldOnPatch, int ghostLev, bool isConservative=true) const
 
void fillCellFieldOnPatchGhostAdv (int patchId, const DataArrayDouble *cellFieldOnThis, int ghostLev, const std::vector< const DataArrayDouble * > &arrsOnPatches, bool isConservative=true) const
 
void fillCellFieldOnPatchOnlyGhostAdv (int patchId, int ghostLev, const std::vector< const DataArrayDouble * > &arrsOnPatches) const
 
void fillCellFieldOnPatchOnlyOnGhostZone (int patchId, const DataArrayDouble *cellFieldOnThis, DataArrayDouble *cellFieldOnPatch, int ghostLev) const
 
void fillCellFieldOnPatchOnlyOnGhostZoneWith (int ghostLev, const MEDCouplingCartesianAMRPatch *patchToBeModified, const MEDCouplingCartesianAMRPatch *neighborPatch, DataArrayDouble *cellFieldOnPatch, const DataArrayDouble *cellFieldNeighbor) const
 
DataArrayIntfindPatchesInTheNeighborhoodOf (int patchId, int ghostLev) const
 
const std::vector< int > & getFactors () const
 
const MEDCouplingIMeshgetImageMesh () const
 
int getMaxNumberOfLevelsRelativeToThis () const
 
const
MEDCouplingCartesianAMRMeshGen
getMeshAtPosition (const std::vector< int > &pos) const
 
int getNumberOfCellsAtCurrentLevel () const
 
int getNumberOfCellsAtCurrentLevelGhost (int ghostLev) const
 
int getNumberOfCellsRecursiveWithoutOverlap () const
 
int getNumberOfCellsRecursiveWithOverlap () const
 
int getNumberOfPatches () const
 
const
MEDCouplingCartesianAMRPatch * 
getPatch (int patchId) const
 
const
MEDCouplingCartesianAMRPatch * 
getPatchAtPosition (const std::vector< int > &pos) const
 
std::vector< const
MEDCouplingCartesianAMRPatch * > 
getPatches () const
 
int getPatchIdFromChildMesh (const MEDCouplingCartesianAMRMeshGen *mesh) const
 
std::vector< int > getPatchIdsInTheNeighborhoodOf (int patchId, int ghostLev) const
 
std::vector< int > getPositionRelativeTo (const MEDCouplingCartesianAMRMeshGen *ref) const
 
int getSpaceDimension () const
 
bool isPatchInNeighborhoodOf (int patchId1, int patchId2, int ghostLev) const
 
void removeAllPatches ()
 
void removePatch (int patchId)
 
void setFactors (const std::vector< int > &newFactors)
 
- Public Member Functions inherited from MEDCoupling::TimeLabel
void declareAsNew () const
 
std::size_t getTimeOfThis () const
 
TimeLabeloperator= (const TimeLabel &other)
 

Static Public Member Functions

static
MEDCouplingCartesianAMRMesh
New (const std::string &meshName, int spaceDim, const int *nodeStrctStart, const int *nodeStrctStop, const double *originStart, const double *originStop, const double *dxyzStart, const double *dxyzStop)
 
static
MEDCouplingCartesianAMRMesh
New (MEDCouplingIMesh *mesh)
 

Additional Inherited Members

- Protected Member Functions inherited from MEDCoupling::MEDCouplingCartesianAMRMeshGen
void checkFactorsAndIfNotSetAssign (const std::vector< int > &factors)
 
void checkPatchId (int patchId) const
 
void dumpPatchesOf (const std::string &varName, std::ostream &oss) const
 
std::vector< const
DataArrayDouble * > 
extractSubTreeFromGlobalFlatten (const MEDCouplingCartesianAMRMeshGen *head, const std::vector< const DataArrayDouble * > &all) const
 
std::size_t getHeapMemorySizeWithoutChildren () const
 
 MEDCouplingCartesianAMRMeshGen (const MEDCouplingCartesianAMRMeshGen &other)
 
 MEDCouplingCartesianAMRMeshGen (const std::string &meshName, int spaceDim, const int *nodeStrctStart, const int *nodeStrctStop, const double *originStart, const double *originStop, const double *dxyzStart, const double *dxyzStop)
 
 MEDCouplingCartesianAMRMeshGen (MEDCouplingIMesh *mesh)
 
void retrieveGridsAtInternal (int lev, std::vector< MCAuto< MEDCouplingCartesianAMRPatchGen > > &grids) const
 
void updateTime () const
 
- Static Protected Member Functions inherited from MEDCoupling::MEDCouplingCartesianAMRMeshGen
static int GetGhostLevelInFineRef (int ghostLev, const std::vector< int > &factors)
 
- Protected Attributes inherited from MEDCoupling::MEDCouplingCartesianAMRMeshGen
std::vector< int > _factors
 
MCAuto< MEDCouplingIMesh_mesh
 
std::vector< MCAuto
< MEDCouplingCartesianAMRPatch > > 
_patches
 

Member Function Documentation

MEDCouplingCartesianAMRMesh * MEDCouplingCartesianAMRMesh::New ( const std::string &  meshName,
int  spaceDim,
const int *  nodeStrctStart,
const int *  nodeStrctStop,
const double *  originStart,
const double *  originStop,
const double *  dxyzStart,
const double *  dxyzStop 
)
static
MEDCouplingCartesianAMRMesh * MEDCouplingCartesianAMRMesh::New ( MEDCouplingIMesh mesh)
static
const MEDCouplingCartesianAMRMeshGen * MEDCouplingCartesianAMRMesh::getFather ( ) const
virtual
const MEDCouplingCartesianAMRMeshGen * MEDCouplingCartesianAMRMesh::getGodFather ( ) const
virtual
int MEDCouplingCartesianAMRMesh::getAbsoluteLevel ( ) const
virtual
void MEDCouplingCartesianAMRMesh::detachFromFather ( )
virtual
std::vector< std::pair< int, int > > MEDCouplingCartesianAMRMesh::positionRelativeToGodFather ( std::vector< int > &  st) const
virtual
int MEDCouplingCartesianAMRMesh::getAbsoluteLevelRelativeTo ( const MEDCouplingCartesianAMRMeshGen ref) const
virtual
std::vector< MEDCouplingCartesianAMRPatchGen * > MEDCouplingCartesianAMRMesh::retrieveGridsAt ( int  absoluteLev) const
virtual

This method returns grids relative to god father to specified level absoluteLev.

Returns
std::vector<MEDCouplingCartesianAMRPatchGen *> - objects in vector are to be managed (decrRef) by the caller.

Reimplemented from MEDCoupling::MEDCouplingCartesianAMRMeshGen.

References MEDCoupling::MEDCouplingCartesianAMRMeshGen::retrieveGridsAtInternal().

Referenced by createPatchesFromCriterionML(), and MEDCoupling::MEDCouplingAMRAttribute::writeVTHB().

void MEDCouplingCartesianAMRMesh::createPatchesFromCriterionML ( const std::vector< const INTERP_KERNEL::BoxSplittingOptions * > &  bso,
const DataArrayDouble criterion,
const std::vector< std::vector< int > > &  factors,
double  eps 
)

This method creates a multi level patches split at once. This method calls as times as size of bso createPatchesFromCriterion. Size of bso and size of factors must be the same ! WARNING, after the call the number of levels in this is equal to bso.size() + 1 !

Parameters
[in]bso
[in]criterion
[in]factors
[in]eps- See DataArrayDouble::toVectorOfBool for more information about the semantic of eps.
See Also
createPatchesFromCriterion

References MEDCoupling::MEDCouplingAMRAttribute::alloc(), MEDCoupling::MEDCouplingCartesianAMRMeshGen::createPatchesFromCriterion(), MEDCoupling::DataArrayTemplate< T >::deepCopyFrom(), MEDCoupling::MEDCouplingAMRAttribute::getFieldOn(), MEDCoupling::RefCountObjectOnly::incrRef(), MEDCoupling::MEDCouplingAMRAttribute::New(), retrieveGridsAt(), and MEDCoupling::MEDCouplingAMRAttribute::synchronizeCoarseToFine().