Only create step_timing.txt file if it gets written to.

If output=false is requested we created an empty file.
Now that file will only be created if output was requested
and it will only be opened on one rank in a parallel run.
This commit is contained in:
Markus Blatt 2017-06-19 17:47:24 +02:00
parent 56cef57c8d
commit e0a7ced256
2 changed files with 17 additions and 11 deletions

View File

@ -103,7 +103,12 @@ namespace Opm
Opm::time::StopWatch total_timer; Opm::time::StopWatch total_timer;
total_timer.start(); total_timer.start();
std::string tstep_filename = output_writer_.outputDirectory() + "/step_timing.txt"; std::string tstep_filename = output_writer_.outputDirectory() + "/step_timing.txt";
std::ofstream tstep_os(tstep_filename.c_str()); std::ofstream tstep_os;
if ( output_writer_.output() ) {
if ( output_writer_.isIORank() )
tstep_os.open(tstep_filename.c_str());
}
const auto& schedule = eclipse_state_->getSchedule(); const auto& schedule = eclipse_state_->getSchedule();
@ -307,11 +312,8 @@ namespace Opm
OpmLog::note(msg); OpmLog::note(msg);
} }
if ( output_writer_.output() ) { if ( tstep_os.is_open() ) {
if ( output_writer_.isIORank() )
{
stepReport.reportParam(tstep_os); stepReport.reportParam(tstep_os);
}
} }
// Increment timer, remember well state. // Increment timer, remember well state.

View File

@ -163,7 +163,14 @@ public:
Opm::time::StopWatch total_timer; Opm::time::StopWatch total_timer;
total_timer.start(); total_timer.start();
std::string tstep_filename = output_writer_.outputDirectory() + "/step_timing.txt"; std::string tstep_filename = output_writer_.outputDirectory() + "/step_timing.txt";
std::ofstream tstep_os(tstep_filename.c_str()); std::ofstream tstep_os;
if ( output_writer_.output() ) {
if ( output_writer_.isIORank() )
{
tstep_os.open(tstep_filename.c_str());
}
}
const auto& schedule = eclState().getSchedule(); const auto& schedule = eclState().getSchedule();
@ -351,11 +358,8 @@ public:
// update timing. // update timing.
report.solver_time += solver_timer.secsSinceStart(); report.solver_time += solver_timer.secsSinceStart();
if ( output_writer_.output() ) { if ( tstep_os.is_open() ) {
if ( output_writer_.isIORank() ) stepReport.reportParam(tstep_os);
{
stepReport.reportParam(tstep_os);
}
} }
// Increment timer, remember well state. // Increment timer, remember well state.