mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
added: pass reportStep to FIP output functions
use this to decide whether or not to use the RPTSOL configuration (reportStep == 0) or to read flags from RPTSCHED (reportStep > 0)
This commit is contained in:
@@ -265,6 +265,7 @@ template<class FluidSystem,class Scalar>
|
||||
Inplace EclGenericOutputBlackoilModule<FluidSystem,Scalar>::
|
||||
outputFipLog(std::map<std::string, double>& miscSummaryData,
|
||||
std::map<std::string, std::vector<double>>& regionData,
|
||||
const std::size_t reportStepNum,
|
||||
const bool substep,
|
||||
const Parallel::Communication& comm)
|
||||
{
|
||||
@@ -276,9 +277,27 @@ outputFipLog(std::map<std::string, double>& miscSummaryData,
|
||||
miscSummaryData,
|
||||
regionData);
|
||||
|
||||
if (!substep && !forceDisableFipOutput_) {
|
||||
// For report step 0 we use the RPTSOL config, else derive from RPTSCHED
|
||||
std::unique_ptr<FIPConfig> fipSched;
|
||||
if (reportStepNum != 0) {
|
||||
const auto& rpt = this->schedule_[reportStepNum].rpt_config.get();
|
||||
fipSched = std::make_unique<FIPConfig>(rpt);
|
||||
}
|
||||
const FIPConfig& fipc = reportStepNum == 0 ? this->eclState_.getEclipseConfig().fip()
|
||||
: *fipSched;
|
||||
|
||||
if (!substep && !forceDisableFipOutput_ && fipc.output(FIPConfig::OutputField::FIELD)) {
|
||||
logOutput_.fip(inplace, this->initialInplace(), "");
|
||||
logOutput_.fip(inplace, this->initialInplace(), "FIPNUM");
|
||||
if (fipc.output(FIPConfig::OutputField::FIPNUM)) {
|
||||
logOutput_.fip(inplace, this->initialInplace(), "FIPNUM");
|
||||
}
|
||||
if (fipc.output(FIPConfig::OutputField::FIP)) {
|
||||
for (const auto& reg : this->regions_) {
|
||||
if (reg.first != "FIPNUM") {
|
||||
logOutput_.fip(inplace, this->initialInplace(), reg.first);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return inplace;
|
||||
@@ -287,9 +306,10 @@ outputFipLog(std::map<std::string, double>& miscSummaryData,
|
||||
template<class FluidSystem,class Scalar>
|
||||
Inplace EclGenericOutputBlackoilModule<FluidSystem,Scalar>::
|
||||
outputFipresvLog(std::map<std::string, double>& miscSummaryData,
|
||||
std::map<std::string, std::vector<double>>& regionData,
|
||||
const bool substep,
|
||||
const Parallel::Communication& comm)
|
||||
std::map<std::string, std::vector<double>>& regionData,
|
||||
const std::size_t reportStepNum,
|
||||
const bool substep,
|
||||
const Parallel::Communication& comm)
|
||||
{
|
||||
auto inplace = this->accumulateRegionSums(comm);
|
||||
if (comm.rank() != 0)
|
||||
@@ -299,7 +319,16 @@ outputFipresvLog(std::map<std::string, double>& miscSummaryData,
|
||||
miscSummaryData,
|
||||
regionData);
|
||||
|
||||
if (!substep && !forceDisableFipresvOutput_) {
|
||||
// For report step 0 we use the RPTSOL config, else derive from RPTSCHED
|
||||
std::unique_ptr<FIPConfig> fipSched;
|
||||
if (reportStepNum != 0) {
|
||||
const auto& rpt = this->schedule_[reportStepNum].rpt_config.get();
|
||||
fipSched = std::make_unique<FIPConfig>(rpt);
|
||||
}
|
||||
const FIPConfig& fipc = reportStepNum == 0 ? this->eclState_.getEclipseConfig().fip()
|
||||
: *fipSched;
|
||||
|
||||
if (!substep && !forceDisableFipresvOutput_ && fipc.output(FIPConfig::OutputField::RESV)) {
|
||||
logOutput_.fipResv(inplace);
|
||||
}
|
||||
|
||||
|
||||
@@ -79,17 +79,17 @@ public:
|
||||
// write Fluid In Place to output log
|
||||
Inplace outputFipLog(std::map<std::string, double>& miscSummaryData,
|
||||
std::map<std::string, std::vector<double>>& regionData,
|
||||
const std::size_t reportStepNum,
|
||||
const bool substep,
|
||||
const Parallel::Communication& comm);
|
||||
|
||||
// write Reservoir Volumes to output log
|
||||
Inplace outputFipresvLog(std::map<std::string, double>& miscSummaryData,
|
||||
std::map<std::string, std::vector<double>>& regionData,
|
||||
const std::size_t reportStepNum,
|
||||
const bool substep,
|
||||
const Parallel::Communication& comm);
|
||||
|
||||
|
||||
|
||||
void outputErrorLog(const Parallel::Communication& comm) const;
|
||||
|
||||
void addRftDataToWells(data::Wells& wellDatas,
|
||||
|
||||
@@ -248,9 +248,11 @@ public:
|
||||
std::map<std::string, std::vector<double>> regionData;
|
||||
Inplace inplace;
|
||||
{
|
||||
OPM_TIMEBLOCK(outputFipLogAndFipresvLog);
|
||||
inplace = eclOutputModule_->outputFipLog(miscSummaryData, regionData, isSubStep, simulator_.gridView().comm());
|
||||
eclOutputModule_->outputFipresvLog(miscSummaryData, regionData, isSubStep, simulator_.gridView().comm());
|
||||
OPM_TIMEBLOCK(outputFipLogAndFipresvLog);
|
||||
inplace = eclOutputModule_->outputFipLog(miscSummaryData, regionData, reportStepNum,
|
||||
isSubStep, simulator_.gridView().comm());
|
||||
eclOutputModule_->outputFipresvLog(miscSummaryData, regionData, reportStepNum,
|
||||
isSubStep, simulator_.gridView().comm());
|
||||
}
|
||||
bool forceDisableProdOutput = false;
|
||||
bool forceDisableInjOutput = false;
|
||||
|
||||
Reference in New Issue
Block a user