#include <ECLPvtCurveCollection.hpp>
|
| ECLPvtCurveCollection (const ECLGraph &G, const ECLInitFileData &init) |
|
void | setOutputUnits (std::unique_ptr< const ECLUnits::UnitSystem > usys) |
|
std::vector< PVTGraph > | getPvtCurve (const RawCurve curve, const ECLPhaseIndex phase, const int pvtRegionID) const |
|
std::vector< double > | getDynamicPropertySI (const RawCurve property, const ECLPhaseIndex phase, const int pvtRegionID, const std::vector< double > &phasePress, const std::vector< double > &mixRatio=std::vector< double >()) const |
|
std::vector< double > | getDynamicPropertyNative (const RawCurve property, const ECLPhaseIndex phase, const int pvtRegionID, std::vector< double > phasePress, std::vector< double > mixRatio=std::vector< double >()) const |
|
◆ ECLPvtCurveCollection()
Constructor
- Parameters
-
[in] | G | Connected topology of current model's active cells. Needed to linearise region mapping (e.g., SATNUM) that is distributed on local grids to all of the model's active cells (member function G.rawLinearisedCellData()
std::function< double(double, double)> function Definition: Operate.hpp:28
). |
[in] | init | Container of tabulated PVT functions for all PVT regions in the model G . |
◆ getDynamicPropertyNative()
std::vector< double > Opm::ECLPVT::ECLPvtCurveCollection::getDynamicPropertyNative |
( |
const RawCurve |
property, |
|
|
const ECLPhaseIndex |
phase, |
|
|
const int |
pvtRegionID, |
|
|
std::vector< double > |
phasePress, |
|
|
std::vector< double > |
mixRatio = std::vector< double >() |
|
) |
| const |
Compute a single dynamic property in a single active cell for a collection of cell states.
This interface is intended for direct calculation based on raw (unconverted) data vectors from an ECL result set. Consequently, phase property inputs (phase pressure and mixing ratios) must be in the result set's native/serialised collection of units of measure (e.g., pressures in Atmospheres and mixing ratios in scm^3/scm^3 for the "LAB" system of units).
- Parameters
-
[in] | property | Named property. Must be one of
@ FVF Formation volume factor (B_\alpha)
or . All other values return an empty result. |
[in] | phase | Phase for which to compute the property value. Must be or . All other values return an empty result. |
[in] | pvtRegionID | Value of pvtRegionID (1-based region value) |
[in] | phasePress | Sequence of phase pressure values pertaining to activeCell . Could, for instance, be the entire time-series of oil pressure values in that cell. Must be in the serialised system of units (i.e., Bars for METRIC, Psi for FIELD, and Atm for LAB and PVT-M). |
[in] | mixRatio | Sequence of phase mixing ratio values pertaining to activeCell . Could, for instance, be the entire time-series of dissolved gas/oil ratio values in that cell. Must be empty or match the size of phasePress . If empty, treated as std::vector<double>(phasePress.size(), 0.0)
which is typically appropriate only for dry gas or dead oil cases. |
Must be in the serialised system of units. In other words when the mixRatio represents the dissolved gas/oil ratio (Rs), then the input must be given in sm^3/sm^3 for METRIC, Mscf/stb for FIELD, scm^3/scm^3 for LAB and sm^3/sm^3 for PVT-M. Similarly, when the mixRatio represents the vapourised oil/gas ratio (Rv), then the input must be given in sm^3/sm^3 for METRIC, stb/Mscf for FIELD, scm^3/scm^3 for LAB and sm^3/sm^3 for PVT-M).
- Returns
- Sequence of dynamic property values corresponding to the requested property name of the identified phase in the particular active cell. Empty for invalid requests, number of elements equal to otherwise. Return values provided in the system of units specified by setOutputUnits(). Strict SI if no output units have been defined.
◆ getDynamicPropertySI()
std::vector< double > Opm::ECLPVT::ECLPvtCurveCollection::getDynamicPropertySI |
( |
const RawCurve |
property, |
|
|
const ECLPhaseIndex |
phase, |
|
|
const int |
pvtRegionID, |
|
|
const std::vector< double > & |
phasePress, |
|
|
const std::vector< double > & |
mixRatio = std::vector< double >() |
|
) |
| const |
Compute a single dynamic property in a single active cell for a collection of cell states.
Note: Phase property inputs (phase pressure and mixing ratios) must be in strict SI units of measure (Pascal and sm^3/sm^3, respectively).
- Parameters
-
[in] | property | Named property. Must be one of or . All other values return an empty result. |
[in] | phase | Phase for which to compute the property value. Must be or . All other values return an empty result. |
[in] | pvtRegionID | Value of pvtRegionID (1-based region value) |
[in] | phasePress | Sequence of phase pressure values pertaining to activeCell . Could, for instance, be the entire time-series of oil pressure values in that cell. |
[in] | mixRatio | Sequence of phase mixing ratio values pertaining to activeCell . Could, for instance, be the entire time-series of dissolved gas/oil ratio values in that cell. Must be empty or match the size of phasePress . If empty, treated as std::vector<double>(phasePress.size(), 0.0)
which is typically appropriate only for dry gas or dead oil cases. |
- Returns
- Sequence of dynamic property values corresponding to the requested property name of the identified phase for the current PVT region. Empty for invalid requests, number of elements equal to otherwise. Return values are in strict SI units of measure–i.e., rm^3/sm^3 for the formation volume factors and Pascal seconds for the viscosities.
◆ getPvtCurve()
std::vector< PVTGraph > Opm::ECLPVT::ECLPvtCurveCollection::getPvtCurve |
( |
const RawCurve |
curve, |
|
|
const ECLPhaseIndex |
phase, |
|
|
const int |
pvtRegionID |
|
) |
| const |
Retrieve 2D graph representation of Phase PVT property function in a specific active cell.
- Parameters
-
[in] | curve | PVT property curve descriptor |
[in] | phase | Phase for which to compute extract graph representation of PVT property function. |
[in] | pvtRegionID | Value of pvtRegionID (1-based region value) |
- Returns
- Collection of 2D graphs for PVT property curve identified by requests represented by
curve , phase and pvtRegionID . One curve (vector element) for each tabulated node of the primary look-up key. Single curve (i.e., a single element vector) in the case of dry gas (no vaporised oil) or dead oil (no dissolved gas). Return values provided in the system of units specified by setOutputUnits(). Strict SI if no output units have been defined.
No curves for water or dead oil with constant compressibility (i.e., keyword 'PVCDO' in the input deck).
Example: Retrieve collection of gas viscosity curves pertaining to PVT region 1.
◆ setOutputUnits()
void Opm::ECLPVT::ECLPvtCurveCollection::setOutputUnits |
( |
std::unique_ptr< const ECLUnits::UnitSystem > |
usys | ) |
|
Define a collection of units of measure for output purposes.
PVT property curves will be reported in the appropriate units of this system. If this function is never called (or called with null pointer), then the output units are implicitly set to the flow-diagnostics module's internal units of measurement (meaning all properties and curves will be reported in strict SI units).
- Parameters
-
[in] | usys | Collection of units of measure for output purposes. Typically the return value from one of the functions of the namespace. |
The documentation for this class was generated from the following file:
|