Flumy [Free API]
Process based model for meandering chanelized systems
Public Member Functions | List of all members
iDomain Class Referenceabstract

Interface class used to access Domain informations. More...

Detailed Description

Interface class used to access Domain informations.

The domain object is returned by the method Flumy::getDomain.
A domain is a geometric 3D grid containing sediment deposited by the channel.
Raw vertical data are not regular (sample thicknesses of deposits can be different).
This is usually called a pillar grid.

The domain grid inherits from 2D grid but have some additional parameters:

The three last parameters are used to locate the domain into a geographical 3D referential system.
The origin of the 2D grid (_ox and _oy members) inherited from GridParams class is ignored (always 0,0).

This class provides some methods used to convert 2D points coordinates into the following referential systems:

Each domain grid node has a vertical collection of deposition units objects.
This class informs you about the vertical location of the sample stack (bottom, top)

Node sample stack can be read by two ways:

The getRegular* methods also permits to retrieve the whole block in one call.

Look at the User Manual for further details about domain geometry.

Public Member Functions

 iDomain ()
 Default constructor. More...
 
virtual ~iDomain ()
 Destructor. More...
 
virtual MP_real getSlope () const =0
 Return global mean slope along flow direction (ratio positive decreasing) More...
 
virtual MP_real getSlopeAlongX () const =0
 Return global mean slope along X (ratio positive decreasing) More...
 
virtual MP_real getSlopeAlongY () const =0
 Return global mean slope along Y (ratio positive decreasing) More...
 
virtual MP_real getZrefGeo () const =0
 Return grid origin elevation (in meters) More...
 
virtual MP_real getRotGridGeo () const =0
 Return grid rotation (in degrees counterclockwise) relative to West-East direction (90° <=> South-North) More...
 
virtual MP_real getRotFlowGeo () const =0
 Return flow rotation (in degrees clockwise) relative to South-North direction (90° <=> West-East) More...
 
virtual Point2D getOriginGeo () const =0
 Return grid origin into the geographical referential system (in meters) More...
 
virtual MP_real getErodMax () const =0
 Return the maximum erodibility coefficient encountered inside the domain. More...
 
virtual MP_age getOldestAge () const =0
 Return the age (in number of iteration since the simulation beginning) of the oldest deposit encountered inside the domain. More...
 
virtual MP_real getZMaxGeo () const =0
 Return the highest elevation of the domain (in meters) (including elevation at origin but excluding mean slope) More...
 
virtual MP_real getZMinGeo () const =0
 Return the lowest elevation of the domain (in meters) (including elevation at origin but excluding mean slope) More...
 
virtual MP_real getZMaxRel () const =0
 Return the highest elevation of the domain (in meters) (excluding elevation at origin and mean slope) More...
 
virtual MP_real getZMinRel () const =0
 Return the lowest elevation of the domain (in meters) (excluding elevation at origin and mean slope) More...
 
virtual MP_real getMeshX () const =0
 Assessor get to protected member variable _dx. More...
 
virtual MP_real getMeshY () const =0
 Assessor get to protected member variable _dx. More...
 
virtual MP_int getNbNodeX () const =0
 Assessor get to protected member variable _nx. More...
 
virtual MP_int getNbNodeY () const =0
 Assessor get to protected member variable _nx. More...
 
virtual GridParams getGrid () const =0
 Return domain geometry in grid object. More...
 
virtual MP_real getMinTopo (bool with_water_depth=true) const =0
 Return domain min topography (geographic) More...
 
virtual MP_real getMaxTopo (bool with_water_depth=true) const =0
 Return domain max topography (geographic) More...
 
virtual MP_real getMeanTopo (bool with_water_depth=true) const =0
 Return domain mean topography (geographic) More...
 
virtual MP_real getProportionFull (MP_stut fac, MP_real zmin=MP_UNKNOWN_REAL_VALUE, MP_real zmax=MP_UNKNOWN_REAL_VALUE) const =0
 Return facies proportion between min and max geographical elevations. More...
 
virtual MP_real getProportion (MP_stut fac, MP_int ix_min, MP_int ix_max, MP_int iy_min, MP_int iy_max, MP_real zmin=MP_UNKNOWN_REAL_VALUE, MP_real zmax=MP_UNKNOWN_REAL_VALUE) const =0
 
virtual Point2D getGeoPointFromGrid (const MP_int &ix, const MP_int &iy) const =0
 Return a point into the geographical referential system from a point into the grid referential system. More...
 
virtual Point2D getGeoPointFromRel (const Point2D &relPoint) const =0
 Return a point into the geographical referential system from a point into the relative referential system. More...
 
virtual Point2D getRelPointFromGeo (const Point2D &geoPoint) const =0
 Return a point into the relative referential system from a point into the geographical referential system. More...
 
virtual Point2D getRelPointFromGrid (const MP_int &ix, const MP_int &iy) const =0
 Retrieve relative point from a grid one. More...
 
virtual Point2D getGridPointFromRel (const Point2D &relPoint) const =0
 Retrieve grid point from relative one. More...
 
virtual Point2D getGridPointFromGeo (const Point2D &geoPoint) const =0
 Retrieve grid point from geographical one. More...
 
virtual bool isValid (const MP_int &ix, const MP_int &iy) const =0
 Return true if indices are valid grid indices. More...
 
virtual RealList getAllThickness () const =0
 Return all thicknesses / facies / grainsizes and ages. More...
 
virtual FaciesList getAllFacies () const =0
 
virtual RealList getAllGrainsize () const =0
 
virtual IntList getAllGrainsizeClass () const =0
 
virtual AgeList getAllAge () const =0
 
virtual DepositsList getDeposits (MP_int ix, MP_int iy) const =0
 Retrieve irregular vertical facies collection. More...
 
virtual bool getIrregular (MP_int ix, MP_int iy, DepositsList *list) const =0
 Retrieve irregular vertical facies collection. More...
 
virtual bool getRegularPile (MP_int ix, MP_int iy, MP_real zStep, FaciesList *facies, AgeList *ages=NULL, RealList *granulo=NULL, MP_real *zBot=NULL, MP_int *nbSample=NULL) const =0
 Retrieve regular vertical facies collection located at a domain grid node for a given elevation step. More...
 
virtual bool getRegular (MP_int ix_min, MP_int ix_max, MP_int iy_min, MP_int iy_max, MP_real zStep, FaciesList *facies, AgeList *ages=NULL, RealList *granulo=NULL, MP_real *zBot=NULL, MP_int *nbSample=NULL) const =0
 
virtual FaciesList getRegularFacies (MP_real zStep, MP_real zBot, MP_int nbSample) const =0
 
virtual RealList getRegularGrain (MP_real zStep, MP_real zBot, MP_int nbSample) const =0
 
virtual AgeList getRegularAge (MP_real zStep, MP_real zBot, MP_int nbSample) const =0
 
virtual bool getTopo (Topo &topo, bool with_water=true, MP_age age_limit=MP_UNKNOWN_INT_VALUE) const =0
 Retrieve current topography in geographical system (including grid elevation) More...
 
virtual bool saveF2G (const MP_string &filename, MP_real dz, bool save_facies, bool save_grain, bool save_age, MP_real min_z=MP_UNKNOWN_REAL_VALUE, MP_real max_z=MP_UNKNOWN_REAL_VALUE, const MP_string &order=MP_DEFAULT_CELLS_ORDER) const =0
 
virtual std::vector< WellStat > getCondStats () const =0
 
virtual bool getCenterlineDisc (CenterlineDisc &cldisc, const iChannel *ch) const =0
 

Constructor & Destructor Documentation

◆ iDomain()

iDomain::iDomain ( )
inline

Default constructor.

◆ ~iDomain()

virtual iDomain::~iDomain ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ getAllAge()

virtual AgeList iDomain::getAllAge ( ) const
pure virtual

◆ getAllFacies()

virtual FaciesList iDomain::getAllFacies ( ) const
pure virtual

◆ getAllGrainsize()

virtual RealList iDomain::getAllGrainsize ( ) const
pure virtual

◆ getAllGrainsizeClass()

virtual IntList iDomain::getAllGrainsizeClass ( ) const
pure virtual

◆ getAllThickness()

virtual RealList iDomain::getAllThickness ( ) const
pure virtual

Return all thicknesses / facies / grainsizes and ages.

◆ getCenterlineDisc()

virtual bool iDomain::getCenterlineDisc ( CenterlineDisc &  cldisc,
const iChannel *  ch 
) const
pure virtual

Retrieve the Centerline discretized into the domain grid. (only for Research version)

Returns
true if success
Parameters
cldiscCenterline discretized
chCurrent channel to be put on the domain grid

◆ getCondStats()

virtual std::vector<WellStat> iDomain::getCondStats ( ) const
pure virtual

Calculate the conditioning statistics for each well (only for Research version)

Returns
A list of WellStat objects (one by well and a last global one) filled with conditioning statistics

◆ getDeposits()

virtual DepositsList iDomain::getDeposits ( MP_int  ix,
MP_int  iy 
) const
pure virtual

Retrieve irregular vertical facies collection.

Returns
the list of deposits situated at (ix, iy), empty if error or no deposit
Parameters
ixi-index of the grid node
iyj-index of the grid node

◆ getErodMax()

virtual MP_real iDomain::getErodMax ( ) const
pure virtual

Return the maximum erodibility coefficient encountered inside the domain.

◆ getGeoPointFromGrid()

virtual Point2D iDomain::getGeoPointFromGrid ( const MP_int &  ix,
const MP_int &  iy 
) const
pure virtual

Return a point into the geographical referential system from a point into the grid referential system.

◆ getGeoPointFromRel()

virtual Point2D iDomain::getGeoPointFromRel ( const Point2D relPoint) const
pure virtual

Return a point into the geographical referential system from a point into the relative referential system.

◆ getGrid()

virtual GridParams iDomain::getGrid ( ) const
pure virtual

Return domain geometry in grid object.

◆ getGridPointFromGeo()

virtual Point2D iDomain::getGridPointFromGeo ( const Point2D geoPoint) const
pure virtual

Retrieve grid point from geographical one.

◆ getGridPointFromRel()

virtual Point2D iDomain::getGridPointFromRel ( const Point2D relPoint) const
pure virtual

Retrieve grid point from relative one.

◆ getIrregular()

virtual bool iDomain::getIrregular ( MP_int  ix,
MP_int  iy,
DepositsList *  list 
) const
pure virtual

Retrieve irregular vertical facies collection.

Returns
true if success, false otherwise (then, list is empty)
Parameters
ixi-index of the grid node
iyj-index of the grid node
listDeposition list situated at (ix, iy)

◆ getMaxTopo()

virtual MP_real iDomain::getMaxTopo ( bool  with_water_depth = true) const
pure virtual

Return domain max topography (geographic)

◆ getMeanTopo()

virtual MP_real iDomain::getMeanTopo ( bool  with_water_depth = true) const
pure virtual

Return domain mean topography (geographic)

◆ getMeshX()

virtual MP_real iDomain::getMeshX ( ) const
pure virtual

Assessor get to protected member variable _dx.

◆ getMeshY()

virtual MP_real iDomain::getMeshY ( ) const
pure virtual

Assessor get to protected member variable _dx.

◆ getMinTopo()

virtual MP_real iDomain::getMinTopo ( bool  with_water_depth = true) const
pure virtual

Return domain min topography (geographic)

◆ getNbNodeX()

virtual MP_int iDomain::getNbNodeX ( ) const
pure virtual

Assessor get to protected member variable _nx.

◆ getNbNodeY()

virtual MP_int iDomain::getNbNodeY ( ) const
pure virtual

Assessor get to protected member variable _nx.

◆ getOldestAge()

virtual MP_age iDomain::getOldestAge ( ) const
pure virtual

Return the age (in number of iteration since the simulation beginning) of the oldest deposit encountered inside the domain.

◆ getOriginGeo()

virtual Point2D iDomain::getOriginGeo ( ) const
pure virtual

Return grid origin into the geographical referential system (in meters)

◆ getProportion()

virtual MP_real iDomain::getProportion ( MP_stut  fac,
MP_int  ix_min,
MP_int  ix_max,
MP_int  iy_min,
MP_int  iy_max,
MP_real  zmin = MP_UNKNOWN_REAL_VALUE,
MP_real  zmax = MP_UNKNOWN_REAL_VALUE 
) const
pure virtual

Return facies proportion between min and max geographical elevations for a certain number of grid cells (given by their grid indices)

◆ getProportionFull()

virtual MP_real iDomain::getProportionFull ( MP_stut  fac,
MP_real  zmin = MP_UNKNOWN_REAL_VALUE,
MP_real  zmax = MP_UNKNOWN_REAL_VALUE 
) const
pure virtual

Return facies proportion between min and max geographical elevations.

◆ getRegular()

virtual bool iDomain::getRegular ( MP_int  ix_min,
MP_int  ix_max,
MP_int  iy_min,
MP_int  iy_max,
MP_real  zStep,
FaciesList *  facies,
AgeList *  ages = NULL,
RealList *  granulo = NULL,
MP_real *  zBot = NULL,
MP_int *  nbSample = NULL 
) const
pure virtual

Same as iDomain::getRegularPile except that this method retrieve several pillars.

Warning
  • The number of samples argument (nbSample) will contain the number of vertical samples.
  • Each list is ordered Z increasing first (from bottom to top), then Y increasing and finally X increasing; In other words, Z-index is faster, X-index is slower : +Z +Y +X.

◆ getRegularAge()

virtual AgeList iDomain::getRegularAge ( MP_real  zStep,
MP_real  zBot,
MP_int  nbSample 
) const
pure virtual

Same as iDomain::getRegular except that this method retrieve all pillars for Age variable only (SWIG compliant function)

◆ getRegularFacies()

virtual FaciesList iDomain::getRegularFacies ( MP_real  zStep,
MP_real  zBot,
MP_int  nbSample 
) const
pure virtual

Same as iDomain::getRegular except that this method retrieve all pillars for facies variable only (SWIG compliant function)

◆ getRegularGrain()

virtual RealList iDomain::getRegularGrain ( MP_real  zStep,
MP_real  zBot,
MP_int  nbSample 
) const
pure virtual

Same as iDomain::getRegular except that this method retrieve all pillars for Grain size variable only (SWIG compliant function)

◆ getRegularPile()

virtual bool iDomain::getRegularPile ( MP_int  ix,
MP_int  iy,
MP_real  zStep,
FaciesList *  facies,
AgeList *  ages = NULL,
RealList *  granulo = NULL,
MP_real *  zBot = NULL,
MP_int *  nbSample = NULL 
) const
pure virtual

Retrieve regular vertical facies collection located at a domain grid node for a given elevation step.

Returns
true if success, false otherwise
Parameters
ixi-index of the grid node
iyj-index of the grid node
zStepElevation step in meters
faciesVector of facies to be filled (integer values defined in MCRCDefines.h )
agesOptionally, provide age of each sample in a vector (total number of iterations since beginning)
granuloOptionally, provide granulometry rate of each sample [0=fine,1=coarse]
zBotIf the bottom elevation is defined, the discretization starts from this bottom elevation. If not, starting elevation will be automatically calculated and zBot will contain its value (see below)
nbSampleIf the number of samples is defined, nbSample values will be returned. If not, the number of values will be automatically calculated and nbSample will contain its value (see below)
Warning
  • Each list is ordered Z increasing (from bottom to top).
  • Bottom elevation must be in the geographical referential (including initial grid elevation).
  • Bottom elevation is the center of the first cell as shown below.
Note
Global algorithm description:

From a vertical step (dz), the vertical discretization algorithm calculates following values (nbz, minz and maxz):



The vertical scale is centered inside bounding box.
Remaining facies outside this bounding box are ignored if their total thickness (delta) is less than half vertical step.


Calling getRegularPile method for a given vertical step (zStep) produces following results:

◆ getRelPointFromGeo()

virtual Point2D iDomain::getRelPointFromGeo ( const Point2D geoPoint) const
pure virtual

Return a point into the relative referential system from a point into the geographical referential system.

◆ getRelPointFromGrid()

virtual Point2D iDomain::getRelPointFromGrid ( const MP_int &  ix,
const MP_int &  iy 
) const
pure virtual

Retrieve relative point from a grid one.

◆ getRotFlowGeo()

virtual MP_real iDomain::getRotFlowGeo ( ) const
pure virtual

Return flow rotation (in degrees clockwise) relative to South-North direction (90° <=> West-East)

◆ getRotGridGeo()

virtual MP_real iDomain::getRotGridGeo ( ) const
pure virtual

Return grid rotation (in degrees counterclockwise) relative to West-East direction (90° <=> South-North)

◆ getSlope()

virtual MP_real iDomain::getSlope ( ) const
pure virtual

Return global mean slope along flow direction (ratio positive decreasing)

◆ getSlopeAlongX()

virtual MP_real iDomain::getSlopeAlongX ( ) const
pure virtual

Return global mean slope along X (ratio positive decreasing)

◆ getSlopeAlongY()

virtual MP_real iDomain::getSlopeAlongY ( ) const
pure virtual

Return global mean slope along Y (ratio positive decreasing)

◆ getTopo()

virtual bool iDomain::getTopo ( Topo topo,
bool  with_water = true,
MP_age  age_limit = MP_UNKNOWN_INT_VALUE 
) const
pure virtual

Retrieve current topography in geographical system (including grid elevation)

◆ getZMaxGeo()

virtual MP_real iDomain::getZMaxGeo ( ) const
pure virtual

Return the highest elevation of the domain (in meters) (including elevation at origin but excluding mean slope)

◆ getZMaxRel()

virtual MP_real iDomain::getZMaxRel ( ) const
pure virtual

Return the highest elevation of the domain (in meters) (excluding elevation at origin and mean slope)

◆ getZMinGeo()

virtual MP_real iDomain::getZMinGeo ( ) const
pure virtual

Return the lowest elevation of the domain (in meters) (including elevation at origin but excluding mean slope)

◆ getZMinRel()

virtual MP_real iDomain::getZMinRel ( ) const
pure virtual

Return the lowest elevation of the domain (in meters) (excluding elevation at origin and mean slope)

◆ getZrefGeo()

virtual MP_real iDomain::getZrefGeo ( ) const
pure virtual

Return grid origin elevation (in meters)

◆ isValid()

virtual bool iDomain::isValid ( const MP_int &  ix,
const MP_int &  iy 
) const
pure virtual

Return true if indices are valid grid indices.

◆ saveF2G()

virtual bool iDomain::saveF2G ( const MP_string &  filename,
MP_real  dz,
bool  save_facies,
bool  save_grain,
bool  save_age,
MP_real  min_z = MP_UNKNOWN_REAL_VALUE,
MP_real  max_z = MP_UNKNOWN_REAL_VALUE,
const MP_string &  order = MP_DEFAULT_CELLS_ORDER 
) const
pure virtual

Export the whole simulation into an ASCII file with F2G format (see the User Manual for F2G format description).

Returns
true if success
Parameters
filenamefile path where to save the simulation
dzvertical discretization step
save_faciestrue to store facies variable
save_graintrue to store grain size variable
save_agetrue to store age variable
min_zminimum elevation of the 3D block
max_zmaximum elevation of the 3D block
orderorder in which cells are dumped (default +Y +X +Z)