1.11.1
CCC
 
Loading...
Searching...
No Matches
gstlrn::PropDef Class Reference

#include <PropDef.hpp>

Public Member Functions

 PropDef ()=default
 
 PropDef (const PropDef &m)=default
 
PropDefoperator= (const PropDef &m)=default
 
virtual ~PropDef ()=default
 
void printInfo () const
 
Id getRank (Id ipgs, Id igrf) const
 
void defineRuleMethod (const EProcessOper &oper)
 
void reset () const
 
Id proportionDefine (const Db *db, Id iech, Id isimu, Id nbsimu, Id *jech) const
 
Id define (bool flag_facies, bool flag_stat, const std::array< Id, 2 > &ngrf, const std::array< Id, 2 > &nfac, Db *db, const Db *dbprop, const 1 &propcst)
 
Id ruleThreshDefine (Db *db, const Rule *rule, Id facies, Id iech, Id isimu, Id nbsimu, Id flag_check, double *t1min, double *t1max, double *t2min, double *t2max) const
 
Id ruleThreshShadowDefine (Db *db, const RuleShadow *rule, Id facies, Id iech, Id isimu, Id nbsimu, double *t1min, double *t1max, double *t2min, double *t2max, double *sh_dsup, double *sh_down) const
 
void updateCategorical (Db *db, bool verbose, Id ipgs, Id isimu, Id nbsimu) const
 
void scaleCategorical (Db *db, bool verbose, Id ipgs, Id nbsimu) const
 
void transformCategorical (const Rule *rule, Db *db, bool verbose, const VectorBool &flag_used, Id ipgs, Id isimu, Id nbsimu) const
 
double getPropFix (Id ifac) const
 

Static Public Member Functions

static void updateContinuous (Db *db, bool verbose, Id isimu, Id nbsimu)
 
static void scaleContinuous (Db *db, bool verbose, Id nbsimu)
 

Public Attributes

bool _caseFacies
 
bool _caseStat
 
bool _casePropInterp
 
std::array< Id, 2 > _ngrf {}
 
std::array< Id, 2 > _nfac {}
 
Id _nfaccur
 
Id _nfacprod
 
EProcessOper _mode
 
 _propfix
 
 _propmem
 
 _propwrk
 
 _proploc
 
 _coor
 
const DbGrid_dbprop
 

Constructor & Destructor Documentation

◆ PropDef() [1/2]

gstlrn::PropDef::PropDef ( )
default

◆ PropDef() [2/2]

gstlrn::PropDef::PropDef ( const PropDef m)
default

◆ ~PropDef()

virtual gstlrn::PropDef::~PropDef ( )
virtualdefault

Member Function Documentation

◆ define()

Id gstlrn::PropDef::define ( bool  flag_facies,
bool  flag_stat,
const std::array< Id, 2 > &  ngrf,
const std::array< Id, 2 > &  nfac,
Db db,
const Db dbprop,
const 1 &  propcst 
)

Allocate or deallocate a proportion array

Returns
Pointer on the returned PropDef structure
Parameters
[in]flag_facies1 if Gibbs is used for facies
[in]flag_stat1 if the proportions are stationary
[in]ngrfNumber of GRFs for the first PGS
[in]nfacNumber of facies for the first PGS
[in]dbDb structure containing the data
[in]dbpropDb structure containing the proportions (only used in the non-stationary case)
[in]propcstConstant set of proportions (used if flag_stat)

◆ defineRuleMethod()

void gstlrn::PropDef::defineRuleMethod ( const EProcessOper &  oper)

Set the method to compute Proportions

Parameters
[in]operType of operation (EProcessOper)

◆ getPropFix()

double gstlrn::PropDef::getPropFix ( Id  ifac) const
inline

◆ getRank()

Id gstlrn::PropDef::getRank ( Id  ipgs,
Id  igrf 
) const

◆ operator=()

PropDef & gstlrn::PropDef::operator= ( const PropDef m)
default

◆ printInfo()

void gstlrn::PropDef::printInfo ( ) const

◆ proportionDefine()

Id gstlrn::PropDef::proportionDefine ( const Db db,
Id  iech,
Id  isimu,
Id  nbsimu,
Id jech 
) const

Set the (non-stationary) proportions

Returns
Error return code
- the target point does not lie within the proportion grid
- in conditional processing, the reference facies does not exist
Parameters
[in]dbDb input structure
[in]iechRank of the data in the input Db
[in]isimuRank of the simulation (EProcessOper::CONDITIONAL)
[in]nbsimuNumber of simulations
[out]jechRank of the auxiliary data in the input Db
Remarks
At the end of this function, the local proportions are stored
in the array proploc of the structure PropDef
The argument 'isimu' is only used for
mode == EProcessOper::CONDITIONAL (simbipgs)

◆ reset()

void gstlrn::PropDef::reset ( ) const

◆ ruleThreshDefine()

Id gstlrn::PropDef::ruleThreshDefine ( Db db,
const Rule rule,
Id  facies,
Id  iech,
Id  isimu,
Id  nbsimu,
Id  flag_check,
double *  t1min,
double *  t1max,
double *  t2min,
double *  t2max 
) const

Set the (non-stationary) proportions and define thresholds

Returns
Error return code
Parameters
[in]dbDb input structure
[in]ruleRule structure
[in]faciesFacies of interest (or ITEST) starting from 1
[in]iechRank of the data in the input Db
[in]isimuRank of the simulation (EProcessOper::CONDITIONAL)
[in]nbsimuNumber of simulations
[in]flag_check1 if the consistency check with the actual proportion of the current facies must be done
[out]t1minMinimum threshold for Y1
[out]t1maxMaximum threshold for Y1
[out]t2minMinimum threshold for Y2
[out]t2maxMaximum threshold for Y2

◆ ruleThreshShadowDefine()

Id gstlrn::PropDef::ruleThreshShadowDefine ( Db db,
const RuleShadow rule,
Id  facies,
Id  iech,
Id  isimu,
Id  nbsimu,
double *  t1min,
double *  t1max,
double *  t2min,
double *  t2max,
double *  sh_dsup,
double *  sh_down 
) const

Set the (non-stationary) proportions and define thresholds (for shadow only)

Returns
Error return code
Parameters
[in]dbDb input structure
[in]ruleRule structure
[in]faciesFacies of interest (or ITEST)
[in]iechRank of the data in the input Db
[in]isimuRank of the simulation (EProcessOper::CONDITIONAL)
[in]nbsimuNumber of simulations (EProcessOper::CONDITIONAL)
[out]t1minMinimum threshold for Y1
[out]t1maxMaximum threshold for Y1
[out]t2minMinimum threshold for Y2
[out]t2maxMaximum threshold for Y2
[out]sh_dsupLocal or global upwards shift (shadow)
[out]sh_downLocal or global downwards shift (shadow)

◆ scaleCategorical()

void gstlrn::PropDef::scaleCategorical ( Db db,
bool  verbose,
Id  ipgs,
Id  nbsimu 
) const

◆ scaleContinuous()

void gstlrn::PropDef::scaleContinuous ( Db db,
bool  verbose,
Id  nbsimu 
)
static

◆ transformCategorical()

void gstlrn::PropDef::transformCategorical ( const Rule rule,
Db db,
bool  verbose,
const VectorBool flag_used,
Id  ipgs,
Id  isimu,
Id  nbsimu 
) const

◆ updateCategorical()

void gstlrn::PropDef::updateCategorical ( Db db,
bool  verbose,
Id  ipgs,
Id  isimu,
Id  nbsimu 
) const

◆ updateContinuous()

void gstlrn::PropDef::updateContinuous ( Db db,
bool  verbose,
Id  isimu,
Id  nbsimu 
)
static

Member Data Documentation

◆ _caseFacies

bool gstlrn::PropDef::_caseFacies

◆ _casePropInterp

bool gstlrn::PropDef::_casePropInterp

◆ _caseStat

bool gstlrn::PropDef::_caseStat

◆ _coor

gstlrn::PropDef::_coor
mutable

◆ _dbprop

const DbGrid* gstlrn::PropDef::_dbprop

◆ _mode

EProcessOper gstlrn::PropDef::_mode

◆ _nfac

std::array<Id, 2> gstlrn::PropDef::_nfac {}

◆ _nfaccur

Id gstlrn::PropDef::_nfaccur

◆ _nfacprod

Id gstlrn::PropDef::_nfacprod

◆ _ngrf

std::array<Id, 2> gstlrn::PropDef::_ngrf {}

◆ _propfix

gstlrn::PropDef::_propfix
mutable

◆ _proploc

gstlrn::PropDef::_proploc
mutable

◆ _propmem

gstlrn::PropDef::_propmem
mutable

◆ _propwrk

gstlrn::PropDef::_propwrk
mutable

The documentation for this class was generated from the following files: