mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
clean up and extend the SimulationReport class
it now also accounts for assembly, linear solve, update and output write time and indicates if an operation has converged.
This commit is contained in:
parent
22fc88b2af
commit
7f4c23812a
@ -27,9 +27,16 @@ namespace Opm
|
|||||||
: pressure_time(0.0),
|
: pressure_time(0.0),
|
||||||
transport_time(0.0),
|
transport_time(0.0),
|
||||||
total_time(0.0),
|
total_time(0.0),
|
||||||
|
total_well_iterations(0),
|
||||||
|
solver_time(0.0),
|
||||||
|
assemble_time(0.0),
|
||||||
|
linear_solve_time(0.0),
|
||||||
|
update_time(0.0),
|
||||||
|
output_write_time(0.0),
|
||||||
total_linearizations( 0 ),
|
total_linearizations( 0 ),
|
||||||
total_newton_iterations( 0 ),
|
total_newton_iterations( 0 ),
|
||||||
total_linear_iterations( 0 ),
|
total_linear_iterations( 0 ),
|
||||||
|
converged(false),
|
||||||
verbose_(verbose)
|
verbose_(verbose)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -38,7 +45,14 @@ namespace Opm
|
|||||||
{
|
{
|
||||||
pressure_time += sr.pressure_time;
|
pressure_time += sr.pressure_time;
|
||||||
transport_time += sr.transport_time;
|
transport_time += sr.transport_time;
|
||||||
|
linear_solve_time += sr.linear_solve_time;
|
||||||
|
solver_time += sr.solver_time;
|
||||||
|
assemble_time += sr.assemble_time;
|
||||||
|
update_time += sr.update_time;
|
||||||
|
output_write_time += sr.output_write_time;
|
||||||
total_time += sr.total_time;
|
total_time += sr.total_time;
|
||||||
|
total_well_iterations += sr.total_well_iterations;
|
||||||
|
total_linearizations += sr.total_linearizations;
|
||||||
total_newton_iterations += sr.total_newton_iterations;
|
total_newton_iterations += sr.total_newton_iterations;
|
||||||
total_linear_iterations += sr.total_linear_iterations;
|
total_linear_iterations += sr.total_linear_iterations;
|
||||||
}
|
}
|
||||||
@ -60,12 +74,19 @@ namespace Opm
|
|||||||
{
|
{
|
||||||
if ( verbose_ )
|
if ( verbose_ )
|
||||||
{
|
{
|
||||||
os << "Total time taken (seconds): " << total_time
|
os << "Total time taken (seconds): " << total_time << "\n"
|
||||||
<< "\nSolver time (seconds): " << pressure_time
|
<< "Solver time (seconds): " << solver_time << "\n";
|
||||||
<< "\nOverall Linearizations: " << total_linearizations
|
if (assemble_time > 0.0 || linear_solve_time > 0.0) {
|
||||||
<< "\nOverall Newton Iterations: " << total_newton_iterations
|
os << " Assembly time (seconds): " << assemble_time << "\n"
|
||||||
<< "\nOverall Linear Iterations: " << total_linear_iterations
|
<< " Linear solve time (seconds): " << linear_solve_time << "\n"
|
||||||
<< std::endl;
|
<< " Update time (seconds): " << update_time << "\n"
|
||||||
|
<< " Output write time (seconds): " << output_write_time << "\n";
|
||||||
|
|
||||||
|
}
|
||||||
|
os << "Overall Well Iterations: " << total_well_iterations << "\n"
|
||||||
|
<< "Overall Linearizations: " << total_linearizations << "\n"
|
||||||
|
<< "Overall Newton Iterations: " << total_newton_iterations << "\n"
|
||||||
|
<< "Overall Linear Iterations: " << total_linear_iterations << "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,13 +31,23 @@ namespace Opm
|
|||||||
double pressure_time;
|
double pressure_time;
|
||||||
double transport_time;
|
double transport_time;
|
||||||
double total_time;
|
double total_time;
|
||||||
|
double solver_time;
|
||||||
|
double assemble_time;
|
||||||
|
double linear_solve_time;
|
||||||
|
double update_time;
|
||||||
|
double output_write_time;
|
||||||
|
|
||||||
|
unsigned int total_well_iterations;
|
||||||
unsigned int total_linearizations;
|
unsigned int total_linearizations;
|
||||||
unsigned int total_newton_iterations;
|
unsigned int total_newton_iterations;
|
||||||
unsigned int total_linear_iterations;
|
unsigned int total_linear_iterations;
|
||||||
|
|
||||||
|
bool converged;
|
||||||
|
|
||||||
/// Default constructor initializing all times to 0.0.
|
/// Default constructor initializing all times to 0.0.
|
||||||
SimulatorReport(bool verbose=true);
|
SimulatorReport(bool verbose=true);
|
||||||
|
/// Copy constructor
|
||||||
|
SimulatorReport(const SimulatorReport&) = default;
|
||||||
/// Increment this report's times by those in sr.
|
/// Increment this report's times by those in sr.
|
||||||
void operator+=(const SimulatorReport& sr);
|
void operator+=(const SimulatorReport& sr);
|
||||||
/// Print a report to the given stream.
|
/// Print a report to the given stream.
|
||||||
|
Loading…
Reference in New Issue
Block a user