|
My Project
|
Convert component rates at surface conditions to phase (voidage) rates at reservoir conditions. More...
#include <RateConverter.hpp>
Public Types | |
| using | Scalar = typename FluidSystem::Scalar |
| using | RegionId = typename RegionMapping< Region >::RegionId |
| Region identifier. | |
Public Member Functions | |
| SurfaceToReservoirVoidage (const PhaseUsage &phaseUsage, const Region ®ion) | |
| Constructor. | |
| template<typename ElementContext , class Simulator > | |
| void | defineState (const Simulator &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 Scalar p, const Scalar rs, const Scalar rv, const Scalar rsw, const Scalar rvw, const Scalar T, const Scalar 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 Scalar p, const Scalar rs, const Scalar rv, const Scalar rsw, const Scalar rvw, const Scalar T, const Scalar saltConcentration, const SurfaceRates &surface_rates, VoidageRates &voidage_rates) const |
| Convert surface volume flow rates to reservoir voidage flow rates. | |
| template<class Rates > | |
| std::pair< Scalar, Scalar > | inferDissolvedVaporisedRatio (const Scalar rsMax, const Scalar rvMax, const Rates &surface_rates) const |
| template<class SolventModule > | |
| void | calcCoeffSolvent (const RegionId r, const int pvtRegionIdx, Scalar &coeff) const |
| Compute coefficients for surface-to-reservoir voidage conversion for solvent. | |
| template<class Rates > | |
| std::pair< typename FluidSystem::Scalar, typename FluidSystem::Scalar > | inferDissolvedVaporisedRatio (const Scalar rsMax, const Scalar rvMax, const Rates &surface_rates) const |
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 Scalar | p, | ||
| const Scalar | rs, | ||
| const Scalar | rv, | ||
| const Scalar | rsw, | ||
| const Scalar | rvw, | ||
| const Scalar | T, | ||
| const Scalar | 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.