mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Chase Group/Node Summary API Update
This is in preparation of adding support for outputting the network node pressure quantity, GPR, to the summary file. In particular, 'GroupValues' is renamed to 'GroupAndNetworkValues' and has new individual datamembers for the former group-level data and the new node-level data. Update BlackoilWellModel::groupData() and CollectToIORank accordingly and bring the parallel restart facility in line with the new layout.
This commit is contained in:
@@ -271,15 +271,15 @@ public:
|
||||
simulator_.setupTimer().realTimeElapsed() +
|
||||
simulator_.vanguard().externalSetupTime();
|
||||
|
||||
const auto localWellData = simulator_.problem().wellModel().wellData();
|
||||
const auto localGroupData = simulator_.problem().wellModel()
|
||||
.groupData(reportStepNum, simulator_.vanguard().schedule());
|
||||
const auto localWellData = simulator_.problem().wellModel().wellData();
|
||||
const auto localGroupAndNetworkData = simulator_.problem().wellModel()
|
||||
.groupAndNetworkData(reportStepNum, simulator_.vanguard().schedule());
|
||||
|
||||
this->prepareLocalCellData(isSubStep, reportStepNum);
|
||||
|
||||
if (collectToIORank_.isParallel())
|
||||
collectToIORank_.collect({}, eclOutputModule_.getBlockData(),
|
||||
localWellData, localGroupData);
|
||||
localWellData, localGroupAndNetworkData);
|
||||
|
||||
std::map<std::string, double> miscSummaryData;
|
||||
std::map<std::string, std::vector<double>> regionData;
|
||||
@@ -306,9 +306,9 @@ public:
|
||||
? this->collectToIORank_.globalWellData()
|
||||
: localWellData;
|
||||
|
||||
const auto& groupData = this->collectToIORank_.isParallel()
|
||||
? this->collectToIORank_.globalGroupData()
|
||||
: localGroupData;
|
||||
const auto& groupAndNetworkData = this->collectToIORank_.isParallel()
|
||||
? this->collectToIORank_.globalGroupAndNetworkData()
|
||||
: localGroupAndNetworkData;
|
||||
|
||||
const auto& blockData
|
||||
= this->collectToIORank_.isParallel()
|
||||
@@ -321,7 +321,7 @@ public:
|
||||
eclState,
|
||||
schedule(),
|
||||
wellData,
|
||||
groupData,
|
||||
groupAndNetworkData,
|
||||
miscSummaryData,
|
||||
regionData,
|
||||
blockData);
|
||||
@@ -358,7 +358,8 @@ public:
|
||||
|
||||
// output using eclWriter if enabled
|
||||
auto localWellData = simulator_.problem().wellModel().wellData();
|
||||
auto localGroupData = simulator_.problem().wellModel().groupData(reportStepNum, simulator_.vanguard().schedule());
|
||||
auto localGroupAndNetworkData = simulator_.problem().wellModel()
|
||||
.groupAndNetworkData(reportStepNum, simulator_.vanguard().schedule());
|
||||
|
||||
Opm::data::Solution localCellData = {};
|
||||
if (! isSubStep) {
|
||||
@@ -368,15 +369,16 @@ public:
|
||||
this->eclOutputModule_.addRftDataToWells(localWellData, reportStepNum);
|
||||
}
|
||||
|
||||
if (collectToIORank_.isParallel()) {
|
||||
collectToIORank_.collect(localCellData, eclOutputModule_.getBlockData(), localWellData, localGroupData);
|
||||
if (this->collectToIORank_.isParallel()) {
|
||||
collectToIORank_.collect(localCellData, eclOutputModule_.getBlockData(),
|
||||
localWellData, localGroupAndNetworkData);
|
||||
}
|
||||
|
||||
if (this->collectToIORank_.isIORank()) {
|
||||
this->writeOutput(reportStepNum, isSubStep,
|
||||
std::move(localCellData),
|
||||
std::move(localWellData),
|
||||
std::move(localGroupData));
|
||||
std::move(localGroupAndNetworkData));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -740,11 +742,11 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
void writeOutput(const int reportStepNum,
|
||||
const bool isSubStep,
|
||||
::Opm::data::Solution&& localCellData,
|
||||
::Opm::data::Wells&& localWellData,
|
||||
::Opm::data::GroupValues&& localGroupData)
|
||||
void writeOutput(const int reportStepNum,
|
||||
const bool isSubStep,
|
||||
::Opm::data::Solution&& localCellData,
|
||||
::Opm::data::Wells&& localWellData,
|
||||
::Opm::data::GroupAndNetworkValues&& localGroupAndNetworkData)
|
||||
{
|
||||
const Scalar curTime = simulator_.time() + simulator_.timeStepSize();
|
||||
const Scalar nextStepSize = simulator_.problem().nextTimeStepSize();
|
||||
@@ -757,8 +759,8 @@ private:
|
||||
isParallel ? this->collectToIORank_.globalWellData()
|
||||
: std::move(localWellData),
|
||||
|
||||
isParallel ? this->collectToIORank_.globalGroupData()
|
||||
: std::move(localGroupData)
|
||||
isParallel ? this->collectToIORank_.globalGroupAndNetworkData()
|
||||
: std::move(localGroupAndNetworkData)
|
||||
};
|
||||
|
||||
if (simulator_.vanguard().eclState().getSimulationConfig().useThresholdPressure()) {
|
||||
|
||||
Reference in New Issue
Block a user