Add more performance summary output

This commit ads: NEWTON, MLINEARS, MSUMLINS, MSUMNEWT, NLINEARS, NLINSMIN, NLINSMAX
This commit is contained in:
Tor Harald Sandve
2022-02-03 11:58:09 +01:00
parent eb6265b148
commit ad799b3e80
8 changed files with 58 additions and 1 deletions

View File

@@ -32,6 +32,7 @@
#include <ebos/ecltransmissibility.hh>
#include <opm/models/parallel/tasklets.hh>
#include <opm/simulators/timestepping/SimulatorReport.hpp>
#include <cstddef>
#include <map>
@@ -81,6 +82,16 @@ public:
globalTrans_ = globalTrans;
}
void setSubStepReport(const SimulatorReportSingle& report)
{
sub_step_report_ = report;
}
void setSimulationReport(const SimulatorReport& report)
{
simulation_report_ = report;
}
protected:
const TransmissibilityType& globalTrans() const;
@@ -127,6 +138,8 @@ protected:
const Dune::CartesianIndexMapper<EquilGrid>* equilCartMapper_;
const EquilGrid* equilGrid_;
std::vector<std::size_t> wbp_index_list_;
SimulatorReportSingle sub_step_report_;
SimulatorReport simulation_report_;
private:
data::Solution computeTrans_(const std::unordered_map<int,int>& cartesianToActive) const;

View File

@@ -70,6 +70,7 @@
#include <opm/simulators/utils/DeferredLoggingErrorHelpers.hpp>
#include <opm/simulators/utils/ParallelSerialization.hpp>
#include <opm/simulators/timestepping/SimulatorReport.hpp>
#include <opm/models/utils/pffgridvector.hh>
#include <opm/models/blackoil/blackoilmodel.hh>
@@ -1970,6 +1971,12 @@ public:
const EclipseIO& eclIO() const
{ return eclWriter_->eclIO(); }
void setSubStepReport(const SimulatorReportSingle& report)
{ return eclWriter_->setSubStepReport(report); }
void setSimulationReport(const SimulatorReport& report)
{ return eclWriter_->setSimulationReport(report); }
bool nonTrivialBoundaryConditions() const
{ return nonTrivialBoundaryConditions_; }

View File

@@ -39,6 +39,7 @@
#include <ebos/eclgenericwriter.hh>
#include <string>
#include <limits>
namespace Opm::Properties {
@@ -208,6 +209,27 @@ public:
if (totalCpuTime != 0.0) {
miscSummaryData["TCPU"] = totalCpuTime;
}
if (this->sub_step_report_.total_newton_iterations != 0) {
miscSummaryData["NEWTON"] = this->sub_step_report_.total_newton_iterations;
}
if (this->sub_step_report_.total_linear_iterations != 0) {
miscSummaryData["MLINEARS"] = this->sub_step_report_.total_linear_iterations;
}
if (this->sub_step_report_.total_newton_iterations != 0) {
miscSummaryData["NLINEARS"] = static_cast<float>(this->sub_step_report_.total_linear_iterations) / this->sub_step_report_.total_newton_iterations;
}
if (this->sub_step_report_.min_linear_iterations != std::numeric_limits<unsigned int>::max()) {
miscSummaryData["NLINSMIN"] = this->sub_step_report_.min_linear_iterations;
}
if (this->sub_step_report_.max_linear_iterations != 0) {
miscSummaryData["NLINSMAX"] = this->sub_step_report_.max_linear_iterations;
}
if (this->simulation_report_.success.total_newton_iterations != 0) {
miscSummaryData["MSUMLINS"] = this->simulation_report_.success.total_linear_iterations;
}
if (this->simulation_report_.success.total_newton_iterations != 0) {
miscSummaryData["MSUMNEWT"] = this->simulation_report_.success.total_newton_iterations;
}
this->evalSummary(reportStepNum, curTime,
this->collectToIORank_.isParallel() ?