mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Add more performance summary output
This commit ads: NEWTON, MLINEARS, MSUMLINS, MSUMNEWT, NLINEARS, NLINSMIN, NLINSMAX
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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_; }
|
||||
|
||||
|
||||
@@ -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() ?
|
||||
|
||||
Reference in New Issue
Block a user