#include <VFPProdProperties.hpp>

Public Member Functions

 VFPProdProperties ()=default
 
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 double &thp, const double &alq, const double &explicit_wfr, const double &explicit_gfr, const bool use_expvfp) const
 
double bhp (int table_id, const double &aqua, const double &liquid, const double &vapour, const double &thp, const double &alq, const double &explicit_wfr, const double &explicit_gfr, const bool use_expvfp) const
 
double thp (int table_id, const double &aqua, const double &liquid, const double &vapour, const double &bhp, const double &alq) const
 
const VFPProdTable & getTable (const int table_id) const
 
bool hasTable (const int table_id) const
 
bool empty () const
 
double minimumBHP (const int table_id, const double thp, const double wfr, const double gfr, const double alq) const
 

Protected Member Functions

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

Protected Attributes

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

Detailed Description

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.

Constructor & Destructor Documentation

◆ VFPProdProperties()

Opm::VFPProdProperties::VFPProdProperties ( )
default

Member Function Documentation

◆ addTable()

void Opm::VFPProdProperties::addTable ( const VFPProdTable &  new_table)

Takes no ownership of data.

Referenced by Opm::VFPProperties::VFPProperties().

◆ bhp() [1/2]

template<class EvalWell >
EvalWell Opm::VFPProdProperties::bhp ( const int  table_id,
const EvalWell &  aqua,
const EvalWell &  liquid,
const EvalWell &  vapour,
const double &  thp,
const double &  alq,
const double &  explicit_wfr,
const double &  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]

double Opm::VFPProdProperties::bhp ( int  table_id,
const double &  aqua,
const double &  liquid,
const double &  vapour,
const double &  thp,
const double &  alq,
const double &  explicit_wfr,
const double &  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()

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

◆ empty()

bool Opm::VFPProdProperties::empty ( ) const
inline

Returns true if no vfp tables are in the current map

References m_tables.

◆ getTable()

const VFPProdTable & Opm::VFPProdProperties::getTable ( const int  table_id) const

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

Referenced by Opm::VFPProperties::getExplicitGFR(), and Opm::VFPProperties::getExplicitWFR().

◆ hasTable()

bool Opm::VFPProdProperties::hasTable ( const int  table_id) const

Check whether there is table associated with ID

◆ minimumBHP()

double Opm::VFPProdProperties::minimumBHP ( const int  table_id,
const double  thp,
const double  wfr,
const double  gfr,
const double  alq 
) const

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

◆ thp()

double Opm::VFPProdProperties::thp ( int  table_id,
const double &  aqua,
const double &  liquid,
const double &  vapour,
const double &  bhp,
const double &  alq 
) 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

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

Referenced by empty().


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