Record Dynamic Well Status in 'wellData()' Output

This commit sets the 'data::Well::dynamicStatus' based on the
dynamically updated 'Schedule' object (i.e., from ACTIONX and
similar) and the results of well/operability testing (WECON and/or
WTEST).  If a well is closed due to economic limits (WECON) we still
provide summary-style data at the timestep that closed the well, but
omit this data at later steps until the well reopens.

We add a new parameter to WellState::report() to distinguish these
situations.

This is in preparation of making the 'BlackoilWellModel' manage both
open and shut wells alike.
This commit is contained in:
Bård Skaflestad
2021-03-18 17:28:28 +01:00
parent 65edfb702c
commit b982ad0fd2
5 changed files with 105 additions and 23 deletions
@@ -274,7 +274,7 @@ BOOST_AUTO_TEST_CASE(Pressure)
setSegPress(wells, wstate);
const auto rpt = wstate.report(setup.pu, setup.grid.c_grid()->global_cell);
const auto rpt = wstate.report(setup.pu, setup.grid.c_grid()->global_cell, [](const int){return false;});
{
const auto& xw = rpt.at("INJE01");
@@ -323,7 +323,7 @@ BOOST_AUTO_TEST_CASE(Rates)
setSegRates(wells, pu, wstate);
const auto rpt = wstate.report(pu, setup.grid.c_grid()->global_cell);
const auto rpt = wstate.report(pu, setup.grid.c_grid()->global_cell, [](const int){return false;});
const auto wat = pu.phase_used[Opm::BlackoilPhases::Aqua];
const auto oil = pu.phase_used[Opm::BlackoilPhases::Liquid];