Version: 9.14.0
MEDCoupling::MEDCouplingFieldDiscretizationP0 Class Reference
Inheritance diagram for MEDCoupling::MEDCouplingFieldDiscretizationP0:
Collaboration diagram for MEDCoupling::MEDCouplingFieldDiscretizationP0:

Public Member Functions

MCAuto< MEDCouplingFieldDiscretizationaggregate (std::vector< const MEDCouplingFieldDiscretization * > &fds) const override
 
MEDCouplingMeshbuildSubMeshData (const MEDCouplingMesh *mesh, const mcIdType *start, const mcIdType *end, DataArrayIdType *&di) const
 
MEDCouplingMeshbuildSubMeshDataRange (const MEDCouplingMesh *mesh, mcIdType beginCellIds, mcIdType endCellIds, mcIdType stepCellIds, mcIdType &beginOut, mcIdType &endOut, mcIdType &stepOut, DataArrayIdType *&di) const
 
void checkCoherencyBetween (const MEDCouplingMesh *mesh, const DataArray *da) const
 
void checkCompatibilityWithNature (NatureOfField nat) const override
 
MEDCouplingFieldDiscretizationclone () const override
 
void computeMeshRestrictionFromTupleIds (const MEDCouplingMesh *mesh, const mcIdType *tupleIdsBg, const mcIdType *tupleIdsEnd, DataArrayIdType *&cellRestriction, DataArrayIdType *&trueTupleRestriction) const
 
DataArrayIdType * computeTupleIdsToSelectFromCellIds (const MEDCouplingMesh *mesh, const mcIdType *startCellIds, const mcIdType *endCellIds) const
 
std::string getClassName () const override
 
TypeOfField getEnum () const
 
DataArrayDoublegetLocalizationOfDiscValues (const MEDCouplingMesh *mesh) const
 
MEDCouplingFieldDoublegetMeasureField (const MEDCouplingMesh *mesh, bool isAbs) const override
 
mcIdType getNumberOfMeshPlaces (const MEDCouplingMesh *mesh) const
 
mcIdType getNumberOfTuples (const MEDCouplingMesh *mesh) const
 
mcIdType getNumberOfTuplesExpectedRegardingCode (const std::vector< mcIdType > &code, const std::vector< const DataArrayIdType * > &idsPerType) const
 
DataArrayIdType * getOffsetArr (const MEDCouplingMesh *mesh) const
 
const char * getRepr () const
 
std::string getStringRepr () const
 
void getValueOn (const DataArrayDouble *arr, const MEDCouplingMesh *mesh, const double *loc, double *res) const override
 
DataArrayDoublegetValueOnMulti (const DataArrayDouble *arr, const MEDCouplingMesh *mesh, const double *loc, mcIdType nbOfPoints) const override
 
void getValueOnPos (const DataArrayDouble *arr, const MEDCouplingMesh *mesh, mcIdType i, mcIdType j, mcIdType k, double *res) const
 
bool isEqualIfNotWhy (const MEDCouplingFieldDiscretization *other, double eps, std::string &reason) const override
 
void renumberArraysForCell (const MEDCouplingMesh *mesh, const std::vector< DataArray * > &arrays, const mcIdType *old2NewBg, bool check)
 
void renumberValuesOnCells (double epsOnVals, const MEDCouplingMesh *mesh, const mcIdType *old2New, mcIdType newSz, DataArrayDouble *arr) const
 
void renumberValuesOnCellsR (const MEDCouplingMesh *mesh, const mcIdType *new2old, mcIdType newSz, DataArrayDouble *arr) const
 
void renumberValuesOnNodes (double epsOnVals, const mcIdType *old2New, mcIdType newNbOfNodes, DataArrayDouble *arr) const
 
void reprQuickOverview (std::ostream &stream) const
 
- Public Member Functions inherited from MEDCoupling::MEDCouplingFieldDiscretization
virtual void checkForUnserialization (const std::vector< mcIdType > &tinyInfo, const DataArrayIdType *arr)
 
virtual void clearGaussLocalizations ()
 
virtual MEDCouplingFieldDiscretizationclonePart (const mcIdType *startCellIds, const mcIdType *endCellIds) const
 
virtual MEDCouplingFieldDiscretizationclonePartRange (mcIdType beginCellIds, mcIdType endCellIds, mcIdType stepCellIds) const
 
virtual MEDCouplingFieldDiscretizationdeepCopy () const
 
virtual void finishUnserialization (const std::vector< double > &tinyInfo)
 
virtual void getCellIdsHavingGaussLocalization (mcIdType locId, std::vector< mcIdType > &cellIds) const
 
std::vector< const BigMemoryObject * > getDirectChildrenWithNull () const
 
virtual MEDCouplingGaussLocalizationgetGaussLocalization (mcIdType locId)
 
virtual const MEDCouplingGaussLocalizationgetGaussLocalization (mcIdType locId) const
 
virtual mcIdType getGaussLocalizationIdOfOneCell (mcIdType cellId) const
 
virtual mcIdType getGaussLocalizationIdOfOneType (INTERP_KERNEL::NormalizedCellType type) const
 
virtual std::set< mcIdType > getGaussLocalizationIdsOfOneType (INTERP_KERNEL::NormalizedCellType type) const
 
std::size_t getHeapMemorySizeWithoutChildren () const
 
virtual double getIJK (const MEDCouplingMesh *mesh, const DataArrayDouble *da, mcIdType cellId, mcIdType nodeIdInCell, int compoId) const
 
virtual mcIdType getNbOfGaussLocalization () const
 
double getPrecision () const
 
virtual void getSerializationIntArray (DataArrayIdType *&arr) const
 
virtual void getTinySerializationDbleInformation (std::vector< double > &tinyInfo) const
 
virtual void getTinySerializationIntInformation (std::vector< mcIdType > &tinyInfo) const
 
virtual void integral (const MEDCouplingMesh *mesh, const DataArrayDouble *arr, bool isWAbs, double *res) const
 
virtual bool isEqual (const MEDCouplingFieldDiscretization *other, double eps) const
 
virtual bool isEqualWithoutConsideringStr (const MEDCouplingFieldDiscretization *other, double eps) const
 
virtual void normL1 (const MEDCouplingMesh *mesh, const DataArrayDouble *arr, double *res) const
 
virtual void normL2 (const MEDCouplingMesh *mesh, const DataArrayDouble *arr, double *res) const
 
virtual void renumberCells (const mcIdType *old2NewBg, bool check=true)
 
virtual void resizeForUnserialization (const std::vector< mcIdType > &tinyInfo, DataArrayIdType *&arr)
 
virtual void setGaussLocalizationOnCells (const MEDCouplingMesh *m, const mcIdType *begin, const mcIdType *end, const std::vector< double > &refCoo, const std::vector< double > &gsCoo, const std::vector< double > &wg)
 
virtual void setGaussLocalizationOnType (const MEDCouplingMesh *m, INTERP_KERNEL::NormalizedCellType type, const std::vector< double > &refCoo, const std::vector< double > &gsCoo, const std::vector< double > &wg)
 
void setPrecision (double val)
 
void updateTime () const
 
virtual ~MEDCouplingFieldDiscretization ()
 
- Public Member Functions inherited from MEDCoupling::RefCountObjectOnly
bool decrRef () const
 
int getRCValue () const
 
void incrRef () const
 
RefCountObjectOnlyoperator= (const RefCountObjectOnly &other)
 
- Public Member Functions inherited from MEDCoupling::BigMemoryObject
std::string debugHeapMemorySize () const
 
std::vector< const BigMemoryObject * > getAllTheProgeny () const
 
std::vector< const BigMemoryObject * > getDirectChildren () const
 
std::size_t getHeapMemorySize () const
 
std::string getHeapMemorySizeStr () const
 
bool isObjectInTheProgeny (const BigMemoryObject *obj) const
 
virtual ~BigMemoryObject ()
 
- Public Member Functions inherited from MEDCoupling::TimeLabel
void declareAsNew () const
 
std::size_t getTimeOfThis () const
 
TimeLabeloperator= (const TimeLabel &other)
 
 TimeLabel (const TimeLabel &other)=default
 

Static Public Attributes

static const char REPR [] = "P0"
 
static constexpr TypeOfField TYPE = ON_CELLS
 

Additional Inherited Members

- Static Public Member Functions inherited from MEDCoupling::MEDCouplingFieldDiscretization
static TypeOfField GetTypeOfFieldFromStringRepr (const std::string &repr)
 
static std::string GetTypeOfFieldRepr (TypeOfField type)
 
static MEDCouplingFieldDiscretizationNew (TypeOfField type)
 
- Static Public Member Functions inherited from MEDCoupling::BigMemoryObject
static std::size_t GetHeapMemorySizeOfObjs (const std::vector< const BigMemoryObject * > &objs)
 
- Protected Member Functions inherited from MEDCoupling::MEDCouplingFieldDiscretization
 MEDCouplingFieldDiscretization ()
 
- Protected Member Functions inherited from MEDCoupling::RefCountObject
 RefCountObject ()
 
 RefCountObject (const RefCountObject &other)
 
virtual ~RefCountObject ()
 
- Protected Member Functions inherited from MEDCoupling::RefCountObjectOnly
 RefCountObjectOnly ()
 
 RefCountObjectOnly (const RefCountObjectOnly &other)
 
virtual ~RefCountObjectOnly ()
 
- Protected Member Functions inherited from MEDCoupling::TimeLabel
void forceTimeOfThis (const TimeLabel &other) const
 
 TimeLabel ()
 
void updateTimeWith (const TimeLabel &other) const
 
virtual ~TimeLabel ()
 
- Static Protected Member Functions inherited from MEDCoupling::MEDCouplingFieldDiscretization
template<class FIELD_DISC >
static MCAuto< MEDCouplingFieldDiscretizationEasyAggregate (std::vector< const MEDCouplingFieldDiscretization * > &fds)
 
static void RenumberEntitiesFromN2OArr (const mcIdType *new2OldPtr, mcIdType new2OldSz, DataArrayDouble *arr, const std::string &msg)
 
static void RenumberEntitiesFromO2NArr (double epsOnVals, const mcIdType *old2NewPtr, mcIdType newNbOfEntity, DataArrayDouble *arr, const std::string &msg)
 
- Protected Attributes inherited from MEDCoupling::MEDCouplingFieldDiscretization
double _precision
 
- Static Protected Attributes inherited from MEDCoupling::MEDCouplingFieldDiscretization
static const double DFLT_PRECISION = 1.e-12
 

Member Function Documentation

◆ getEnum()

TypeOfField MEDCouplingFieldDiscretizationP0::getEnum ( ) const
virtual

◆ getClassName()

std::string MEDCoupling::MEDCouplingFieldDiscretizationP0::getClassName ( ) const
overridevirtual

Reimplemented from MEDCoupling::BigMemoryObject.

◆ clone()

MEDCouplingFieldDiscretization * MEDCouplingFieldDiscretizationP0::clone ( ) const
overridevirtual

This method is simply called by MEDCouplingFieldDiscretization::deepCopy. It performs the deep copy of this.

See also
MEDCouplingFieldDiscretization::deepCopy.

Implements MEDCoupling::MEDCouplingFieldDiscretization.

◆ getStringRepr()

std::string MEDCouplingFieldDiscretizationP0::getStringRepr ( ) const
virtual

◆ getRepr()

const char * MEDCouplingFieldDiscretizationP0::getRepr ( ) const
virtual

◆ isEqualIfNotWhy()

bool MEDCouplingFieldDiscretizationP0::isEqualIfNotWhy ( const MEDCouplingFieldDiscretization other,
double  eps,
std::string &  reason 
) const
overridevirtual

◆ getNumberOfTuplesExpectedRegardingCode()

mcIdType MEDCouplingFieldDiscretizationP0::getNumberOfTuplesExpectedRegardingCode ( const std::vector< mcIdType > &  code,
const std::vector< const DataArrayIdType * > &  idsPerType 
) const
virtual

This method returns the number of tuples regarding exclusively the input code without using a mesh in input. The input code coherency is also checked regarding spatial discretization of this. If an incoherency is detected, an exception will be thrown. If the input code is coherent, the number of tuples expected is returned. The number of tuples expected is equal to those to have a valid field lying on this and having a mesh fitting perfectly the input code (geometric type distribution).

Implements MEDCoupling::MEDCouplingFieldDiscretization.

◆ getNumberOfTuples()

mcIdType MEDCouplingFieldDiscretizationP0::getNumberOfTuples ( const MEDCouplingMesh mesh) const
virtual

◆ getNumberOfMeshPlaces()

mcIdType MEDCouplingFieldDiscretizationP0::getNumberOfMeshPlaces ( const MEDCouplingMesh mesh) const
virtual

◆ getOffsetArr()

DataArrayIdType * MEDCouplingFieldDiscretizationP0::getOffsetArr ( const MEDCouplingMesh mesh) const
virtual

◆ renumberArraysForCell()

void MEDCouplingFieldDiscretizationP0::renumberArraysForCell ( const MEDCouplingMesh mesh,
const std::vector< DataArray * > &  arrays,
const mcIdType *  old2NewBg,
bool  check 
)
virtual

◆ getLocalizationOfDiscValues()

DataArrayDouble * MEDCouplingFieldDiscretizationP0::getLocalizationOfDiscValues ( const MEDCouplingMesh mesh) const
virtual

◆ checkCompatibilityWithNature()

void MEDCouplingFieldDiscretizationP0::checkCompatibilityWithNature ( NatureOfField  nat) const
overridevirtual

◆ computeMeshRestrictionFromTupleIds()

void MEDCouplingFieldDiscretizationP0::computeMeshRestrictionFromTupleIds ( const MEDCouplingMesh mesh,
const mcIdType *  tupleIdsBg,
const mcIdType *  tupleIdsEnd,
DataArrayIdType *&  cellRestriction,
DataArrayIdType *&  trueTupleRestriction 
) const
virtual

◆ checkCoherencyBetween()

void MEDCouplingFieldDiscretizationP0::checkCoherencyBetween ( const MEDCouplingMesh mesh,
const DataArray da 
) const
virtual

◆ getMeasureField()

MEDCouplingFieldDouble * MEDCouplingFieldDiscretizationP0::getMeasureField ( const MEDCouplingMesh mesh,
bool  isAbs 
) const
overridevirtual

◆ getValueOn()

void MEDCouplingFieldDiscretizationP0::getValueOn ( const DataArrayDouble arr,
const MEDCouplingMesh mesh,
const double *  loc,
double *  res 
) const
overridevirtual

◆ getValueOnPos()

void MEDCouplingFieldDiscretizationP0::getValueOnPos ( const DataArrayDouble arr,
const MEDCouplingMesh mesh,
mcIdType  i,
mcIdType  j,
mcIdType  k,
double *  res 
) const
virtual

◆ getValueOnMulti()

◆ renumberValuesOnNodes()

void MEDCouplingFieldDiscretizationP0::renumberValuesOnNodes ( double  epsOnVals,
const mcIdType *  old2New,
mcIdType  newNbOfNodes,
DataArrayDouble arr 
) const
virtual

Nothing to do. It's not a bug.

Implements MEDCoupling::MEDCouplingFieldDiscretization.

◆ renumberValuesOnCells()

void MEDCouplingFieldDiscretizationP0::renumberValuesOnCells ( double  epsOnVals,
const MEDCouplingMesh mesh,
const mcIdType *  old2New,
mcIdType  newSz,
DataArrayDouble arr 
) const
virtual

◆ renumberValuesOnCellsR()

void MEDCouplingFieldDiscretizationP0::renumberValuesOnCellsR ( const MEDCouplingMesh mesh,
const mcIdType *  new2old,
mcIdType  newSz,
DataArrayDouble arr 
) const
virtual

◆ aggregate()

MCAuto< MEDCouplingFieldDiscretization > MEDCouplingFieldDiscretizationP0::aggregate ( std::vector< const MEDCouplingFieldDiscretization * > &  fds) const
overridevirtual

◆ buildSubMeshData()

MEDCouplingMesh * MEDCouplingFieldDiscretizationP0::buildSubMeshData ( const MEDCouplingMesh mesh,
const mcIdType *  start,
const mcIdType *  end,
DataArrayIdType *&  di 
) const
virtual

This method returns a submesh of 'mesh' instance constituting cell ids contained in array defined as an interval [start;end).

Parameters
diis an array returned that specifies entity ids (here cells ids) in mesh 'mesh' of entity in returned submesh. Example : The first cell id of returned mesh has the (*di)[0] id in 'mesh'
See also
MEDCouplingFieldDiscretizationP0::buildSubMeshDataRange

Implements MEDCoupling::MEDCouplingFieldDiscretization.

References MEDCoupling::MEDCouplingMesh::buildPart().

◆ buildSubMeshDataRange()

MEDCouplingMesh * MEDCouplingFieldDiscretizationP0::buildSubMeshDataRange ( const MEDCouplingMesh mesh,
mcIdType  beginCellIds,
mcIdType  endCellIds,
mcIdType  stepCellIds,
mcIdType &  beginOut,
mcIdType &  endOut,
mcIdType &  stepOut,
DataArrayIdType *&  di 
) const
virtual

This method is strictly equivalent to MEDCouplingFieldDiscretizationP0::buildSubMeshData except that it is optimized for input defined as a range of cell ids.

Parameters
[out]beginOutValid only if di is NULL
[out]endOutValid only if di is NULL
[out]stepOutValid only if di is NULL
[out]diis an array returned that specifies entity ids (nodes, cells, Gauss points... ) in array if no output range is foundable.
See also
MEDCouplingFieldDiscretizationP0::buildSubMeshData

Reimplemented from MEDCoupling::MEDCouplingFieldDiscretization.

References MEDCoupling::MEDCouplingMesh::buildPartRange().

◆ computeTupleIdsToSelectFromCellIds()

DataArrayIdType * MEDCouplingFieldDiscretizationP0::computeTupleIdsToSelectFromCellIds ( const MEDCouplingMesh mesh,
const mcIdType *  startCellIds,
const mcIdType *  endCellIds 
) const
virtual

This method returns a tuple ids selection from cell ids selection [start;end). This method is called by MEDCouplingFieldDiscretizationP0::buildSubMeshData to return parameter di. Here for P0 it's very simple !

Returns
a newly allocated array containing ids to select into the DataArrayDouble of the field.

Implements MEDCoupling::MEDCouplingFieldDiscretization.

◆ reprQuickOverview()

void MEDCouplingFieldDiscretizationP0::reprQuickOverview ( std::ostream &  stream) const
virtual

Member Data Documentation

◆ REPR

◆ TYPE