My Project
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

typedef RegionMapping< Region >::RegionId RegionId
 Region identifier. More...
 

Public Member Functions

 SurfaceToReservoirVoidage (const PhaseUsage &phaseUsage, const Region &region)
 Constructor. More...
 
template<typename ElementContext , class EbosSimulator >
void defineState (const EbosSimulator &simulator)
 Compute pore volume averaged hydrocarbon state pressure, rs and rv. More...
 
template<class Coeff >
void calcCoeff (const RegionId r, const int pvtRegionIdx, Coeff &coeff) const
 Compute coefficients for surface-to-reservoir voidage conversion. More...
 
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
 Converting surface volume rates to reservoir voidage rates. More...
 
template<class SolventModule >
void calcCoeffSolvent (const RegionId r, const int pvtRegionIdx, double &coeff) const
 Compute coefficients for surface-to-reservoir voidage conversion for solvent. More...
 

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
FluidSystemFluid system class. Expected to be a BlackOilFluidSystem
RegionType 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 >
typedef RegionMapping<Region>::RegionId Opm::RateConverter::SurfaceToReservoirVoidage< FluidSystem, Region >::RegionId

Region identifier.

Integral type.

Constructor & Destructor Documentation

◆ SurfaceToReservoirVoidage()

template<class FluidSystem , class Region >
Opm::RateConverter::SurfaceToReservoirVoidage< FluidSystem, Region >::SurfaceToReservoirVoidage ( const PhaseUsage phaseUsage,
const Region &  region 
)
inline

Constructor.

Parameters
[in]regionForward 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
inline

Compute coefficients for surface-to-reservoir voidage conversion.

Template Parameters
InputType representing contiguous collection of component rates at surface conditions. Must support direct indexing through
operator[]()
.
CoeffType representing contiguous collection of surface-to-reservoir conversion coefficients. Must support direct indexing through
operator[]()
.
Parameters
[in]rFluid-in-place region of the well
[in]pvtRegionIdxPVT region of the well
[out]coeffSurface-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,
double &  coeff 
) const
inline

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

Parameters
[in]rFluid-in-place region of the well
[in]pvtRegionIdxPVT region of the well
[out]doubleSurface-to-reservoir conversion coefficients for solvent.

◆ calcReservoirVoidageRates()

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
inline

Converting surface volume rates to reservoir voidage rates.

Template Parameters
RatesType representing contiguous collection of surface-to-reservoir conversion coefficients. Must support direct indexing through
operator[]()
.
Parameters
[in]rFluid-in-place region of the well
[in]pvtRegionIdxPVT region of the well
[in]surface_ratessurface voluem rates for all active phases
[out]voidage_ratesreservoir volume rates for all active phases

◆ defineState()

template<class FluidSystem , class Region >
template<typename ElementContext , class EbosSimulator >
void Opm::RateConverter::SurfaceToReservoirVoidage< FluidSystem, Region >::defineState ( const EbosSimulator &  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 file: