mirror of
https://github.com/OPM/opm-simulators.git
synced 2024-11-28 20:13:49 -06:00
Aquifer Model: Add Initialization from Restart Data
This commit adds a new member function, initFromRestart() to the EclBaseAquiferModel and the BlackoilAquiferModel. The former does nothing, the latter calls AquiferInterface::initFromRestart() on the contained analytic aquifer objects.
This commit is contained in:
parent
df86d01486
commit
4c4a893781
@ -27,8 +27,12 @@
|
||||
#ifndef EWOMS_ECL_BASE_AQUIFER_MODEL_HH
|
||||
#define EWOMS_ECL_BASE_AQUIFER_MODEL_HH
|
||||
|
||||
#include <opm/output/data/Aquifer.hpp>
|
||||
|
||||
#include <opm/models/utils/propertysystem.hh>
|
||||
|
||||
#include <vector>
|
||||
|
||||
BEGIN_PROPERTIES
|
||||
|
||||
NEW_PROP_TAG(Simulator);
|
||||
@ -64,6 +68,18 @@ public:
|
||||
void initialSolutionApplied()
|
||||
{ }
|
||||
|
||||
/*!
|
||||
* \brief Called if aquifers are being initialized from values retrieved
|
||||
* from a restart file.
|
||||
*
|
||||
* \param[in] aquiferSoln Set of aquifer-related initial values, mostly
|
||||
* pertaining to analytic aquifers. Contains at minimum the
|
||||
* aquifer pressure and the base run's total produced liquid
|
||||
* volume from the model's aquifers.
|
||||
*/
|
||||
void initFromRestart(const std::vector<data::AquiferData>& aquiferSoln OPM_UNUSED)
|
||||
{ }
|
||||
|
||||
/*!
|
||||
* \brief This method is called when a new episode (report step) starts.
|
||||
*/
|
||||
|
@ -29,11 +29,17 @@
|
||||
#include <opm/parser/eclipse/EclipseState/AquiferCT.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Aquifetp.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Aquancon.hpp>
|
||||
#include <opm/simulators/timestepping/SimulatorTimer.hpp>
|
||||
|
||||
#include <opm/output/data/Aquifer.hpp>
|
||||
|
||||
#include <opm/simulators/aquifers/AquiferCarterTracy.hpp>
|
||||
#include <opm/simulators/aquifers/AquiferFetkovich.hpp>
|
||||
#include <opm/simulators/timestepping/SimulatorTimer.hpp>
|
||||
|
||||
#include <opm/material/densead/Math.hpp>
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace Opm {
|
||||
|
||||
/// Class for handling the blackoil well model.
|
||||
@ -47,6 +53,8 @@ namespace Opm {
|
||||
explicit BlackoilAquiferModel(Simulator& simulator);
|
||||
|
||||
void initialSolutionApplied();
|
||||
void initFromRestart(const std::vector<data::AquiferData>& aquiferSoln);
|
||||
|
||||
void beginEpisode();
|
||||
void beginTimeStep();
|
||||
void beginIteration();
|
||||
|
@ -29,6 +29,26 @@ namespace Opm {
|
||||
}
|
||||
}
|
||||
|
||||
template<typename TypeTag>
|
||||
void
|
||||
BlackoilAquiferModel<TypeTag>::initFromRestart(const std::vector<data::AquiferData>& aquiferSoln)
|
||||
{
|
||||
if(aquiferCarterTracyActive())
|
||||
{
|
||||
for (auto& aquifer : aquifers_CarterTracy)
|
||||
{
|
||||
aquifer.initFromRestart(aquiferSoln);
|
||||
}
|
||||
}
|
||||
if(aquiferFetkovichActive())
|
||||
{
|
||||
for (auto& aquifer : aquifers_Fetkovich)
|
||||
{
|
||||
aquifer.initFromRestart(aquiferSoln);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
template<typename TypeTag>
|
||||
void
|
||||
BlackoilAquiferModel<TypeTag>::beginEpisode()
|
||||
|
Loading…
Reference in New Issue
Block a user