Loading...
Searching...
No Matches
Opm::RateConverter::SurfaceToReservoirVoidage< FluidSystem, Region > Class Template Reference

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 Region &region)
| 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

## Detailed Description

template<class FluidSystem, class Region>
class Opm::RateConverter::SurfaceToReservoirVoidage< FluidSystem, Region >

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.

Template Parameters

  FluidSystem | Fluid system class. Expected to be a BlackOilFluidSystem
  Region | Type of a forward region mapping. Expected to provide indexed access through operator[]() as well as inner types `value_type`, `size_type`, and `const_iterator`. Typically std::vector<int> .

## Member Typedef Documentation

## RegionId

template<class FluidSystem, class Region>

using Opm::RateConverter::SurfaceToReservoirVoidage< FluidSystem, Region >::RegionId = typename RegionMapping<Region>::RegionId

Region identifier.

Integral type.

## Constructor & Destructor Documentation

## SurfaceToReservoirVoidage()

template<class FluidSystem, class Region>

Opm::RateConverter::SurfaceToReservoirVoidage< FluidSystem, Region >::SurfaceToReservoirVoidage | ( | const Region & | region | ) |

inline

Constructor.

Parameters

  [in] | region | Forward region mapping. Often corresponds to the "FIPNUM" mapping of an ECLIPSE input deck.

## Member Function Documentation

## calcCoeff()

template<class FluidSystem, class Region>
template<class Coeff>

void Opm::RateConverter::SurfaceToReservoirVoidage< FluidSystem, Region >::calcCoeff | ( | const RegionId | r,
|  | const int | pvtRegionIdx,
|  | Coeff & | coeff ) const

Compute coefficients for surface-to-reservoir voidage conversion.

Template Parameters

  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[]() .

Parameters

  [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.

## calcCoeffSolvent()

template<class FluidSystem, class Region>
template<class SolventModule>

void Opm::RateConverter::SurfaceToReservoirVoidage< FluidSystem, Region >::calcCoeffSolvent | ( | const RegionId | r,
|  | const int | pvtRegionIdx,
|  | Scalar & | coeff ) const

inline

Compute coefficients for surface-to-reservoir voidage conversion for solvent.

Parameters

  [in] | r | Fluid-in-place region of the well
  [in] | pvtRegionIdx | PVT region of the well
  [out] | coeff | Surface-to-reservoir conversion coefficients for solvent.

## calcReservoirVoidageRates() [1/2]

template<class FluidSystem, class Region>
template<typename SurfaceRates, typename VoidageRates>

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.

Template Parameters

  Rates | Type representing contiguous collection of surface flow rates. Must support direct indexing through operator[]() .

Parameters

  [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] | rvw | 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.

## calcReservoirVoidageRates() [2/2]

template<class FluidSystem, class Region>
template<class Rates>

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

defineState()
Opm::RateConverter::SurfaceToReservoirVoidage::defineState
void defineState(const Simulator &simulator)
Compute pore volume averaged hydrocarbon state pressure, rs and rv.
Definition RateConverter.hpp:93

prior to invoking this member function.

Template Parameters

  Rates | Type representing contiguous collection of surface flow rates. Must support direct indexing through operator[]() .

Parameters

  [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.

## defineState()

template<class FluidSystem, class Region>
template<typename ElementContext, class Simulator>

void Opm::RateConverter::SurfaceToReservoirVoidage< FluidSystem, Region >::defineState | ( | const Simulator & | simulator | ) |

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.

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

- opm/simulators/wells/RateConverter.hpp
- opm/simulators/wells/RateConverter.cpp