SimulatorReport.hpp
Go to the documentation of this file.
1/*
2 Copyright 2012 SINTEF ICT, Applied Mathematics.
3
4 This file is part of the Open Porous Media project (OPM).
5
6 OPM is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 OPM is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with OPM. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#ifndef OPM_SIMULATORREPORT_HEADER_INCLUDED
21#define OPM_SIMULATORREPORT_HEADER_INCLUDED
22
23#include <iosfwd>
24
25namespace Opm
26{
27
30 {
33 double total_time;
39
44
46
48 SimulatorReport(bool verbose=true);
52 void operator+=(const SimulatorReport& sr);
54 void report(std::ostream& os);
56 void reportFullyImplicit(std::ostream& os, const SimulatorReport* failedReport = nullptr);
57 void reportParam(std::ostream& os);
58 private:
59 // Whether to print statistics to std::cout
60 bool verbose_;
61 };
62
63} // namespace Opm
64
65#endif // OPM_SIMULATORREPORT_HEADER_INCLUDED
Definition: AnisotropicEikonal.hpp:44
A struct for returning timing data from a simulator to its caller.
Definition: SimulatorReport.hpp:30
SimulatorReport(bool verbose=true)
Default constructor initializing all times to 0.0.
double linear_solve_time
Definition: SimulatorReport.hpp:36
void reportFullyImplicit(std::ostream &os, const SimulatorReport *failedReport=nullptr)
Print a report, leaving out the transport time.
void operator+=(const SimulatorReport &sr)
Increment this report's times by those in sr.
unsigned int total_newton_iterations
Definition: SimulatorReport.hpp:42
unsigned int total_well_iterations
Definition: SimulatorReport.hpp:40
double assemble_time
Definition: SimulatorReport.hpp:35
double total_time
Definition: SimulatorReport.hpp:33
double update_time
Definition: SimulatorReport.hpp:37
unsigned int total_linear_iterations
Definition: SimulatorReport.hpp:43
void reportParam(std::ostream &os)
double solver_time
Definition: SimulatorReport.hpp:34
void report(std::ostream &os)
Print a report to the given stream.
bool converged
Definition: SimulatorReport.hpp:45
unsigned int total_linearizations
Definition: SimulatorReport.hpp:41
double transport_time
Definition: SimulatorReport.hpp:32
double output_write_time
Definition: SimulatorReport.hpp:38
SimulatorReport(const SimulatorReport &)=default
Copy constructor.
double pressure_time
Definition: SimulatorReport.hpp:31