My Project
|
Convert component rates at surface conditions to phase (voidage) rates at reservoir conditions. More...
#include <RateConverter.hpp>
Public Types | |
using | RegionId = typename RegionMapping< Region >::RegionId |
Region identifier. | |
Public Member Functions | |
SurfaceToReservoirVoidage (const PhaseUsage &phaseUsage, const Region ®ion) | |
Constructor. | |
template<typename ElementContext , class EbosSimulator > | |
void | defineState (const EbosSimulator &simulator) |
Compute pore volume averaged hydrocarbon state pressure, rs and rv. | |
template<class Coeff > | |
void | calcCoeff (const RegionId r, const int pvtRegionIdx, Coeff &coeff) const |
Compute coefficients for surface-to-reservoir voidage conversion. | |
template<class Coeff , class Rates > | |
void | calcCoeff (const RegionId r, const int pvtRegionIdx, const Rates &surface_rates, Coeff &coeff) const |
template<class Coeff > | |
void | calcCoeff (const int pvtRegionIdx, const double p, const double rs, const double rv, const double rsw, const double rvw, const double T, const double saltConcentration, Coeff &coeff) const |
template<class Coeff > | |
void | calcInjCoeff (const RegionId r, const int pvtRegionIdx, Coeff &coeff) const |
template<class Rates > | |
void | calcReservoirVoidageRates (const RegionId r, const int pvtRegionIdx, const Rates &surface_rates, Rates &voidage_rates) const |
Convert surface volume flow rates to reservoir voidage flow rates. | |
template<typename SurfaceRates , typename VoidageRates > | |
void | calcReservoirVoidageRates (const int pvtRegionIdx, const double p, const double rs, const double rv, const double rsw, const double rvw, const double T, const double saltConcentration, const SurfaceRates &surface_rates, VoidageRates &voidage_rates) const |
Convert surface volume flow rates to reservoir voidage flow rates. | |
template<class Rates > | |
std::pair< double, double > | inferDissolvedVaporisedRatio (const double rsMax, const double rvMax, const Rates &surface_rates) const |
template<class SolventModule > | |
void | calcCoeffSolvent (const RegionId r, const int pvtRegionIdx, double &coeff) const |
Compute coefficients for surface-to-reservoir voidage conversion for solvent. | |
Convert component rates at surface conditions to phase (voidage) rates at reservoir conditions.
The conversion uses fluid properties evaluated at average hydrocarbon pressure in regions or field.
FluidSystem | Fluid system class. Expected to be a BlackOilFluidSystem |
Region | Type of a forward region mapping. Expected to provide indexed access through operator[]()
value_type , size_type , and const_iterator . Typically std::vector<int>
|
using Opm::RateConverter::SurfaceToReservoirVoidage< FluidSystem, Region >::RegionId = typename RegionMapping<Region>::RegionId |
Region identifier.
Integral type.
|
inline |
Constructor.
[in] | region | Forward region mapping. Often corresponds to the "FIPNUM" mapping of an ECLIPSE input deck. |
void Opm::RateConverter::SurfaceToReservoirVoidage< FluidSystem, Region >::calcCoeff | ( | const RegionId | r, |
const int | pvtRegionIdx, | ||
Coeff & | coeff | ||
) | const |
Compute coefficients for surface-to-reservoir voidage conversion.
Input | Type representing contiguous collection of component rates at surface conditions. Must support direct indexing through operator[]()
|
Coeff | Type representing contiguous collection of surface-to-reservoir conversion coefficients. Must support direct indexing through operator[]()
|
[in] | r | Fluid-in-place region of the well |
[in] | pvtRegionIdx | PVT region of the well |
[out] | coeff | Surface-to-reservoir conversion coefficients that can be used to compute total reservoir volumes from surface volumes with the formula q_{rT} = \sum_p coeff[p] q_{sp}. However, individual phase reservoir volumes cannot be calculated from these coefficients (i.e. q_{rp} is not equal to coeff[p] q_{sp}) since they can depend on more than one surface volume rate when we have dissolved gas or vaporized oil. |
|
inline |
Compute coefficients for surface-to-reservoir voidage conversion for solvent.
[in] | r | Fluid-in-place region of the well |
[in] | pvtRegionIdx | PVT region of the well |
[out] | double | Surface-to-reservoir conversion coefficients for solvent. |
void Opm::RateConverter::SurfaceToReservoirVoidage< FluidSystem, Region >::calcReservoirVoidageRates | ( | const int | pvtRegionIdx, |
const double | p, | ||
const double | rs, | ||
const double | rv, | ||
const double | rsw, | ||
const double | rvw, | ||
const double | T, | ||
const double | saltConcentration, | ||
const SurfaceRates & | surface_rates, | ||
VoidageRates & | voidage_rates | ||
) | const |
Convert surface volume flow rates to reservoir voidage flow rates.
State independent version.
Rates | Type representing contiguous collection of surface flow rates. Must support direct indexing through operator[]()
|
[in] | pvtRegionIdx | PVT region. |
[in] | p | Fluid pressure. |
[in] | rs | Dissolved gas/oil ratio. |
[in] | rv | Vaporised oil/gas ratio. |
[in] | rsw | Dissolved gas/water ratio. |
[in] | rwv | Vaporised water/gas ratio. |
[in] | T | Temperature. Unused in non-thermal simulation runs. |
[in] | saltConcentration | Salt concentration. Unused in simulation runs without salt precipitation. |
[in] | surface_rates | Surface volume flow rates for all active phases. |
[out] | voidage_rates | Reservoir volume flow rates for all active phases. |
void Opm::RateConverter::SurfaceToReservoirVoidage< FluidSystem, Region >::calcReservoirVoidageRates | ( | const RegionId | r, |
const int | pvtRegionIdx, | ||
const Rates & | surface_rates, | ||
Rates & | voidage_rates | ||
) | const |
Convert surface volume flow rates to reservoir voidage flow rates.
State dependent version. Client must call
prior to invoking this member function.
Rates | Type representing contiguous collection of surface flow rates. Must support direct indexing through operator[]()
|
[in] | r | Zero based fluid-in-place region index. |
[in] | pvtRegionIdx | Zero based PVT region index. |
[in] | surface_rates | surface volume flow rates for all active phases. |
[out] | voidage_rates | reservoir volume flow rates for all active phases. |
|
inline |
Compute pore volume averaged hydrocarbon state pressure, rs and rv.
Fluid properties are evaluated at average hydrocarbon state for purpose of conversion from surface rate to reservoir voidage rate.