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:
Bård Skaflestad
2021-05-12 17:12:03 +02:00
parent d3437d77b1
commit bd9b9a7118
13 changed files with 191 additions and 31 deletions

View File

@@ -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(),