#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: