mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Prepare to Save/Restore Richer Set of Aquifer Values
This commit adds logic to communicate more dynamic aquifer values between the simulation and I/O layers. In particular, we ensure that we allocate the 'aquFet' and 'aquCT' substructures of the dynamic aquifer data as appropriate and that we collect this information on the I/O rank as part of the restart output process. We furthermore make the 'ParallelRestart' facility aware of dynamic aquifer data in preparation of loading these values from the restart file.
This commit is contained in:
@@ -141,7 +141,6 @@ public:
|
||||
/*!
|
||||
* \brief collect and pass data and pass it to eclIO writer
|
||||
*/
|
||||
|
||||
void evalSummaryState(bool isSubStep)
|
||||
{
|
||||
const int reportStepNum = simulator_.episodeIndex() + 1;
|
||||
@@ -176,7 +175,7 @@ public:
|
||||
.groupAndNetworkData(reportStepNum, simulator_.vanguard().schedule());
|
||||
|
||||
|
||||
const auto localAquiferData = simulator_.problem().mutableAquiferModel().aquiferData();
|
||||
const auto localAquiferData = simulator_.problem().aquiferModel().aquiferData();
|
||||
|
||||
this->prepareLocalCellData(isSubStep, reportStepNum);
|
||||
|
||||
@@ -221,7 +220,6 @@ public:
|
||||
eclOutputModule_->initialInplace());
|
||||
}
|
||||
|
||||
|
||||
void writeOutput(bool isSubStep)
|
||||
{
|
||||
const int reportStepNum = simulator_.episodeIndex() + 1;
|
||||
@@ -234,6 +232,8 @@ public:
|
||||
auto localGroupAndNetworkData = simulator_.problem().wellModel()
|
||||
.groupAndNetworkData(reportStepNum, simulator_.vanguard().schedule());
|
||||
|
||||
auto localAquiferData = simulator_.problem().aquiferModel().aquiferData();
|
||||
|
||||
data::Solution localCellData = {};
|
||||
if (! isSubStep) {
|
||||
this->eclOutputModule_->assignToSolution(localCellData);
|
||||
@@ -248,7 +248,7 @@ public:
|
||||
eclOutputModule_->getWBPData(),
|
||||
localWellData,
|
||||
localGroupAndNetworkData,
|
||||
{});
|
||||
localAquiferData);
|
||||
}
|
||||
|
||||
if (this->collectToIORank_.isIORank()) {
|
||||
@@ -258,6 +258,7 @@ public:
|
||||
std::move(localCellData),
|
||||
std::move(localWellData),
|
||||
std::move(localGroupAndNetworkData),
|
||||
std::move(localAquiferData),
|
||||
this->actionState(),
|
||||
this->udqState(),
|
||||
this->summaryState(),
|
||||
|
||||
Reference in New Issue
Block a user