Shift Operator for performing the basic tasks of SPDE. More...
#include <ShiftOpCs.hpp>
Shift Operator for performing the basic tasks of SPDE.
Public Member Functions | |
| ShiftOpCs () | |
| ShiftOpCs (const AMesh *amesh, const CovAniso *cova, const Db *dbout=nullptr, bool verbose=false) | |
| ShiftOpCs (const MatrixSparse *S, const VectorDouble &TildeC, const VectorDouble &Lambda, const CovAniso *cova, bool verbose=false) | |
| ShiftOpCs (const ShiftOpCs &shift) | |
| ShiftOpCs & | operator= (const ShiftOpCs &shift) |
| virtual | ~ShiftOpCs () |
| void | normalizeLambdaBySills (const AMesh *) |
| int | _addToDest (const Eigen::VectorXd &inv, Eigen::VectorXd &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 | getSize () const override |
| int | getNDim () const |
| int | getNCovAnisoGradParam () const |
| void | prodTildeC (const VectorDouble &x, VectorDouble &y, const EPowerPT &power) const |
| void | prodLambda (const VectorDouble &x, VectorDouble &y, const EPowerPT &power) const |
| void | prodLambda (const Eigen::VectorXd &x, Eigen::VectorXd &y, const EPowerPT &power) const |
| void | prodLambda (const VectorDouble &x, Eigen::VectorXd &y, const EPowerPT &power) const |
| void | prodLambda (const Eigen::VectorXd &x, VectorDouble &y, const EPowerPT &power) const |
| void | prodLambdaOnSqrtTildeC (const VectorDouble &inv, VectorDouble &outv, double puis=2) const |
| double | getMaxEigenValue () const |
| MatrixSparse * | getS () const |
| MatrixSparse * | getTildeCGrad (int iapex, int igparam) const |
| MatrixSparse * | getSGrad (int iapex, int igparam) const |
| const VectorDouble & | getTildeC () const |
| const VectorDouble & | getLambdas () const |
| double | getLambda (int iapex) 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 ALinearOpEigenCG< ShiftOpCs > | |
| virtual | ~ALinearOpEigenCG () |
| Eigen::Index | rows () const |
| Eigen::Index | cols () const |
| Eigen::Product< ShiftOpCs, Rhs, Eigen::AliasFreeProduct > | operator* (const Eigen::MatrixBase< Rhs > &x) const |
Public Member Functions inherited from ALinearOp | |
| virtual | ~ALinearOp () |
| int | evalDirect (const VectorDouble &inv, VectorDouble &outv) const |
| VectorDouble | evalDirect (const VectorDouble &in) const |
| int | evalDirect (const VectorEigen &inv, VectorEigen &outv) const |
| int | addToDest (const VectorDouble &inv, VectorDouble &outv) const |
| int | addToDest (const VectorEigen &inv, VectorEigen &outv) const |
| int | evalDirect (const Eigen::VectorXd &inv, Eigen::VectorXd &outv) const |
| int | addToDest (const Eigen::VectorXd &inv, Eigen::VectorXd &outv) const |
Static Public Member Functions | |
| static ShiftOpCs * | create (const AMesh *amesh, const CovAniso *cova, const Db *dbout=nullptr, bool verbose=false) |
| static ShiftOpCs * | createFromSparse (const MatrixSparse *S, const VectorDouble &TildeC, const VectorDouble &Lambda, const CovAniso *cova, bool verbose=false) |
Additional Inherited Members | |
Public Types inherited from ALinearOpEigenCG< ShiftOpCs > | |
| enum | |
| typedef double | Scalar |
| typedef double | RealScalar |
| typedef int | StorageIndex |
| ShiftOpCs::ShiftOpCs | ( | ) |
| ShiftOpCs::ShiftOpCs | ( | const AMesh * | amesh, |
| const CovAniso * | cova, | ||
| const Db * | dbout = nullptr, |
||
| bool | verbose = false |
||
| ) |
| ShiftOpCs::ShiftOpCs | ( | const MatrixSparse * | S, |
| const VectorDouble & | TildeC, | ||
| const VectorDouble & | Lambda, | ||
| const CovAniso * | cova, | ||
| bool | verbose = false |
||
| ) |
| ShiftOpCs::ShiftOpCs | ( | const ShiftOpCs & | shift | ) |
|
virtual |
|
overridevirtual |
Perform the operation: y = S * x
| [in] | inv | Input vector |
| [in] | outv | Output vector |
Implements ALinearOp.
|
static |
|
static |
|
inline |
|
inline |
|
inline |
| int ShiftOpCs::getLambdaGradSize | ( | ) | const |
|
inline |
| double ShiftOpCs::getMaxEigenValue | ( | ) | const |
|
inline |
|
inline |
|
inline |
| MatrixSparse * ShiftOpCs::getSGrad | ( | int | iapex, |
| int | igparam | ||
| ) | const |
| int ShiftOpCs::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 |
|
inlineoverridevirtual |
Implements ALinearOp.
|
inline |
| MatrixSparse * ShiftOpCs::getTildeCGrad | ( | int | iapex, |
| int | igparam | ||
| ) | const |
| int ShiftOpCs::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 ShiftOpCs::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 |
| void ShiftOpCs::normalizeLambdaBySills | ( | const AMesh * | mesh | ) |
| void ShiftOpCs::prodLambda | ( | const Eigen::VectorXd & | x, |
| Eigen::VectorXd & | y, | ||
| const EPowerPT & | power | ||
| ) | const |
| void ShiftOpCs::prodLambda | ( | const Eigen::VectorXd & | x, |
| VectorDouble & | y, | ||
| const EPowerPT & | power | ||
| ) | const |
| void ShiftOpCs::prodLambda | ( | const VectorDouble & | x, |
| Eigen::VectorXd & | y, | ||
| const EPowerPT & | power | ||
| ) | const |
| void ShiftOpCs::prodLambda | ( | const VectorDouble & | x, |
| VectorDouble & | y, | ||
| const EPowerPT & | power | ||
| ) | const |
| void ShiftOpCs::prodLambdaOnSqrtTildeC | ( | const VectorDouble & | inv, |
| VectorDouble & | outv, | ||
| double | puis = 2 |
||
| ) | const |
| void ShiftOpCs::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 |