|
My Project
|
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 Member Functions | |
| void | addTable (const VFPProdTable &new_table) |
| Takes no ownership of data. | |
| 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 |
| Linear interpolation of bhp as a function of the input parameters given as Evalutions Each entry corresponds typically to one well. | |
| 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 |
| Linear interpolation of bhp as a function of the input parameters. | |
| 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. | |
| 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 | hasTable (const int table_id) const |
| Check whether there is table associated with ID. | |
| bool | empty () const |
| Returns true if no vfp tables are in the current map. | |
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 |
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.
| 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.
| table_id | Table 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. |
| aqua | Water phase |
| liquid | Oil phase |
| vapour | Gas phase |
| thp | Tubing head pressure |
| alq | Artificial lift or other parameter |
| 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.
| table_id | Table number to use |
| aqua | Water phase |
| liquid | Oil phase |
| vapour | Gas phase |
| thp | Tubing head pressure |
| alq | Artificial lift or other parameter |
| 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.
| table_id | Table number to use |
| aqua | Water phase |
| liquid | Oil phase |
| vapour | Gas phase |
| bhp | Bottom hole pressure |
| alq | Artificial lift or other parameter |
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.