RESV: Prepare for dynamic rate distribution calculation

This commit changes the API of class SimulatorFullyImplicitBlackoil<>
in order to support wells controlled by (total) reservoir voidage
volume rates.  Specifically, we switch to holding a mutable Wells
object (backed by a std::shared_ptr<>) in class Impl rather than a
reference to a WellsManager.  This allows dynamically updating rate
distributions and targets of individual well controls.  That, in
turn, is a prerequisite to supporting ECL-style "RESV" control
modes--be it in prediction or history matching capacity.

While in the process of API changes, also prepare for the second
stage of "WCONHIST/RESV" support: Accept a ScheduleConstPtr that
holds the input deck's notion of the history matching vs. prediction
controls.  We need to distinguish the two in order to support the
exact semantics of "WCONHIST/RESV".

Update SimFIBO<> clients accordingly.
This commit is contained in:
Bård Skaflestad
2014-07-03 15:09:50 +02:00
parent 91567a9857
commit 23520be41a
4 changed files with 26 additions and 17 deletions

View File

@@ -226,11 +226,12 @@ try
// Create and run simulator.
SimulatorFullyImplicitBlackoil<UnstructuredGrid> simulator(param,
eclipseState->getSchedule(),
*grid->c_grid(),
geology,
*new_props,
rock_comp->isActive() ? rock_comp.get() : 0,
wells,
wells.c_wells(),
*fis_solver,
grav,
deck->hasKeyword("DISGAS"),

View File

@@ -272,11 +272,12 @@ try
}
SimulatorFullyImplicitBlackoil<Dune::CpGrid> simulator(param,
eclipseState->getSchedule(),
*grid,
geology,
*new_props,
rock_comp->isActive() ? rock_comp.get() : 0,
wells,
wells.c_wells(),
*fis_solver,
grav,
deck->hasKeyword("DISGAS"),