All Classes Namespaces Files Functions Variables Typedefs Enumerator Pages
Opm::VFPProdProperties Class Reference

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

#include <VFPProdProperties.hpp>

Public Types

typedef AutoDiffBlock< double > ADB
 

Public Member Functions

 VFPProdProperties ()
 Empty constructor.
 
 VFPProdProperties (const VFPProdTable *prod_table)
 Constructor Takes no ownership of data. More...
 
 VFPProdProperties (const std::map< int, VFPProdTable > &prod_tables)
 Constructor Takes no ownership of data. More...
 
ADB bhp (const std::vector< int > &table_id, const Wells &wells, const ADB &qs, const ADB &thp, const ADB &alq) const
 Linear interpolation of bhp as function of the input parameters. More...
 
ADB bhp (const std::vector< int > &table_id, const ADB &aqua, const ADB &liquid, const ADB &vapour, const ADB &thp, const ADB &alq) const
 Linear interpolation of bhp as a function of the input parameters given as ADBs Each entry corresponds typically to one well. More...
 
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
 Linear interpolation of bhp as a function of the input parameters given as Evalutions Each entry corresponds typically to one well. More...
 
double bhp (int table_id, const double &aqua, const double &liquid, const double &vapour, const double &thp, const double &alq) const
 Linear interpolation of bhp as a function of the input parameters. More...
 
double 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. More...
 
const VFPProdTable * getTable (const int table_id) const
 Returns the table associated with the ID, or throws an exception if the table does not exist.
 
bool empty () const
 Returns true if no vfp tables are in the current map.
 

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

Opm::VFPProdProperties::VFPProdProperties ( const VFPProdTable *  prod_table)
explicit

Constructor Takes no ownership of data.

Parameters
prod_tableA single VFPPROD table
Opm::VFPProdProperties::VFPProdProperties ( const std::map< int, VFPProdTable > &  prod_tables)
explicit

Constructor Takes no ownership of data.

Parameters
prod_tablesA map of different VFPPROD tables.

Member Function Documentation

VFPProdProperties::ADB Opm::VFPProdProperties::bhp ( const std::vector< int > &  table_id,
const Wells &  wells,
const ADB qs,
const ADB thp,
const ADB alq 
) const

Linear interpolation of bhp as function of the input parameters.

Parameters
table_idTable number to use
wellsWells structure with information about wells in qs
qsFlow quantities
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.
VFPProdProperties::ADB Opm::VFPProdProperties::bhp ( const std::vector< int > &  table_id,
const ADB aqua,
const ADB liquid,
const ADB vapour,
const ADB thp,
const ADB alq 
) const

Linear interpolation of bhp as a function of the input parameters given as ADBs 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.
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
inline

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

Find the function bhp_array(thp) by creating a 1D view of the data by interpolating for every value of thp. This might be somewhat expensive, but let us assome that nthp is small Recall that flo is negative in Opm, so switch the sign


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