diff --git a/ProcessLib/Process.cpp b/ProcessLib/Process.cpp index a5e92bb5888ff4fad14b9f445e8ff73ab6b54fef..b73d1fa8dc1603ef87197eabd4b3edda1acc9afd 100644 --- a/ProcessLib/Process.cpp +++ b/ProcessLib/Process.cpp @@ -356,11 +356,12 @@ void Process::postNonLinearSolver(GlobalVector const& x, const double t, postNonLinearSolverConcreteProcess(x, t, process_id); } -void Process::computeSecondaryVariable(const double t, GlobalVector const& x) +void Process::computeSecondaryVariable(const double t, GlobalVector const& x, + int const process_id) { MathLib::LinAlg::setLocalAccessibleVector(x); - computeSecondaryVariableConcrete(t, x); + computeSecondaryVariableConcrete(t, x, process_id); } void Process::preIteration(const unsigned iter, const GlobalVector& x) diff --git a/ProcessLib/Process.h b/ProcessLib/Process.h index 9e33322967d23bbf16f8f66a7035e03a8daf99bb..6c4ab0cfbab02bf259fa9080e6ebd1452649d03d 100644 --- a/ProcessLib/Process.h +++ b/ProcessLib/Process.h @@ -71,7 +71,8 @@ public: void preIteration(const unsigned iter, GlobalVector const& x) final; /// compute secondary variables for the coupled equations or for output. - void computeSecondaryVariable(const double t, GlobalVector const& x); + void computeSecondaryVariable(const double t, GlobalVector const& x, + int const process_id); NumLib::IterationResult postIteration(GlobalVector const& x) final; @@ -213,7 +214,8 @@ private: } virtual void computeSecondaryVariableConcrete(const double /*t*/, - GlobalVector const& /*x*/) + GlobalVector const& /*x*/, + int const /*process_id*/) { } diff --git a/ProcessLib/UncoupledProcessesTimeLoop.cpp b/ProcessLib/UncoupledProcessesTimeLoop.cpp index 19450c9ea720cbb8a64d332d6de21ec29fd73ae8..b69bbe0b7fd7d75ff48fd17deeb608bb55272f86 100644 --- a/ProcessLib/UncoupledProcessesTimeLoop.cpp +++ b/ProcessLib/UncoupledProcessesTimeLoop.cpp @@ -648,7 +648,7 @@ bool UncoupledProcessesTimeLoop::solveUncoupledEquationSystems( process_id, x, timestep_id, t, dt, *process_data, *_output); process_data->nonlinear_solver_converged = nonlinear_solver_succeeded; pcs.postTimestep(x, t, dt, process_id); - pcs.computeSecondaryVariable(t, x); + pcs.computeSecondaryVariable(t, x, process_id); INFO("[time] Solving process #%u took %g s in time step #%u ", process_id, time_timestep_process.elapsed(), timestep_id); @@ -822,7 +822,7 @@ bool UncoupledProcessesTimeLoop::solveCoupledEquationSystemsByStaggeredScheme( auto& pcs = process_data->process; auto& x = *_process_solutions[process_id]; pcs.postTimestep(x, t, dt, process_id); - pcs.computeSecondaryVariable(t, x); + pcs.computeSecondaryVariable(t, x, process_id); ++process_id; } @@ -858,7 +858,7 @@ void UncoupledProcessesTimeLoop::outputSolutions( process_id); // Update secondary variables, which might be uninitialized, before // output. - pcs.computeSecondaryVariable(_start_time, x); + pcs.computeSecondaryVariable(_start_time, x, process_id); } if (is_staggered_coupling) {