#include <CalcSimuFFT.hpp>
|
| virtual bool | _check () override |
| |
| virtual bool | _preprocess () override |
| |
| virtual bool | _run () override |
| |
| virtual bool | _postprocess () override |
| |
| virtual void | _rollback () override |
| |
| bool | _simulate () |
| |
| void | _alloc () |
| |
| int | _getOptimalEvenNumber (int number, int largeFactor=11) |
| |
| VectorInt | _getFactors (int number) |
| |
| void | _gridDilate () |
| |
| bool | _checkCorrect (const VectorVectorDouble &xyz, int ix, int iy, int iz, double percent) |
| |
| void | _prepar (bool flag_amplitude, double eps=EPSILON5) |
| |
| void | _defineRandom () |
| |
| void | _setVariance (int ix, int iy, int iz) |
| |
| void | _defineSymmetry (void) |
| |
| void | _defineSym1 () |
| |
| void | _defineSym2 (int iz0) |
| |
| void | _defineSym3 () |
| |
| void | _setZero (int ix, int iy, int iz) |
| |
| void | _setConjugate (int ix, int iy, int iz, int jx, int jy, int jz) |
| |
| void | _final (DbGrid *db, int iad) |
| |
| double | _support (double sigma) |
| |
| double | _support1 (double sigma) |
| |
| double | _support2 (double sigma) |
| |
| double | _support3 (double sigma) |
| |
| double | _rhoSigma (double sigma, int ix, int iy, int iz) |
| |
|
| virtual int | _getNDim () const override |
| |
| virtual int | _getNVar () const override |
| |
| virtual int | _getNCova () const |
| |
| int | _centerDataToGrid (DbGrid *dbgrid) |
| |
| int | _addVariableDb (int whichDb, int status, const ELoc &locatorType, int locatorIndex=0, int number=1, double valinit=0.) |
| |
| void | _renameVariable (int whichDb, const VectorString &names, const ELoc &locatorType, int nvar, int iptr, const String &name, int count, bool flagSetLocator=true, int shift=0) |
| |
| void | _storeInVariableList (int whichDb, int status, const VectorInt &iuids) |
| |
| int | _expandInformation (int mode, const ELoc &locatorType) |
| |
| void | _cleanVariableDb (int status) |
| |
| Db * | _whichDb (int whichDb) |
| |
| String | _identifyVariable (int iuid) const |
| |
◆ CalcSimuFFT() [1/2]
| CalcSimuFFT::CalcSimuFFT |
( |
int |
nbsimu = 0, |
|
|
bool |
verbose = false, |
|
|
int |
seed = 4324324 |
|
) |
| |
◆ CalcSimuFFT() [2/2]
◆ ~CalcSimuFFT()
| CalcSimuFFT::~CalcSimuFFT |
( |
| ) |
|
|
virtual |
◆ _alloc()
| void CalcSimuFFT::_alloc |
( |
| ) |
|
|
private |
Dimension the ST_FFT structure
◆ _check()
| bool CalcSimuFFT::_check |
( |
| ) |
|
|
overrideprivatevirtual |
◆ _checkCorrect()
| bool CalcSimuFFT::_checkCorrect |
( |
const VectorVectorDouble & |
xyz, |
|
|
int |
ix, |
|
|
int |
iy, |
|
|
int |
iz, |
|
|
double |
percent |
|
) |
| |
|
private |
Checks if the covariance is below threshold for tested distance
- Returns
- True if the grid node is below threshold; 0 otherwise
- Parameters
-
| [in] | xyz | Grid increment |
| [in] | ix | Grid index along X |
| [in] | iy | Grid index along Y |
| [in] | iz | Grid index along Z |
| [in] | percent | Percentage of the model variance below which the covariance is considered as small enough for dilation |
◆ _defineRandom()
| void CalcSimuFFT::_defineRandom |
( |
| ) |
|
|
private |
Initiate a vector of random normal values
◆ _defineSym1()
| void CalcSimuFFT::_defineSym1 |
( |
| ) |
|
|
private |
Operate the symmetry for a 1-D space
◆ _defineSym2()
| void CalcSimuFFT::_defineSym2 |
( |
int |
iz0 | ) |
|
|
private |
Operate the symmetry for a 2-D space
- Parameters
-
◆ _defineSym3()
| void CalcSimuFFT::_defineSym3 |
( |
| ) |
|
|
private |
Operate the symmetry for a 3-D space
◆ _defineSymmetry()
| void CalcSimuFFT::_defineSymmetry |
( |
void |
| ) |
|
|
private |
◆ _final()
| void CalcSimuFFT::_final |
( |
DbGrid * |
db, |
|
|
int |
iad |
|
) |
| |
|
private |
Perform a non-conditional simulation on the grid
- Parameters
-
| [in] | db | Db structure |
| [in] | iad | address for writing the simulation |
◆ _getFactors()
| VectorInt CalcSimuFFT::_getFactors |
( |
int |
number | ) |
|
|
private |
Get the factor decomposition of a number
- Returns
- Count of active factors
- Parameters
-
| [in] | number | number to be decomposed |
◆ _getOptimalEvenNumber()
| int CalcSimuFFT::_getOptimalEvenNumber |
( |
int |
number, |
|
|
int |
largeFactor = 11 |
|
) |
| |
|
private |
Returns the closest value, larger than the argument, which is factorized as the product of low factors
- Returns
- Returned number
- Parameters
-
| [in] | number | input number |
| [in] | largeFactor | Maximum value for a Factor |
◆ _gridDilate()
| void CalcSimuFFT::_gridDilate |
( |
| ) |
|
|
private |
Calculates the grid extension in a given grid direction
◆ _postprocess()
| bool CalcSimuFFT::_postprocess |
( |
| ) |
|
|
overrideprivatevirtual |
◆ _prepar()
| void CalcSimuFFT::_prepar |
( |
bool |
flag_amplitude, |
|
|
double |
eps = EPSILON5 |
|
) |
| |
|
private |
Prepares the simulation on a grid using Discrete FFT
- Parameters
-
| [in] | flag_amplitude | 1 to convert into amplitude |
| [in] | eps | Tolerance |
◆ _preprocess()
| bool CalcSimuFFT::_preprocess |
( |
| ) |
|
|
overrideprivatevirtual |
◆ _rhoSigma()
| double CalcSimuFFT::_rhoSigma |
( |
double |
sigma, |
|
|
int |
ix, |
|
|
int |
iy, |
|
|
int |
iz |
|
) |
| |
|
private |
Calculate the exponential of the scaled correlation
- Returns
- Value of the transformed correlation
- Parameters
-
| [in] | sigma | Logarithmic variance value |
| [in] | ix | Index for the discretized covariance along X |
| [in] | iy | Index for the discretized covariance along Y |
| [in] | iz | Index for the discretized covariance along Z |
◆ _rollback()
| void CalcSimuFFT::_rollback |
( |
| ) |
|
|
overrideprivatevirtual |
◆ _run()
| bool CalcSimuFFT::_run |
( |
| ) |
|
|
overrideprivatevirtual |
◆ _setConjugate()
| void CalcSimuFFT::_setConjugate |
( |
int |
ix, |
|
|
int |
iy, |
|
|
int |
iz, |
|
|
int |
jx, |
|
|
int |
jy, |
|
|
int |
jz |
|
) |
| |
|
private |
Set the target cell as the conjugate of the input cell
- Parameters
-
| [in] | ix | Input cell location along X |
| [in] | iy | Input cell location along Y |
| [in] | iz | Input cell location along Z |
| [in] | jx | Target cell location along X |
| [in] | jy | Target cell location along Y |
| [in] | jz | Target cell location along Z |
◆ _setVariance()
| void CalcSimuFFT::_setVariance |
( |
int |
ix, |
|
|
int |
iy, |
|
|
int |
iz |
|
) |
| |
|
private |
Correct the variance of the spectrum for real U
- Parameters
-
| [in] | ix | Cell location along X |
| [in] | iy | Cell location along Y |
| [in] | iz | Cell location along Z |
◆ _setZero()
| void CalcSimuFFT::_setZero |
( |
int |
ix, |
|
|
int |
iy, |
|
|
int |
iz |
|
) |
| |
|
private |
Set the imaginary part of a cell to zero
- Parameters
-
| [in] | ix | Cell location along X |
| [in] | iy | Cell location along Y |
| [in] | iz | Cell location along Z |
◆ _simulate()
| bool CalcSimuFFT::_simulate |
( |
| ) |
|
|
private |
◆ _support()
| double CalcSimuFFT::_support |
( |
double |
sigma | ) |
|
|
private |
Calculate the mean lognormal covariance over the block
- Returns
- Mean lognormal covariance
- Parameters
-
| [in] | sigma | Logarithmic variance value |
◆ _support1()
| double CalcSimuFFT::_support1 |
( |
double |
sigma | ) |
|
|
private |
Calculate the mean lognormal covariance over the block (1-D)
- Returns
- Mean lognormal covariance
- Parameters
-
| [in] | sigma | Logarithmic variance value |
◆ _support2()
| double CalcSimuFFT::_support2 |
( |
double |
sigma | ) |
|
|
private |
Calculate the mean lognormal covariance over the block (2-D)
- Returns
- Mean lognormal covariance
- Parameters
-
| [in] | sigma | Logarithmic variance value |
◆ _support3()
| double CalcSimuFFT::_support3 |
( |
double |
sigma | ) |
|
|
private |
Calculate the mean lognormal covariance over the block (3-D)
- Returns
- Mean lognormal covariance
- Parameters
-
| [in] | sigma | Logarithmic variance value |
◆ changeSupport()
◆ operator=()
◆ setParam()
◆ setVerbose()
| void CalcSimuFFT::setVerbose |
( |
bool |
verbose | ) |
|
|
inline |
◆ _cmat
◆ _dim2
◆ _dims
◆ _iattOut
| int CalcSimuFFT::_iattOut |
|
private |
◆ _nx
◆ _nxyz
◆ _param
◆ _rnd
◆ _shift
◆ _sizes_alloc
| int CalcSimuFFT::_sizes_alloc |
|
private |
◆ _u
◆ _v
◆ _verbose
| bool CalcSimuFFT::_verbose |
|
private |
The documentation for this class was generated from the following files: