Opm::VFPProdTable Class Reference

#include <VFPProdTable.hpp>

Public Types

enum  FLO_TYPE { FLO_OIL =1, FLO_LIQ, FLO_GAS, FLO_INVALID }
 Rate type. More...
 
enum  WFR_TYPE { WFR_WOR =11, WFR_WCT, WFR_WGR, WFR_INVALID }
 Water fraction variable. More...
 
enum  GFR_TYPE { GFR_GOR =21, GFR_GLR, GFR_OGR, GFR_INVALID }
 Gas fraction variable. More...
 
enum  ALQ_TYPE {
  ALQ_GRAT =31, ALQ_IGLR, ALQ_TGLR, ALQ_PUMP,
  ALQ_COMP, ALQ_BEAN, ALQ_UNDEF, ALQ_INVALID
}
 Artificial lift quantity. More...
 
typedef boost::multi_array
< double, 5 > 
array_type
 
typedef boost::array
< array_type::index, 5 > 
extents
 

Public Member Functions

 VFPProdTable ()
 
void init (int table_num, double datum_depth, FLO_TYPE flo_type, WFR_TYPE wfr_type, GFR_TYPE gfr_type, ALQ_TYPE alq_type, const std::vector< double > &flo_data, const std::vector< double > &thp_data, const std::vector< double > &wfr_data, const std::vector< double > &gfr_data, const std::vector< double > &alq_data, const array_type &data)
 
void init (DeckKeywordConstPtr table, std::shared_ptr< Opm::UnitSystem > deck_unit_system)
 
int getTableNum () const
 
double getDatumDepth () const
 
FLO_TYPE getFloType () const
 
WFR_TYPE getWFRType () const
 
GFR_TYPE getGFRType () const
 
ALQ_TYPE getALQType () const
 
const std::vector< double > & getFloAxis () const
 
const std::vector< double > & getTHPAxis () const
 
const std::vector< double > & getWFRAxis () const
 
const std::vector< double > & getGFRAxis () const
 
const std::vector< double > & getALQAxis () const
 
const array_typegetTable () const
 

Detailed Description

Class for reading data from a VFPPROD (vertical flow performance production) table

Member Typedef Documentation

typedef boost::multi_array<double, 5> Opm::VFPProdTable::array_type
typedef boost::array<array_type::index, 5> Opm::VFPProdTable::extents

Member Enumeration Documentation

Artificial lift quantity.

Enumerator
ALQ_GRAT 
ALQ_IGLR 
ALQ_TGLR 
ALQ_PUMP 
ALQ_COMP 
ALQ_BEAN 
ALQ_UNDEF 
ALQ_INVALID 

Rate type.

Enumerator
FLO_OIL 
FLO_LIQ 
FLO_GAS 
FLO_INVALID 

Gas fraction variable.

Enumerator
GFR_GOR 
GFR_GLR 
GFR_OGR 
GFR_INVALID 

Water fraction variable.

Enumerator
WFR_WOR 
WFR_WCT 
WFR_WGR 
WFR_INVALID 

Constructor & Destructor Documentation

Opm::VFPProdTable::VFPProdTable ( )
inline

Constructor

Member Function Documentation

const std::vector<double>& Opm::VFPProdTable::getALQAxis ( ) const
inline

Returns the coordinates for the artificial lift quantity points in the table

Returns
Artificial lift quantity coordinates
ALQ_TYPE Opm::VFPProdTable::getALQType ( ) const
inline

Returns the artificial lift quantity type for the ALQ axis

Returns
artificial lift quantity type
double Opm::VFPProdTable::getDatumDepth ( ) const
inline

Returns the datum depth for the table data

Returns
datum depth
const std::vector<double>& Opm::VFPProdTable::getFloAxis ( ) const
inline

Returns the coordinates of the FLO sample points in the table

Returns
Flo sample coordinates
FLO_TYPE Opm::VFPProdTable::getFloType ( ) const
inline

Returns the rate/flo type for the flo axis

Returns
flo type
const std::vector<double>& Opm::VFPProdTable::getGFRAxis ( ) const
inline

Returns the coordinates for the gas fraction sample points in the table

Returns
Gas fraction coordinates
GFR_TYPE Opm::VFPProdTable::getGFRType ( ) const
inline

Returns the gas fraction type for the GFR axis

Returns
gas fraction type
const array_type& Opm::VFPProdTable::getTable ( ) const
inline

Returns the data of the table itself. The data is ordered so that

table = getTable(); bhp = table[thp_idx][wfr_idx][gfr_idx][alq_idx][flo_idx];

gives the bottom hole pressure value in the table for the coordinate given by flo_axis = getFloAxis(); thp_axis = getTHPAxis(); ...

flo_coord = flo_axis(flo_idx); thp_coord = thp_axis(thp_idx); ...

int Opm::VFPProdTable::getTableNum ( ) const
inline

Returns the table number

Returns
table number
const std::vector<double>& Opm::VFPProdTable::getTHPAxis ( ) const
inline

Returns the coordinates for the tubing head pressure sample points in the table

Returns
Tubing head pressure coordinates
const std::vector<double>& Opm::VFPProdTable::getWFRAxis ( ) const
inline

Returns the coordinates for the water fraction sample points in the table

Returns
Water fraction coordinates
WFR_TYPE Opm::VFPProdTable::getWFRType ( ) const
inline

Returns the water fraction type for the WFR axis

Returns
water fraction type
void Opm::VFPProdTable::init ( int  table_num,
double  datum_depth,
FLO_TYPE  flo_type,
WFR_TYPE  wfr_type,
GFR_TYPE  gfr_type,
ALQ_TYPE  alq_type,
const std::vector< double > &  flo_data,
const std::vector< double > &  thp_data,
const std::vector< double > &  wfr_data,
const std::vector< double > &  gfr_data,
const std::vector< double > &  alq_data,
const array_type data 
)

Initializes objects from raw data. NOTE: All raw data assumed to be in SI units

Parameters
table_numVFP table number
datum_depthReference depth for BHP
flo_typeSpecifies what flo_data represents
wfr_typeSpecifies what wfr_data represents
gfr_typeSpecifies what gfr_data represents
alq_typeSpecifies what alq_data represents
flo_dataAxis for flo_type
thp_dataAxis for tubing head pressure
wfr_dataAxis for wfr_type
gfr_dataAxis for gfr_type
alq_dataAxis for alq_type
dataBHP to be interpolated. Given as a 5D array so that BHP = data[thp][wfr][gfr][alq][flo] for the indices thp, wfr, etc.
void Opm::VFPProdTable::init ( DeckKeywordConstPtr  table,
std::shared_ptr< Opm::UnitSystem deck_unit_system 
)

Constructor which parses a deck keyword and retrieves the relevant parts for a VFP table.


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