mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Modifications of formatting, compile fix.
This commit is contained in:
parent
0f33835e67
commit
cfdb2b9be6
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2012 SINTEF ICT, Applied Mathematics.
|
Copyright 2012, 2020 SINTEF Digital, Mathematics and Cybernetics.
|
||||||
|
|
||||||
This file is part of the Open Porous Media project (OPM).
|
This file is part of the Open Porous Media project (OPM).
|
||||||
|
|
||||||
@ -20,6 +20,8 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include <opm/simulators/timestepping/SimulatorReport.hpp>
|
#include <opm/simulators/timestepping/SimulatorReport.hpp>
|
||||||
|
#include <opm/common/OpmLog/OpmLog.hpp>
|
||||||
|
#include <opm/parser/eclipse/Units/Units.hpp>
|
||||||
|
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
#include <ostream>
|
#include <ostream>
|
||||||
@ -33,7 +35,7 @@ namespace Opm
|
|||||||
total_time(0.0),
|
total_time(0.0),
|
||||||
solver_time(0.0),
|
solver_time(0.0),
|
||||||
assemble_time(0.0),
|
assemble_time(0.0),
|
||||||
linear_solve_setup_time(0.0),
|
linear_solve_setup_time(0.0),
|
||||||
linear_solve_time(0.0),
|
linear_solve_time(0.0),
|
||||||
update_time(0.0),
|
update_time(0.0),
|
||||||
output_write_time(0.0),
|
output_write_time(0.0),
|
||||||
@ -43,7 +45,7 @@ namespace Opm
|
|||||||
total_linear_iterations( 0 ),
|
total_linear_iterations( 0 ),
|
||||||
converged(false),
|
converged(false),
|
||||||
exit_status(EXIT_SUCCESS),
|
exit_status(EXIT_SUCCESS),
|
||||||
global_time(0),
|
global_time(0),
|
||||||
verbose_(verbose)
|
verbose_(verbose)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -52,7 +54,7 @@ namespace Opm
|
|||||||
{
|
{
|
||||||
pressure_time += sr.pressure_time;
|
pressure_time += sr.pressure_time;
|
||||||
transport_time += sr.transport_time;
|
transport_time += sr.transport_time;
|
||||||
linear_solve_setup_time += sr.linear_solve_setup_time;
|
linear_solve_setup_time += sr.linear_solve_setup_time;
|
||||||
linear_solve_time += sr.linear_solve_time;
|
linear_solve_time += sr.linear_solve_time;
|
||||||
solver_time += sr.solver_time;
|
solver_time += sr.solver_time;
|
||||||
assemble_time += sr.assemble_time;
|
assemble_time += sr.assemble_time;
|
||||||
@ -63,21 +65,21 @@ namespace Opm
|
|||||||
total_linearizations += sr.total_linearizations;
|
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;
|
||||||
global_time = sr.global_time;
|
global_time = sr.global_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SimulatorReportBase::report(std::ostream& os)
|
// void SimulatorReportBase::report(std::ostream& os)
|
||||||
{
|
// {
|
||||||
if ( verbose_ )
|
// if ( verbose_ )
|
||||||
{
|
// {
|
||||||
os << "Total time taken: " << total_time
|
// os << "Total time taken: " << total_time
|
||||||
<< "\n Pressure time: " << pressure_time
|
// << "\n Pressure time: " << pressure_time
|
||||||
<< "\n Transport time: " << transport_time
|
// << "\n Transport time: " << transport_time
|
||||||
<< "\n Overall Newton Iterations: " << total_newton_iterations
|
// << "\n Overall Newton Iterations: " << total_newton_iterations
|
||||||
<< "\n Overall Linear Iterations: " << total_linear_iterations
|
// << "\n Overall Linear Iterations: " << total_linear_iterations
|
||||||
<< std::endl;
|
// << std::endl;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
void SimulatorReportBase::reportStep(std::ostringstream& ss)
|
void SimulatorReportBase::reportStep(std::ostringstream& ss)
|
||||||
{
|
{
|
||||||
@ -124,14 +126,14 @@ namespace Opm
|
|||||||
}
|
}
|
||||||
os << std::endl;
|
os << std::endl;
|
||||||
|
|
||||||
t = linear_solve_setup_time + (failureReport ? failureReport->linear_solve_setup_time : 0.0);
|
t = linear_solve_setup_time + (failureReport ? failureReport->linear_solve_setup_time : 0.0);
|
||||||
os << " Linear solve setup time (seconds): " << t;
|
os << " Linear solve setup time (seconds): " << t;
|
||||||
if (failureReport) {
|
if (failureReport) {
|
||||||
os << " (Failed: " << failureReport->linear_solve_setup_time << "; "
|
os << " (Failed: " << failureReport->linear_solve_setup_time << "; "
|
||||||
<< 100*failureReport->linear_solve_setup_time/t << "%)";
|
<< 100*failureReport->linear_solve_setup_time/t << "%)";
|
||||||
}
|
}
|
||||||
os << std::endl;
|
os << std::endl;
|
||||||
|
|
||||||
t = update_time + (failureReport ? failureReport->update_time : 0.0);
|
t = update_time + (failureReport ? failureReport->update_time : 0.0);
|
||||||
os << " Update time (seconds): " << t;
|
os << " Update time (seconds): " << t;
|
||||||
if (failureReport) {
|
if (failureReport) {
|
||||||
@ -180,44 +182,35 @@ namespace Opm
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SimulatorReportBase::reportParam(std::ostream& os)
|
void SimulatorReport::fullReports(std::ostream& os)
|
||||||
{
|
{
|
||||||
if ( verbose_ )
|
os << " Time(sec) Time(day) Assembly LSolve LSetup Update Output WellIt Lins NewtIt LinIt Conv\n";
|
||||||
{
|
SimulatorReportBase all;
|
||||||
os << "/timing/total_time=" << total_time
|
for (size_t i = 0; i < stepreports.size(); ++i) {
|
||||||
<< "\n/timing/pressure/total_time=" << pressure_time
|
SimulatorReportBase& sr = stepreports[i];
|
||||||
<< "\n/timing/transport/total_time=" << transport_time
|
all += sr;
|
||||||
<< "\n/timing/newton/iterations=" << total_newton_iterations
|
os.precision(10);
|
||||||
<< "\n/timing/linear/iterations=" << total_linear_iterations
|
os << std::defaultfloat;
|
||||||
<< std::endl;
|
os << std::setw(11) << sr.global_time << " ";
|
||||||
|
os << std::setw(11) << unit::convert::to(sr.global_time, unit::day) << " ";
|
||||||
|
os.precision(4);
|
||||||
|
os << std::fixed;
|
||||||
|
os << std::setw(9) << sr.assemble_time << " ";
|
||||||
|
os << std::setw(9) << sr.linear_solve_setup_time << " ";
|
||||||
|
os << std::setw(9) << sr.linear_solve_time << " ";
|
||||||
|
os << std::setw(9) << sr.update_time << " ";
|
||||||
|
os << std::setw(9) << sr.output_write_time << " ";
|
||||||
|
os.precision(6);
|
||||||
|
os << std::defaultfloat;
|
||||||
|
os << std::setw(6) << sr.total_well_iterations << " ";
|
||||||
|
os << std::setw(4) << sr.total_linearizations << " ";
|
||||||
|
os << std::setw(6) << sr.total_newton_iterations << " ";
|
||||||
|
os << std::setw(5) << sr.total_linear_iterations << " ";
|
||||||
|
os << std::setw(4) << sr.converged << "\n";
|
||||||
|
}
|
||||||
|
if (not(this->linear_solve_time == all.linear_solve_time)) {
|
||||||
|
OpmLog::debug("Inconsistency between timestep report and total report");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void SimulatorReport::fullReports(std::ostream& os){
|
|
||||||
SimulatorReportBase all;
|
|
||||||
for(size_t i=0; i < stepreports.size(); ++i){
|
|
||||||
SimulatorReportBase& sr = stepreports[i];
|
|
||||||
all += sr;
|
|
||||||
os << sr.global_time<< " ";
|
|
||||||
//os << sr.pressure_time<< " ";
|
|
||||||
//os << sr.transport_time<< " ";
|
|
||||||
//os << sr.total_time<< " ";
|
|
||||||
//os << sr.solver_time<< " ";
|
|
||||||
os << sr.assemble_time<< " ";
|
|
||||||
os << sr.linear_solve_setup_time<< " ";
|
|
||||||
os << sr.linear_solve_time<< " ";
|
|
||||||
os << sr.update_time<< " ";
|
|
||||||
os << sr.output_write_time<< " ";
|
|
||||||
os<< sr.total_well_iterations<< " ";
|
|
||||||
os << sr.total_linearizations<< " ";
|
|
||||||
os << sr.total_newton_iterations<< " ";
|
|
||||||
os << sr.total_linear_iterations<< " ";
|
|
||||||
os << sr.converged<< " ";
|
|
||||||
os << sr.exit_status<< " ";
|
|
||||||
os << std::endl;
|
|
||||||
}
|
|
||||||
if(not(this->linear_solve_time == all.linear_solve_time)){
|
|
||||||
Opm::debug("Inconsistency between timestep report and total report");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace Opm
|
} // namespace Opm
|
||||||
|
@ -51,48 +51,51 @@ namespace Opm
|
|||||||
/// Default constructor initializing all times to 0.0.
|
/// Default constructor initializing all times to 0.0.
|
||||||
explicit SimulatorReportBase(bool verbose=true);
|
explicit SimulatorReportBase(bool verbose=true);
|
||||||
/// Copy constructor
|
/// Copy constructor
|
||||||
SimulatorReportBase(const SimulatorReportBase&) = default;
|
// SimulatorReportBase(const SimulatorReportBase&) = default;
|
||||||
/// Increment this report's times by those in sr.
|
/// Increment this report's times by those in sr.
|
||||||
void operator+=(const SimulatorReportBase& sr);
|
void operator+=(const SimulatorReportBase& sr);
|
||||||
/// Print a report to the given stream.
|
/// Print a report to the given stream.
|
||||||
void report(std::ostream& os);
|
// void report(std::ostream& os);
|
||||||
void reportStep(std::ostringstream& os);
|
void reportStep(std::ostringstream& os);
|
||||||
/// Print a report, leaving out the transport time.
|
/// Print a report, leaving out the transport time.
|
||||||
void reportFullyImplicit(std::ostream& os, const SimulatorReportBase* failedReport = nullptr);
|
void reportFullyImplicit(std::ostream& os, const SimulatorReportBase* failedReport = nullptr);
|
||||||
void reportParam(std::ostream& os);
|
// void reportParam(std::ostream& os);
|
||||||
private:
|
private:
|
||||||
// Whether to print statistics to std::cout
|
// Whether to print statistics to std::cout
|
||||||
bool verbose_;
|
bool verbose_;
|
||||||
};
|
};
|
||||||
struct SimulatorReport: public SimulatorReportBase{
|
|
||||||
std::vector<SimulatorReportBase> stepreports;
|
struct SimulatorReport : public SimulatorReportBase {
|
||||||
explicit SimulatorReport(bool verbose=true) :
|
std::vector<SimulatorReportBase> stepreports;
|
||||||
SimulatorReportBase(verbose),
|
explicit SimulatorReport(bool verbose = true)
|
||||||
stepreports()
|
: SimulatorReportBase(verbose)
|
||||||
{
|
, stepreports()
|
||||||
}
|
{
|
||||||
void operator+=(const SimulatorReportBase& sr){
|
}
|
||||||
SimulatorReportBase::operator+=(sr);
|
void operator+=(const SimulatorReportBase& sr)
|
||||||
// if(stepreports.size()>0){
|
{
|
||||||
// assert(stepreports.back().global_time != sr.global_time);
|
SimulatorReportBase::operator+=(sr);
|
||||||
// }
|
// if(stepreports.size()>0){
|
||||||
stepreports.push_back(sr);
|
// assert(stepreports.back().global_time != sr.global_time);
|
||||||
}
|
// }
|
||||||
void operator+=(const SimulatorReport& sr){
|
stepreports.push_back(sr);
|
||||||
SimulatorReportBase::operator+=(sr);
|
}
|
||||||
// if(stepreports.size()>0){
|
void operator+=(const SimulatorReport& sr)
|
||||||
// assert(stepreports.back().global_time != sr.global_time);
|
{
|
||||||
// }
|
SimulatorReportBase::operator+=(sr);
|
||||||
if(sr.stepreports.size()>0){
|
// if(stepreports.size()>0){
|
||||||
stepreports.insert(stepreports.end(),sr.stepreports.begin(),sr.stepreports.end());
|
// assert(stepreports.back().global_time != sr.global_time);
|
||||||
}else{
|
// }
|
||||||
stepreports.push_back(sr);
|
if (sr.stepreports.size() > 0) {
|
||||||
}
|
stepreports.insert(stepreports.end(), sr.stepreports.begin(), sr.stepreports.end());
|
||||||
//stepreports.push_back(sr);
|
} else {
|
||||||
}
|
stepreports.push_back(sr);
|
||||||
void fullReports(std::ostream& os);
|
}
|
||||||
|
// stepreports.push_back(sr);
|
||||||
|
}
|
||||||
|
void fullReports(std::ostream& os);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Opm
|
} // namespace Opm
|
||||||
|
|
||||||
#endif // OPM_SIMULATORREPORT_HEADER_INCLUDED
|
#endif // OPM_SIMULATORREPORT_HEADER_INCLUDED
|
||||||
|
Loading…
Reference in New Issue
Block a user