#include <ShiftOpMatrix.hpp>
Public Member Functions | |
ShiftOpMatrix () | |
ShiftOpMatrix (const AMesh *amesh, const CovAniso *cova, const Db *dbout=nullptr, bool verbose=false) | |
ShiftOpMatrix (const MatrixSparse *S, const VectorDouble &TildeC, const VectorDouble &Lambda, const CovAniso *cova, bool verbose=false) | |
ShiftOpMatrix (const ShiftOpMatrix &shift) | |
ShiftOpMatrix & | operator= (const ShiftOpMatrix &shift) |
virtual | ~ShiftOpMatrix () |
void | normalizeLambdaBySills (const AMesh *mesh) override |
ICloneable interface. | |
int | _addToDest (const constvect inv, vect outv) const override |
int | initFromMesh (const AMesh *amesh, const CovAniso *cova, const Db *dbout=nullptr, bool flagAdvection=false, bool verbose=false) |
int | initGradFromMesh (const AMesh *amesh, const CovAniso *cova, bool verbose=false, double tol=EPSILON10) |
int | initFromCS (const MatrixSparse *S, const VectorDouble &TildeC, const VectorDouble &Lambda, const CovAniso *cova, bool verbose=false) |
int | getNDim () const |
int | getNCovAnisoGradParam () const |
void | prodTildeC (const VectorDouble &x, VectorDouble &y, const EPowerPT &power) const |
void | prodLambdaOnSqrtTildeC (const VectorDouble &inv, VectorDouble &outv, double puis=2) const |
double | getMaxEigenValue () const override |
MatrixSparse * | getS () const |
MatrixSparse * | getTildeCGrad (int iapex, int igparam) const |
MatrixSparse * | getSGrad (int iapex, int igparam) const |
const VectorDouble & | getTildeC () const |
const VectorDouble & | getLambdaGrads (int idim) const |
double | getLambdaGrad (int idim, int iapex) const |
int | getSGradAddress (int iapex, int igparam) const |
int | getLambdaGradSize () const |
Public Member Functions inherited from AShiftOp | |
AShiftOp (CovAniso *cova=nullptr, int napices=0) | |
AShiftOp (const AShiftOp &shift) | |
AShiftOp & | operator= (const AShiftOp &shift) |
virtual void | prodLambda (const VectorDouble &x, VectorDouble &y, const EPowerPT &power) const |
virtual | ~AShiftOp () |
const VectorDouble & | getLambdas () const |
virtual double | getLambda (int iapex) const |
int | getSize () const override |
virtual void | addProdLambda (const constvect x, vect y, const EPowerPT &power) const |
void | prodLambda (const constvect x, vect y, const EPowerPT &power) const |
void | prodLambda (const VectorDouble &x, vect y, const EPowerPT &power) const |
void | prodLambda (const constvect x, VectorDouble &y, const EPowerPT &power) const |
Public Member Functions inherited from ICloneable | |
ICloneable () | |
virtual | ~ICloneable () |
virtual ICloneable * | clone () const =0 |
Public Member Functions inherited from ALinearOpEigenCG< AShiftOp > | |
virtual | ~ALinearOpEigenCG () |
Eigen::Index | rows () const |
Eigen::Index | cols () const |
Eigen::Product< AShiftOp, Rhs, Eigen::AliasFreeProduct > | operator* (const Eigen::MatrixBase< Rhs > &x) const |
Public Member Functions inherited from ALinearOp | |
ALinearOp () | |
ALinearOp (const ALinearOp &op)=delete | |
virtual | ~ALinearOp () |
int | evalDirect (const VectorDouble &inv, VectorDouble &outv) const |
VectorDouble | evalDirect (const VectorDouble &in) const |
virtual void | multiplyByValueAndAddDiagonal (double v1=1., double v2=0.) |
virtual void | resetModif () |
void | setUseFactor (bool usefactor) |
int | evalDirect (constvect inv, vect outv) const |
int | addToDest (const constvect inv, vect outv) const |
int | addToDest (const Eigen::VectorXd &inv, Eigen::VectorXd &outv) const |
Static Public Member Functions | |
static ShiftOpMatrix * | create (const AMesh *amesh, const CovAniso *cova, const Db *dbout=nullptr, bool verbose=false) |
static ShiftOpMatrix * | createFromSparse (const MatrixSparse *S, const VectorDouble &TildeC, const VectorDouble &Lambda, const CovAniso *cova, bool verbose=false) |
Static Public Member Functions inherited from AShiftOp | |
static std::shared_ptr< CovAniso > | cloneAndCast (const CovAniso *cova) |
static std::shared_ptr< CovAniso > | cloneAndCast (const std::shared_ptr< CovAniso > &cova) |
Additional Inherited Members | |
Public Types inherited from ALinearOpEigenCG< AShiftOp > | |
enum | |
typedef double | Scalar |
typedef double | RealScalar |
typedef int | StorageIndex |
ShiftOpMatrix::ShiftOpMatrix | ( | ) |
ShiftOpMatrix::ShiftOpMatrix | ( | const AMesh * | amesh, |
const CovAniso * | cova, | ||
const Db * | dbout = nullptr , |
||
bool | verbose = false |
||
) |
ShiftOpMatrix::ShiftOpMatrix | ( | const MatrixSparse * | S, |
const VectorDouble & | TildeC, | ||
const VectorDouble & | Lambda, | ||
const CovAniso * | cova, | ||
bool | verbose = false |
||
) |
ShiftOpMatrix::ShiftOpMatrix | ( | const ShiftOpMatrix & | shift | ) |
|
virtual |
Perform the operation: y = S * x
[in] | inv | Input vector |
[in] | outv | Output vector |
Implements AShiftOp.
|
static |
|
static |
|
inline |
|
inline |
int ShiftOpMatrix::getLambdaGradSize | ( | ) | const |
|
overridevirtual |
Implements AShiftOp.
|
inline |
|
inline |
|
inline |
MatrixSparse * ShiftOpMatrix::getSGrad | ( | int | iapex, |
int | igparam | ||
) | const |
int ShiftOpMatrix::getSGradAddress | ( | int | iapex, |
int | igparam | ||
) | const |
Returns the internal address for a given vertex and a given parameter It returns -1 if the address is ivalid
iapex | Rank of the target apex |
igparam | Rank of the target parameter |
|
inline |
MatrixSparse * ShiftOpMatrix::getTildeCGrad | ( | int | iapex, |
int | igparam | ||
) | const |
int ShiftOpMatrix::initFromCS | ( | const MatrixSparse * | S, |
const VectorDouble & | TildeC, | ||
const VectorDouble & | Lambda, | ||
const CovAniso * | cova, | ||
bool | verbose = false |
||
) |
S | Sparse matrix describing the S information |
TildeC | Diagonal array containing TildeC |
Lambda | Normalization vector |
cova | Pointer to the CovAniso structure |
verbose | Verbose flag |
int ShiftOpMatrix::initGradFromMesh | ( | const AMesh * | amesh, |
const CovAniso * | cova, | ||
bool | verbose = false , |
||
double | tol = EPSILON10 |
||
) |
Initialize the environment for calculation of derivatives of S
amesh | Meshing description (New format) |
cova | Pointer to the CovAniso structure |
verbose | Verbose flag |
tol | Smallest value below which the value is not stored in sparse matrix |
|
overridevirtual |
ICloneable interface.
Implements AShiftOp.
ShiftOpMatrix & ShiftOpMatrix::operator= | ( | const ShiftOpMatrix & | shift | ) |
void ShiftOpMatrix::prodLambdaOnSqrtTildeC | ( | const VectorDouble & | inv, |
VectorDouble & | outv, | ||
double | puis = 2 |
||
) | const |
void ShiftOpMatrix::prodTildeC | ( | const VectorDouble & | x, |
VectorDouble & | y, | ||
const EPowerPT & | power | ||
) | const |
Perform the operation: y = x * C^power
[in] | x | Input vector |
[in] | y | Output vector |
[in] | power | Value of the exponent |