Add option for explicit vfp lookup for problmatic wells

This commit is contained in:
Tor Harald Sandve
2022-02-22 15:25:10 +01:00
parent b3a9253de1
commit b1b23a57de
11 changed files with 86 additions and 12 deletions

View File

@@ -87,10 +87,13 @@ double VFPProdProperties::bhp(int table_id,
const double& liquid,
const double& vapour,
const double& thp_arg,
const double& alq) const {
const double& alq,
const double& explicit_wfr,
const double& explicit_gfr,
const bool expvfp) const {
const VFPProdTable& table = detail::getTable(m_tables, table_id);
detail::VFPEvaluation retval = detail::bhp(table, aqua, liquid, vapour, thp_arg, alq);
detail::VFPEvaluation retval = detail::bhp(table, aqua, liquid, vapour, thp_arg, alq, explicit_wfr,explicit_gfr, expvfp);
return retval.value;
}
@@ -145,7 +148,10 @@ EvalWell VFPProdProperties::bhp(const int table_id,
const EvalWell& liquid,
const EvalWell& vapour,
const double& thp,
const double& alq) const
const double& alq,
const double& explicit_wfr,
const double& explicit_gfr,
const bool expvfp) const
{
//Get the table
const VFPProdTable& table = detail::getTable(m_tables, table_id);
@@ -155,6 +161,10 @@ EvalWell VFPProdProperties::bhp(const int table_id,
EvalWell flo = detail::getFlo(table, aqua, liquid, vapour);
EvalWell wfr = detail::getWFR(table, aqua, liquid, vapour);
EvalWell gfr = detail::getGFR(table, aqua, liquid, vapour);
if(expvfp) {
wfr = explicit_wfr;
gfr = explicit_gfr;
}
//First, find the values to interpolate between
//Value of FLO is negative in OPM for producers, but positive in VFP table
@@ -175,7 +185,7 @@ EvalWell VFPProdProperties::bhp(const int table_id,
#define INSTANCE(...) \
template __VA_ARGS__ VFPProdProperties::bhp<__VA_ARGS__>(const int, \
const __VA_ARGS__&, const __VA_ARGS__&, const __VA_ARGS__&, \
const double&, const double&) const;
const double&, const double&, const double&, const double&, const bool) const;
INSTANCE(DenseAd::Evaluation<double, -1, 4u>)
INSTANCE(DenseAd::Evaluation<double, -1, 5u>)