Public Member Functions | |
MCAuto< MEDCouplingFieldDiscretization > | aggregate (std::vector< const MEDCouplingFieldDiscretization * > &fds) const override |
void | checkCompatibilityWithNature (NatureOfField nat) const override |
MEDCouplingFieldDiscretization * | clone () const override |
DataArrayDouble * | computeEvaluationMatrixOnGivenPts (const MEDCouplingMesh *mesh, const double *loc, mcIdType nbOfTargetPoints, mcIdType &nbCols) const |
DataArrayDouble * | computeInverseMatrix (const MEDCouplingMesh *mesh, mcIdType &isDrift, mcIdType &matSz) const |
DataArrayDouble * | computeMatrix (const MEDCouplingMesh *mesh, mcIdType &isDrift, mcIdType &matSz) const |
DataArrayDouble * | computeVectorOfCoefficients (const MEDCouplingMesh *mesh, const DataArrayDouble *arr, mcIdType &isDrift) const |
std::string | getClassName () const override |
TypeOfField | getEnum () const |
MEDCouplingFieldDouble * | getMeasureField (const MEDCouplingMesh *mesh, bool isAbs) const override |
const char * | getRepr () const |
std::string | getStringRepr () const |
void | getValueOn (const DataArrayDouble *arr, const MEDCouplingMesh *mesh, const double *loc, double *res) const override |
DataArrayDouble * | getValueOnMulti (const DataArrayDouble *arr, const MEDCouplingMesh *mesh, const double *loc, mcIdType nbOfPoints) const override |
bool | isEqualIfNotWhy (const MEDCouplingFieldDiscretization *other, double eps, std::string &reason) const override |
void | operateOnDenseMatrix (int spaceDimension, mcIdType nbOfElems, double *matrixPtr) const |
DataArrayDouble * | performDrift (const DataArrayDouble *matr, const DataArrayDouble *arr, mcIdType &delta) const |
void | reprQuickOverview (std::ostream &stream) const |
Public Member Functions inherited from MEDCoupling::MEDCouplingFieldDiscretizationOnNodes | |
MEDCouplingMesh * | buildSubMeshData (const MEDCouplingMesh *mesh, const mcIdType *start, const mcIdType *end, DataArrayIdType *&di) const |
MEDCouplingMesh * | buildSubMeshDataRange (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 | 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 |
DataArrayDouble * | getLocalizationOfDiscValues (const MEDCouplingMesh *mesh) const |
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 |
void | getValueOnPos (const DataArrayDouble *arr, const MEDCouplingMesh *mesh, mcIdType i, mcIdType j, mcIdType k, double *res) const |
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 |
Public Member Functions inherited from MEDCoupling::MEDCouplingFieldDiscretization | |
virtual void | checkForUnserialization (const std::vector< mcIdType > &tinyInfo, const DataArrayIdType *arr) |
virtual void | clearGaussLocalizations () |
virtual MEDCouplingFieldDiscretization * | clonePart (const mcIdType *startCellIds, const mcIdType *endCellIds) const |
virtual MEDCouplingFieldDiscretization * | clonePartRange (mcIdType beginCellIds, mcIdType endCellIds, mcIdType stepCellIds) const |
virtual MEDCouplingFieldDiscretization * | deepCopy () 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 MEDCouplingGaussLocalization & | getGaussLocalization (mcIdType locId) |
virtual const MEDCouplingGaussLocalization & | getGaussLocalization (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 |
RefCountObjectOnly & | operator= (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 |
TimeLabel & | operator= (const TimeLabel &other) |
TimeLabel (const TimeLabel &other)=default | |
Static Public Member Functions | |
static void | OperateOnDenseMatrixH2Ln (mcIdType nbOfElems, double *matrixPtr) |
static void | OperateOnDenseMatrixH3 (mcIdType nbOfElems, double *matrixPtr) |
static DataArrayDouble * | PerformDriftOfVec (const DataArrayDouble *arr, mcIdType isDrift) |
static DataArrayDouble * | PerformDriftRect (const DataArrayDouble *matr, const DataArrayDouble *arr, mcIdType &delta) |
Static Public Member Functions inherited from MEDCoupling::MEDCouplingFieldDiscretization | |
static TypeOfField | GetTypeOfFieldFromStringRepr (const std::string &repr) |
static std::string | GetTypeOfFieldRepr (TypeOfField type) |
static MEDCouplingFieldDiscretization * | New (TypeOfField type) |
Static Public Member Functions inherited from MEDCoupling::BigMemoryObject | |
static std::size_t | GetHeapMemorySizeOfObjs (const std::vector< const BigMemoryObject * > &objs) |
Static Public Attributes | |
static const char | REPR [] ="KRIGING" |
static constexpr TypeOfField | TYPE = ON_NODES_KR |
Additional Inherited Members | |
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< MEDCouplingFieldDiscretization > | EasyAggregate (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 |
|
virtual |
Implements MEDCoupling::MEDCouplingFieldDiscretization.
References TYPE.
|
overridevirtual |
Reimplemented from MEDCoupling::BigMemoryObject.
|
virtual |
Implements MEDCoupling::MEDCouplingFieldDiscretization.
References REPR.
|
overridevirtual |
This method is simply called by MEDCouplingFieldDiscretization::deepCopy. It performs the deep copy of this.
Implements MEDCoupling::MEDCouplingFieldDiscretization.
|
virtual |
Implements MEDCoupling::MEDCouplingFieldDiscretization.
References REPR.
|
overridevirtual |
Implements MEDCoupling::MEDCouplingFieldDiscretization.
|
overridevirtual |
Implements MEDCoupling::MEDCouplingFieldDiscretization.
|
overridevirtual |
Implements MEDCoupling::MEDCouplingFieldDiscretization.
|
overridevirtual |
Implements MEDCoupling::MEDCouplingFieldDiscretization.
References getValueOnMulti().
|
overridevirtual |
Implements MEDCoupling::MEDCouplingFieldDiscretization.
References MEDCoupling::DataArrayTemplate< T >::begin(), computeEvaluationMatrixOnGivenPts(), MEDCoupling::DataArray::getNumberOfComponents(), MEDCoupling::MEDCouplingFieldDiscretizationOnNodes::getNumberOfMeshPlaces(), MEDCoupling::DataArrayTemplate< T >::getNumberOfTuples(), MEDCoupling::DataArrayTemplate< T >::isAllocated(), and MEDCoupling::DataArrayDouble::New().
Referenced by getValueOn().
|
virtual |
Implements MEDCoupling::MEDCouplingFieldDiscretization.
|
overridevirtual |
Implements MEDCoupling::MEDCouplingFieldDiscretization.
DataArrayDouble * MEDCouplingFieldDiscretizationKriging::computeEvaluationMatrixOnGivenPts | ( | const MEDCouplingMesh * | mesh, |
const double * | loc, | ||
mcIdType | nbOfTargetPoints, | ||
mcIdType & | nbCols | ||
) | const |
Returns the matrix of size nbRows = nbOfTargetPoints and nbCols = nbCols. This matrix is useful if
References computeInverseMatrix(), MEDCoupling::CPP_DEALLOC, MEDCoupling::MEDCouplingFieldDiscretizationOnNodes::getLocalizationOfDiscValues(), MEDCoupling::MEDCouplingMesh::getSpaceDimension(), MEDCoupling::DataArrayDouble::New(), and operateOnDenseMatrix().
Referenced by getValueOnMulti().
DataArrayDouble * MEDCouplingFieldDiscretizationKriging::computeInverseMatrix | ( | const MEDCouplingMesh * | mesh, |
mcIdType & | isDrift, | ||
mcIdType & | matSz | ||
) | const |
This method returns the square matrix of size matSz that is the inverse of the kriging matrix. The returned matrix can returned all the coeffs of kriging when multiplied by the vector of values attached to each point.
[out] | isDrift | return if drift coefficients are present in the returned vector of coefficients. If different from 0 there is presence of drift coefficients. |
[out] | matSz | the size of returned square matrix |
References computeMatrix(), and MEDCoupling::DataArrayDouble::New().
Referenced by computeEvaluationMatrixOnGivenPts(), and computeVectorOfCoefficients().
DataArrayDouble * MEDCouplingFieldDiscretizationKriging::computeMatrix | ( | const MEDCouplingMesh * | mesh, |
mcIdType & | isDrift, | ||
mcIdType & | matSz | ||
) | const |
This method computes the kriging matrix.
References MEDCoupling::MEDCouplingFieldDiscretizationOnNodes::getLocalizationOfDiscValues(), MEDCoupling::MEDCouplingMesh::getSpaceDimension(), operateOnDenseMatrix(), and performDrift().
Referenced by computeInverseMatrix().
DataArrayDouble * MEDCouplingFieldDiscretizationKriging::computeVectorOfCoefficients | ( | const MEDCouplingMesh * | mesh, |
const DataArrayDouble * | arr, | ||
mcIdType & | isDrift | ||
) | const |
This method computes coefficients to apply to each representing points of mesh, that is to say the nodes of mesh given a field array arr whose number of tuples should be equal to the number of representing points in mesh.
[in] | mesh | is the sources of nodes on which kriging will be done regarding the parameters and the value of this->getSpaceDimension() |
[in] | arr | input field DataArrayDouble whose number of tuples must be equal to the number of nodes in mesh |
[out] | isDrift | return if drift coefficients are present in the returned vector of coefficients. If different from 0 there is presence of drift coefficients. Whatever the value of isDrift the number of tuples of returned DataArrayDouble will be equal to arr->getNumberOfTuples() + isDrift. |
References computeInverseMatrix(), MEDCoupling::DataArrayDouble::New(), and PerformDriftOfVec().
void MEDCouplingFieldDiscretizationKriging::operateOnDenseMatrix | ( | int | spaceDimension, |
mcIdType | nbOfElems, | ||
double * | matrixPtr | ||
) | const |
Apply \f f(x) on each element x in matrixPtr. matrixPtr is expected to be a dense matrix represented by a chunck of memory of size at least equal to nbOfElems.
[in] | spaceDimension | space dimension of the input mesh on which the Kriging has to be performed |
[in] | nbOfElems | is the result of the product of nb of rows and the nb of columns of matrix matrixPtr |
[in,out] | matrixPtr | is the dense matrix whose on each values the operation will be applied |
References OperateOnDenseMatrixH2Ln(), and OperateOnDenseMatrixH3().
Referenced by computeEvaluationMatrixOnGivenPts(), and computeMatrix().
DataArrayDouble * MEDCouplingFieldDiscretizationKriging::performDrift | ( | const DataArrayDouble * | matr, |
const DataArrayDouble * | arr, | ||
mcIdType & | delta | ||
) | const |
Starting from a square matrix matr, this method returns a newly allocated dense square matrix whose matr is included in returned matrix in the top left corner, and in the remaining returned matrix the parameters to take into account about the kriging drift. For the moment only linear srift is implemented.
[in] | arr | the position of points were input mesh geometry is considered for Kriging |
[in] | matr | input matrix whose drift part will be added |
[out] | delta | the difference between the size of the output matrix and the input matrix matr. |
References MEDCoupling::DataArrayTemplate< T >::getConstPointer(), MEDCoupling::DataArray::getNumberOfComponents(), MEDCoupling::DataArrayTemplate< T >::getNumberOfTuples(), MEDCoupling::DataArrayDouble::New(), and MEDCoupling::DataArrayTemplateClassic< T >::toNoInterlace().
Referenced by computeMatrix().
|
static |
Referenced by operateOnDenseMatrix().
|
static |
Referenced by operateOnDenseMatrix().
|
static |
Performs a drift to the rectangular input matrix matr. This method generate a dense matrix starting from an input dense matrix matr and input array arr.
[in] | matr | The rectangular dense matrix (with only one component). The number of rows of matr must be equal to the number of tuples of arr |
[in] | arr | The array of coords to be appended in the input dense matrix matr. Typically arr is an array of coordinates. |
[out] | delta | the delta of number of columns between returned dense matrix and input dense matrix matr. delta is equal to number of components of arr + 1. |
References MEDCoupling::DataArrayTemplate< T >::begin(), MEDCoupling::DataArray::getNumberOfComponents(), MEDCoupling::DataArrayTemplate< T >::getNumberOfTuples(), MEDCoupling::DataArrayTemplate< T >::isAllocated(), and MEDCoupling::DataArrayDouble::New().
|
static |
References MEDCoupling::DataArrayTemplate< T >::begin(), MEDCoupling::DataArrayTemplate< T >::end(), MEDCoupling::DataArray::getNumberOfComponents(), MEDCoupling::DataArrayTemplate< T >::getNumberOfTuples(), MEDCoupling::DataArrayTemplate< T >::isAllocated(), and MEDCoupling::DataArrayDouble::New().
Referenced by computeVectorOfCoefficients().
|
static |
|
staticconstexpr |