diff --git a/ProcessLib/HeatConduction/HeatConductionProcess.cpp b/ProcessLib/HeatConduction/HeatConductionProcess.cpp index 0813b7b703ee54625cf668a16f0d0460d75cbdd3..986aeb31e463d99c99515d87ec887939375adb03 100644 --- a/ProcessLib/HeatConduction/HeatConductionProcess.cpp +++ b/ProcessLib/HeatConduction/HeatConductionProcess.cpp @@ -35,7 +35,8 @@ HeatConductionProcess::HeatConductionProcess( void HeatConductionProcess::preTimestepConcreteProcess(GlobalVector const& x, const double /*t*/, - const double /*delta_t*/) + const double /*delta_t*/, + const int /*process_id*/) { if (!_x_previous_timestep) { diff --git a/ProcessLib/HeatConduction/HeatConductionProcess.h b/ProcessLib/HeatConduction/HeatConductionProcess.h index 60e39b8238c07d0e3064bef9a1517330579d7324..3965ef37f5e79ea0be5e4519815868c882999e7a 100644 --- a/ProcessLib/HeatConduction/HeatConductionProcess.h +++ b/ProcessLib/HeatConduction/HeatConductionProcess.h @@ -42,7 +42,8 @@ public: double const t, GlobalVector const& x) override; void preTimestepConcreteProcess(GlobalVector const& x, const double t, - const double delta_t) override; + const double delta_t, + const int process_id) override; // Get the solution of the previous time step. GlobalVector* getPreviousTimeStepSolution() const override diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcess-impl.h b/ProcessLib/HydroMechanics/HydroMechanicsProcess-impl.h index cbdbe6e6f4020003a94c694a55ce606e190ee015..8f6ebb41846ef000230db7cde3a0198ed787ecb8 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsProcess-impl.h +++ b/ProcessLib/HydroMechanics/HydroMechanicsProcess-impl.h @@ -200,7 +200,8 @@ void HydroMechanicsProcess<DisplacementDim>:: } template <int DisplacementDim> void HydroMechanicsProcess<DisplacementDim>::preTimestepConcreteProcess( - GlobalVector const& x, double const t, double const dt) + GlobalVector const& x, double const t, double const dt, + const int /*process_id*/) { DBUG("PreTimestep HydroMechanicsProcess."); diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcess.h b/ProcessLib/HydroMechanics/HydroMechanicsProcess.h index 640d83932da9fb71d7381d5764a9040471e86b61..3197f0524e9a8307102ac7b5304bff70e23428a9 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsProcess.h +++ b/ProcessLib/HydroMechanics/HydroMechanicsProcess.h @@ -64,8 +64,9 @@ private: const double dxdot_dx, const double dx_dx, GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac) override; - void preTimestepConcreteProcess(GlobalVector const& x, double const t, - double const dt) override; + void preTimestepConcreteProcess( + GlobalVector const& x, double const t, double const dt, + const int process_id) override; void postTimestepConcreteProcess(GlobalVector const& x) override; diff --git a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.h b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.h index ba65735a500412757b59612757a2cf43e9166147..42b562076837f56ecdc1c7e1b2328d5d37840b87 100644 --- a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.h +++ b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.h @@ -92,8 +92,9 @@ private: dxdot_dx, dx_dx, M, K, b, Jac, _coupled_solutions); } - void preTimestepConcreteProcess(GlobalVector const& x, double const t, - double const dt) override + void preTimestepConcreteProcess( + GlobalVector const& x, double const t, double const dt, + const int /*process_id*/) override { DBUG("PreTimestep HydroMechanicsProcess."); diff --git a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.h b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.h index 588270daacf869eb0886ab9c933cf9a5c1004cce..b1a25e6c844adb2f66f4b370b2e374d459651b32 100644 --- a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.h +++ b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.h @@ -90,8 +90,9 @@ private: dxdot_dx, dx_dx, M, K, b, Jac, _coupled_solutions); } - void preTimestepConcreteProcess(GlobalVector const& x, double const t, - double const dt) override + void preTimestepConcreteProcess( + GlobalVector const& x, double const t, double const dt, + const int /*process_id*/) override { DBUG("PreTimestep SmallDeformationProcess."); diff --git a/ProcessLib/PhaseField/PhaseFieldProcess-impl.h b/ProcessLib/PhaseField/PhaseFieldProcess-impl.h index 527c935d52a57eb59dc5cd200c73638bc90ac890..bdf2d897645d34c4e0d3a9f34dec27116055ab64 100644 --- a/ProcessLib/PhaseField/PhaseFieldProcess-impl.h +++ b/ProcessLib/PhaseField/PhaseFieldProcess-impl.h @@ -162,7 +162,8 @@ void PhaseFieldProcess<DisplacementDim>::assembleWithJacobianConcreteProcess( template <int DisplacementDim> void PhaseFieldProcess<DisplacementDim>::preTimestepConcreteProcess( - GlobalVector const& x, double const t, double const dt) + GlobalVector const& x, double const t, double const dt, + const int /*process_id*/) { DBUG("PreTimestep PhaseFieldProcess."); diff --git a/ProcessLib/PhaseField/PhaseFieldProcess.h b/ProcessLib/PhaseField/PhaseFieldProcess.h index 4c900b7f887a6504cd9207ecc8c0a62700d71491..3db6e74e9de300625080d94aa8e920ea93fdcbc4 100644 --- a/ProcessLib/PhaseField/PhaseFieldProcess.h +++ b/ProcessLib/PhaseField/PhaseFieldProcess.h @@ -85,8 +85,9 @@ private: const double dxdot_dx, const double dx_dx, GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac) override; - void preTimestepConcreteProcess(GlobalVector const& x, double const t, - double const dt) override; + void preTimestepConcreteProcess( + GlobalVector const& x, double const t, double const dt, + const int process_id) override; void postTimestepConcreteProcess(GlobalVector const& x) override; diff --git a/ProcessLib/Process.cpp b/ProcessLib/Process.cpp index 5840fccdf3cf64870ea22b72da42e1ec521352f3..808bb909c59a4d959589d5df4d18e06e1c9e2859 100644 --- a/ProcessLib/Process.cpp +++ b/ProcessLib/Process.cpp @@ -254,7 +254,7 @@ void Process::computeSparsityPattern() } void Process::preTimestep(GlobalVector const& x, const double t, - const double delta_t) + const double delta_t, const int process_id) { for (auto& cached_var : _cached_secondary_variables) { @@ -262,7 +262,7 @@ void Process::preTimestep(GlobalVector const& x, const double t, } MathLib::LinAlg::setLocalAccessibleVector(x); - preTimestepConcreteProcess(x, t, delta_t); + preTimestepConcreteProcess(x, t, delta_t, process_id); } void Process::postTimestep(GlobalVector const& x) diff --git a/ProcessLib/Process.h b/ProcessLib/Process.h index dacd9a79f76863fdac0345a5476958dafe3ed713..d067d0ff747ba5b10b5807aee426df99c332e0e5 100644 --- a/ProcessLib/Process.h +++ b/ProcessLib/Process.h @@ -53,7 +53,7 @@ public: /// Preprocessing before starting assembly for new timestep. void preTimestep(GlobalVector const& x, const double t, - const double delta_t); + const double delta_t, const int process_id); /// Postprocessing after a complete timestep. void postTimestep(GlobalVector const& x); @@ -153,7 +153,8 @@ private: virtual void preTimestepConcreteProcess(GlobalVector const& /*x*/, const double /*t*/, - const double /*delta_t*/) + const double /*delta_t*/, + const int /*process_id*/) { } diff --git a/ProcessLib/SmallDeformation/SmallDeformationProcess-impl.h b/ProcessLib/SmallDeformation/SmallDeformationProcess-impl.h index 5c4f86d9109a1dacfced5e93d472f58dc883107f..a268bd9d3f6e38ae9e3277fdb86692e5e98b6ed5 100644 --- a/ProcessLib/SmallDeformation/SmallDeformationProcess-impl.h +++ b/ProcessLib/SmallDeformation/SmallDeformationProcess-impl.h @@ -175,7 +175,8 @@ void SmallDeformationProcess<DisplacementDim>:: template <int DisplacementDim> void SmallDeformationProcess<DisplacementDim>::preTimestepConcreteProcess( - GlobalVector const& x, double const t, double const dt) + GlobalVector const& x, double const t, double const dt, + const int /*process_id*/) { DBUG("PreTimestep SmallDeformationProcess."); diff --git a/ProcessLib/SmallDeformation/SmallDeformationProcess.h b/ProcessLib/SmallDeformation/SmallDeformationProcess.h index a681519793d0ad751950b78b920be20e5a281def..5c95ceb390b963699d6522cb0bfd60b00cc70443 100644 --- a/ProcessLib/SmallDeformation/SmallDeformationProcess.h +++ b/ProcessLib/SmallDeformation/SmallDeformationProcess.h @@ -58,8 +58,9 @@ private: const double dxdot_dx, const double dx_dx, GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac) override; - void preTimestepConcreteProcess(GlobalVector const& x, double const t, - double const dt) override; + void preTimestepConcreteProcess( + GlobalVector const& x, double const t, double const dt, + const int process_id) override; void postTimestepConcreteProcess(GlobalVector const& x) override; diff --git a/ProcessLib/TES/TESProcess.cpp b/ProcessLib/TES/TESProcess.cpp index 5afdac5595105ffaaa3729db872149354bc70576..40d96dd594d8a218ac69e0c90483ebfe7f8f6fdd 100644 --- a/ProcessLib/TES/TESProcess.cpp +++ b/ProcessLib/TES/TESProcess.cpp @@ -248,7 +248,8 @@ void TESProcess::assembleWithJacobianConcreteProcess( void TESProcess::preTimestepConcreteProcess(GlobalVector const& x, const double t, - const double delta_t) + const double delta_t, + const int /*process_id*/) { DBUG("new timestep"); diff --git a/ProcessLib/TES/TESProcess.h b/ProcessLib/TES/TESProcess.h index 195b5cdb53ee9c3e0538a73258002c73cbafe3df..fb2a8062f5bfb46886f33dfa4137acd3d2611d27 100644 --- a/ProcessLib/TES/TESProcess.h +++ b/ProcessLib/TES/TESProcess.h @@ -41,7 +41,8 @@ public: BaseLib::ConfigTree const& config); void preTimestepConcreteProcess(GlobalVector const& x, const double t, - const double delta_t) override; + const double delta_t, + const int process_id) override; void preIterationConcreteProcess(const unsigned iter, GlobalVector const& x) override; NumLib::IterationResult postIterationConcreteProcess( diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp index e6e86b688943d3c1a5e9213c0b0d0ef2ad2d8789..4acf0cdca1d03c7c5ac26e7c01c5f86dd0dca445 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp @@ -97,7 +97,8 @@ void ThermalTwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess( dx_dx, M, K, b, Jac, _coupled_solutions); } void ThermalTwoPhaseFlowWithPPProcess::preTimestepConcreteProcess( - GlobalVector const& x, double const t, double const delta_t) + GlobalVector const& x, double const t, double const delta_t, + const int /*process_id*/) { DBUG("PreTimestep ThermalTwoPhaseFlowWithPPProcess."); diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.h b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.h index e6dfa66fee7cdb4f7928b0d76239599312f33410..4ede515c524b283a1bff1dfbad348d9cdab28b69 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.h +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.h @@ -68,7 +68,8 @@ private: GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac) override; void preTimestepConcreteProcess(GlobalVector const& x, const double t, - const double delta_t) override; + const double delta_t, + const int process_id) override; ThermalTwoPhaseFlowWithPPProcessData _process_data; diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess-impl.h b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess-impl.h index 493b6b1fb5b12e2f98f4587f93490991dd2a930c..65ccd511029e28062939c8881b1ba3d7a2f245d2 100644 --- a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess-impl.h +++ b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess-impl.h @@ -177,7 +177,8 @@ void ThermoMechanicsProcess<DisplacementDim>:: template <int DisplacementDim> void ThermoMechanicsProcess<DisplacementDim>::preTimestepConcreteProcess( - GlobalVector const& x, double const t, double const dt) + GlobalVector const& x, double const t, double const dt, + const int /*process_id*/) { DBUG("PreTimestep ThermoMechanicsProcess."); diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.h b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.h index 85d5116103d78470acca18e62f80ac4dc7b2299e..e5a76051375259743b07ce49e8e8c237de02e7e5 100644 --- a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.h +++ b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.h @@ -58,8 +58,9 @@ private: const double dxdot_dx, const double dx_dx, GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac) override; - void preTimestepConcreteProcess(GlobalVector const& x, double const t, - double const dt) override; + void preTimestepConcreteProcess( + GlobalVector const& x, double const t, double const dt, + const int process_id) override; void postTimestepConcreteProcess(GlobalVector const& x) override; diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp index 16e4b985f70ebb96a5066f840d06d8c96aa3ca1b..e0d800de4a30da3311b76e3c32ee9283f340e40f 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp +++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp @@ -95,7 +95,8 @@ void TwoPhaseFlowWithPrhoProcess::assembleWithJacobianConcreteProcess( dx_dx, M, K, b, Jac, _coupled_solutions); } void TwoPhaseFlowWithPrhoProcess::preTimestepConcreteProcess( - GlobalVector const& x, double const t, double const dt) + GlobalVector const& x, double const t, double const dt, + const int /*process_id*/) { DBUG("PreTimestep TwoPhaseFlowWithPrhoProcess."); diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.h b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.h index ccf2163602fa2908caa449cd5e9213e6bc1ee8dc..6bc0376633dcf2ebcbf9bf3247e03d53c1c25959 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.h +++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.h @@ -64,7 +64,8 @@ private: GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac) override; void preTimestepConcreteProcess(GlobalVector const& x, const double t, - const double delta_t) override; + const double delta_t, + const int process_id) override; TwoPhaseFlowWithPrhoProcessData _process_data; diff --git a/ProcessLib/UncoupledProcessesTimeLoop.cpp b/ProcessLib/UncoupledProcessesTimeLoop.cpp index e031137c704c6980d1df33bda36ed373fab1d07a..b2e6a015c2e60980ef3aa788991bf07a5cbc6a40 100644 --- a/ProcessLib/UncoupledProcessesTimeLoop.cpp +++ b/ProcessLib/UncoupledProcessesTimeLoop.cpp @@ -839,7 +839,7 @@ bool UncoupledProcessesTimeLoop::solveUncoupledEquationSystems( auto& x = *_process_solutions[pcs_idx]; auto& pcs = spd->process; - pcs.preTimestep(x, t, dt); + pcs.preTimestep(x, t, dt, pcs_idx); const auto nonlinear_solver_succeeded = solveOneTimeStepOneProcess(x, timestep_id, t, dt, *spd, *_output); @@ -913,7 +913,7 @@ bool UncoupledProcessesTimeLoop::solveCoupledEquationSystemsByStaggeredScheme( // belongs to process. For some problems, both of the current // solution and the solution of the previous time step are // required for the coupling computation. - spd->process.preTimestep(x, t, dt); + spd->process.preTimestep(x, t, dt, pcs_idx); } CoupledSolutionsForStaggeredScheme coupled_solutions( @@ -1032,7 +1032,7 @@ void UncoupledProcessesTimeLoop::outputSolutions( if (output_initial_condition) pcs.preTimestep(x, _start_time, - spd->timestepper->getTimeStep().dt()); + spd->timestepper->getTimeStep().dt(), pcs_idx); if (is_staggered_coupling) { CoupledSolutionsForStaggeredScheme coupled_solutions(