Opm::VFPProdProperties< Scalar > Class Template Reference

#include <VFPProdProperties.hpp>

Inheritance diagram for Opm::VFPProdProperties< Scalar >:
Inheritance graph

Public Member Functions

void addTable (const VFPProdTable &new_table)
 
template<class EvalWell >
EvalWell bhp (const int table_id, const EvalWell &aqua, const EvalWell &liquid, const EvalWell &vapour, const Scalar thp, const Scalar alq, const Scalar explicit_wfr, const Scalar explicit_gfr, const bool use_expvfp) const
 
Scalar bhp (const int table_id, const Scalar aqua, const Scalar liquid, const Scalar vapour, const Scalar thp, const Scalar alq, const Scalar explicit_wfr, const Scalar explicit_gfr, const bool use_expvfp) const
 
Scalar thp (const int table_id, const Scalar aqua, const Scalar liquid, const Scalar vapour, const Scalar bhp, const Scalar alq, const Scalar explicit_wrf, const Scalar explicit_gfr, const bool use_expvfp) const
 
const VFPProdTable & getTable (const int table_id) const
 
bool hasTable (const int table_id) const
 
bool empty () const
 
Scalar minimumBHP (const int table_id, const Scalar thp, const Scalar wfr, const Scalar gfr, const Scalar alq) const
 

Protected Member Functions

std::vector< Scalar > bhpwithflo (const std::vector< Scalar > &flos, const int table_id, const Scalar wfr, const Scalar gfr, const Scalar thp, const Scalar alq, const Scalar dp) const
 

Protected Attributes

std::map< int, std::reference_wrapper< const VFPProdTable > > m_tables
 

Detailed Description

template<class Scalar>
class Opm::VFPProdProperties< Scalar >

Class which linearly interpolates BHP as a function of rate, tubing head pressure, water fraction, gas fraction, and artificial lift for production VFP tables, and similarly the BHP as a function of the rate and tubing head pressure.

Member Function Documentation

◆ addTable()

template<class Scalar >
void Opm::VFPProdProperties< Scalar >::addTable ( const VFPProdTable &  new_table)

Takes no ownership of data.

◆ bhp() [1/2]

template<class Scalar >
template<class EvalWell >
EvalWell Opm::VFPProdProperties< Scalar >::bhp ( const int  table_id,
const EvalWell &  aqua,
const EvalWell &  liquid,
const EvalWell &  vapour,
const Scalar  thp,
const Scalar  alq,
const Scalar  explicit_wfr,
const Scalar  explicit_gfr,
const bool  use_expvfp 
) const

Linear interpolation of bhp as a function of the input parameters given as Evalutions Each entry corresponds typically to one well.

Parameters
table_idTable number to use. A negative entry (e.g., -1) will indicate that no table is used, and the corresponding BHP will be calculated as a constant -1e100.
aquaWater phase
liquidOil phase
vapourGas phase
thpTubing head pressure
alqArtificial lift or other parameter
Returns
The bottom hole pressure, interpolated/extrapolated linearly using the above parameters from the values in the input table, for each entry in the input ADB objects.

◆ bhp() [2/2]

template<class Scalar >
Scalar Opm::VFPProdProperties< Scalar >::bhp ( const int  table_id,
const Scalar  aqua,
const Scalar  liquid,
const Scalar  vapour,
const Scalar  thp,
const Scalar  alq,
const Scalar  explicit_wfr,
const Scalar  explicit_gfr,
const bool  use_expvfp 
) const

Linear interpolation of bhp as a function of the input parameters

Parameters
table_idTable number to use
aquaWater phase
liquidOil phase
vapourGas phase
thpTubing head pressure
alqArtificial lift or other parameter
Returns
The bottom hole pressure, interpolated/extrapolated linearly using the above parameters from the values in the input table.

◆ bhpwithflo()

template<class Scalar >
std::vector< Scalar > Opm::VFPProdProperties< Scalar >::bhpwithflo ( const std::vector< Scalar > &  flos,
const int  table_id,
const Scalar  wfr,
const Scalar  gfr,
const Scalar  thp,
const Scalar  alq,
const Scalar  dp 
) const
protected

◆ empty()

template<class Scalar >
bool Opm::VFPProdProperties< Scalar >::empty ( ) const
inline

Returns true if no vfp tables are in the current map

References Opm::VFPProdProperties< Scalar >::m_tables.

◆ getTable()

template<class Scalar >
const VFPProdTable & Opm::VFPProdProperties< Scalar >::getTable ( const int  table_id) const

Returns the table associated with the ID, or throws an exception if the table does not exist

◆ hasTable()

template<class Scalar >
bool Opm::VFPProdProperties< Scalar >::hasTable ( const int  table_id) const

Check whether there is table associated with ID

◆ minimumBHP()

template<class Scalar >
Scalar Opm::VFPProdProperties< Scalar >::minimumBHP ( const int  table_id,
const Scalar  thp,
const Scalar  wfr,
const Scalar  gfr,
const Scalar  alq 
) const

Returns minimum bhp for given thp, wfr, gfr and alq

◆ thp()

template<class Scalar >
Scalar Opm::VFPProdProperties< Scalar >::thp ( const int  table_id,
const Scalar  aqua,
const Scalar  liquid,
const Scalar  vapour,
const Scalar  bhp,
const Scalar  alq,
const Scalar  explicit_wrf,
const Scalar  explicit_gfr,
const bool  use_expvfp 
) const

Linear interpolation of thp as a function of the input parameters

Parameters
table_idTable number to use
aquaWater phase
liquidOil phase
vapourGas phase
bhpBottom hole pressure
alqArtificial lift or other parameter
Returns
The tubing hole pressure, interpolated/extrapolated linearly using the above parameters from the values in the input table.

Member Data Documentation

◆ m_tables

template<class Scalar >
std::map<int, std::reference_wrapper<const VFPProdTable> > Opm::VFPProdProperties< Scalar >::m_tables
protected

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