mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
flow_ebos: print statistics about failed time steps
the performance summary at the end of a Norne run which are printed by `flow_ebos` now looks like this on my machine: ``` Total time (seconds): 773.757 Solver time (seconds): 753.349 Assembly time (seconds): 377.218 (Failed: 23.537; 6.23965%) Linear solve time (seconds): 352.022 (Failed: 23.2757; 6.61201%) Update time (seconds): 16.3658 (Failed: 1.13149; 6.91375%) Output write time (seconds): 22.5991 Overall Well Iterations: 870 (Failed: 35; 4.02299%) Overall Linearizations: 2098 (Failed: 136; 6.48236%) Overall Newton Iterations: 1756 (Failed: 136; 7.74487%) Overall Linear Iterations: 26572 (Failed: 1786; 6.72136%) ``` for the flow_legacy family, nothing changes.
This commit is contained in:
@@ -30,6 +30,7 @@
|
||||
#include <opm/polymer/PolymerProperties.hpp>
|
||||
#include <opm/polymer/fullyimplicit/WellStateFullyImplicitBlackoilPolymer.hpp>
|
||||
#include <opm/polymer/fullyimplicit/PolymerPropsAd.hpp>
|
||||
#include <opm/core/simulator/SimulatorReport.hpp>
|
||||
#include <opm/core/utility/parameters/ParameterGroup.hpp>
|
||||
#include <opm/simulators/timestepping/SimulatorTimerInterface.hpp>
|
||||
#include <opm/common/data/SimulationDataContainer.hpp>
|
||||
@@ -175,6 +176,13 @@ namespace Opm {
|
||||
computeFluidInPlace(const PolymerBlackoilState& x,
|
||||
const std::vector<int>& fipnum);
|
||||
|
||||
/// return the statistics if the nonlinearIteration() method failed.
|
||||
///
|
||||
/// NOTE: for the flow_legacy simulator family this method is a stub, i.e. the
|
||||
/// failure report object will *not* contain any meaningful data.
|
||||
const SimulatorReport& failureReport() const
|
||||
{ return failureReport_; }
|
||||
|
||||
private:
|
||||
|
||||
struct SolutionState {
|
||||
@@ -197,6 +205,7 @@ namespace Opm {
|
||||
Oil = Opm::Oil };
|
||||
|
||||
// Member data
|
||||
SimulatorReport failureReport_;
|
||||
const UnstructuredGrid& grid_;
|
||||
const BlackoilPropsAdFromDeck& fluid_;
|
||||
const DerivedGeology& geo_;
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#ifndef OPM_SIMULATORFULLYIMPLICITCOMPRESSIBLEPOLYMER_HEADER_INCLUDED
|
||||
#define OPM_SIMULATORFULLYIMPLICITCOMPRESSIBLEPOLYMER_HEADER_INCLUDED
|
||||
|
||||
#include <opm/core/simulator/SimulatorReport.hpp>
|
||||
#include <opm/core/utility/parameters/ParameterGroup.hpp>
|
||||
#include <opm/common/ErrorMacros.hpp>
|
||||
|
||||
@@ -125,7 +126,17 @@ namespace Opm
|
||||
const Wells* wells,
|
||||
const WellState& well_state,
|
||||
DynamicListEconLimited& list_econ_limited) const;
|
||||
|
||||
/// return the statistics if the nonlinearIteration() method failed.
|
||||
///
|
||||
/// NOTE: for the flow_legacy simulator family this method is a stub, i.e. the
|
||||
/// failure report object will *not* contain any meaningful data.
|
||||
const SimulatorReport& failureReport() const
|
||||
{ return failureReport_; }
|
||||
|
||||
private:
|
||||
SimulatorReport failureReport_;
|
||||
|
||||
const Deck& deck_;
|
||||
const PolymerPropsAd& polymer_props_;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user