diff --git a/ProcessLib/TimeLoop.cpp b/ProcessLib/TimeLoop.cpp index 25841a0a9e707014b6f09070d9a5c3d2497f507a..0df076d2aad9125cca71e7ba022e4ffbd6b93ba0 100644 --- a/ProcessLib/TimeLoop.cpp +++ b/ProcessLib/TimeLoop.cpp @@ -423,8 +423,8 @@ void TimeLoop::initialize() // Output initial conditions { const bool output_initial_condition = true; - outputSolutions(output_initial_condition, is_staggered_coupling, 0, - _start_time, *_output, &Output::doOutput); + outputSolutions(output_initial_condition, 0, _start_time, *_output, + &Output::doOutput); } } @@ -490,8 +490,8 @@ bool TimeLoop::loop() if (!_last_step_rejected) { const bool output_initial_condition = false; - outputSolutions(output_initial_condition, is_staggered_coupling, - timesteps, t, *_output, &Output::doOutput); + outputSolutions(output_initial_condition, timesteps, t, *_output, + &Output::doOutput); } if (t == _end_time || t + dt > _end_time || @@ -519,7 +519,7 @@ bool TimeLoop::loop() if (nonlinear_solver_status.error_norms_met) { const bool output_initial_condition = false; - outputSolutions(output_initial_condition, is_staggered_coupling, + outputSolutions(output_initial_condition, accepted_steps + rejected_steps, t, *_output, &Output::doOutputLastTimestep); } @@ -747,11 +747,14 @@ TimeLoop::solveCoupledEquationSystemsByStaggeredScheme( template <typename OutputClass, typename OutputClassMember> void TimeLoop::outputSolutions(bool const output_initial_condition, - bool const is_staggered_coupling, unsigned timestep, const double t, OutputClass& output_object, OutputClassMember output_class_member) const { + // All _per_process_data share the first process. + bool const is_staggered_coupling = + !isMonolithicProcess(*_per_process_data[0]); + unsigned process_id = 0; for (auto& process_data : _per_process_data) { diff --git a/ProcessLib/TimeLoop.h b/ProcessLib/TimeLoop.h index 4221c2f59900a509af7e8a128484df2e3da5a634..c0b75efe4261290afcda107101122dd4e1dded28 100644 --- a/ProcessLib/TimeLoop.h +++ b/ProcessLib/TimeLoop.h @@ -104,8 +104,7 @@ private: std::size_t& rejected_steps); template <typename OutputClass, typename OutputClassMember> - void outputSolutions(bool const output_initial_condition, - bool const is_staggered_coupling, unsigned timestep, + void outputSolutions(bool const output_initial_condition, unsigned timestep, const double t, OutputClass& output_object, OutputClassMember output_class_member) const;