mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
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:
@@ -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"),
|
||||
|
||||
@@ -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"),
|
||||
|
||||
Reference in New Issue
Block a user