From d619fc81a07b98eefecdaa94198717e79e3e2d99 Mon Sep 17 00:00:00 2001
From: Wenqing Wang <wenqing.wang@ufz.de>
Date: Wed, 19 Apr 2023 12:40:09 +0200
Subject: [PATCH] [Process] Added two arguments to postTimestep and

postTimestepConcrete of local assemblers.
---
 ProcessLib/ComponentTransport/ComponentTransportFEM.h      | 4 +++-
 .../ComponentTransport/ComponentTransportProcess.cpp       | 2 +-
 ProcessLib/HydroMechanics/HydroMechanicsFEM.h              | 5 +++--
 ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp        | 3 ++-
 ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp    | 2 +-
 .../LocalAssembler/HydroMechanicsLocalAssemblerInterface.h | 5 +++--
 ProcessLib/LocalAssemblerInterface.cpp                     | 6 ++++--
 ProcessLib/LocalAssemblerInterface.h                       | 7 +++++--
 ProcessLib/PhaseField/PhaseFieldFEM.h                      | 5 +++--
 ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h        | 5 +++--
 ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp  | 3 ++-
 ProcessLib/SmallDeformation/SmallDeformationFEM.h          | 4 +++-
 ProcessLib/SmallDeformation/SmallDeformationProcess.cpp    | 3 ++-
 .../SmallDeformationNonlocal/SmallDeformationNonlocalFEM.h | 4 +++-
 .../SmallDeformationNonlocalProcess.cpp                    | 3 ++-
 ProcessLib/StokesFlow/StokesFlowProcess.cpp                | 3 ++-
 ProcessLib/TH2M/TH2MFEM.h                                  | 5 +++--
 ProcessLib/TH2M/TH2MProcess.cpp                            | 3 ++-
 ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h  | 5 +++--
 .../ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp   | 3 ++-
 .../ThermoMechanicalPhaseFieldFEM.h                        | 4 +++-
 .../ThermoMechanicalPhaseFieldProcess.cpp                  | 2 +-
 ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h            | 4 +++-
 ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp      | 3 ++-
 ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM.h      | 5 +++--
 .../ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp       | 3 ++-
 .../ThermoRichardsMechanics/LocalAssemblerInterface.h      | 5 +++--
 .../ThermoRichardsMechanicsProcess.cpp                     | 3 ++-
 28 files changed, 71 insertions(+), 38 deletions(-)

diff --git a/ProcessLib/ComponentTransport/ComponentTransportFEM.h b/ProcessLib/ComponentTransport/ComponentTransportFEM.h
index 13e2f0d3e87..776fc1c74fa 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportFEM.h
+++ b/ProcessLib/ComponentTransport/ComponentTransportFEM.h
@@ -1807,7 +1807,9 @@ public:
 
     void postTimestepConcrete(Eigen::VectorXd const& /*local_x*/,
                               Eigen::VectorXd const& /*local_x_dot*/,
-                              double const /*t*/, double const /*dt*/) override
+                              double const /*t*/, double const /*dt*/,
+                              bool const /*use_monolithic_scheme*/,
+                              int const /*process_id*/) override
     {
         unsigned const n_integration_points =
             _integration_method.getNumberOfPoints();
diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp
index 652647b12d1..744f7eafad3 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp
+++ b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp
@@ -443,7 +443,7 @@ void ComponentTransportProcess::postTimestepConcreteProcess(
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &ComponentTransportLocalAssemblerInterface::postTimestep,
         _local_assemblers, pv.getActiveElementIDs(), dof_tables, x, x_dot, t,
-        dt);
+        dt, _use_monolithic_scheme, process_id);
 
     if (!_surfaceflux)  // computing the surfaceflux is optional
     {
diff --git a/ProcessLib/HydroMechanics/HydroMechanicsFEM.h b/ProcessLib/HydroMechanics/HydroMechanicsFEM.h
index 4c8a249bf4b..7c902c4ca2a 100644
--- a/ProcessLib/HydroMechanics/HydroMechanicsFEM.h
+++ b/ProcessLib/HydroMechanics/HydroMechanicsFEM.h
@@ -257,8 +257,9 @@ public:
 
     void postTimestepConcrete(Eigen::VectorXd const& /*local_x*/,
                               Eigen::VectorXd const& /*local_x_dot*/,
-                              double const /*t*/,
-                              double const /*dt*/) override
+                              double const /*t*/, double const /*dt*/,
+                              bool const /*use_monolithic_scheme*/,
+                              int const /*process_id*/) override
     {
         unsigned const n_integration_points =
             _integration_method.getNumberOfPoints();
diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp
index 21623bc27a3..e7add25eb26 100644
--- a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp
+++ b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp
@@ -405,7 +405,8 @@ void HydroMechanicsProcess<DisplacementDim>::postTimestepConcreteProcess(
     ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerIF::postTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt);
+        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt,
+        _use_monolithic_scheme, process_id);
 }
 
 template <int DisplacementDim>
diff --git a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp
index b542000a637..37fa1296607 100644
--- a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp
+++ b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp
@@ -469,7 +469,7 @@ void HydroMechanicsProcess<GlobalDim>::postTimestepConcreteProcess(
         GlobalExecutor::executeSelectedMemberOnDereferenced(
             &HydroMechanicsLocalAssemblerInterface::postTimestep,
             _local_assemblers, pv.getActiveElementIDs(), dof_tables, x, x_dot,
-            t, dt);
+            t, dt, _use_monolithic_scheme, process_id);
     }
 
     DBUG("Compute the secondary variables for HydroMechanicsProcess.");
diff --git a/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerInterface.h b/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerInterface.h
index deee7e49ed8..8abab69a84d 100644
--- a/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerInterface.h
+++ b/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerInterface.h
@@ -101,8 +101,9 @@ public:
 
     void postTimestepConcrete(Eigen::VectorXd const& local_x_,
                               Eigen::VectorXd const& /*local_x_dot*/,
-                              const double t,
-                              double const dt) override
+                              const double t, double const dt,
+                              bool const /*use_monolithic_scheme*/,
+                              int const /*process_id*/) override
     {
         _local_u.setZero();
         for (Eigen::Index i = 0; i < local_x_.rows(); i++)
diff --git a/ProcessLib/LocalAssemblerInterface.cpp b/ProcessLib/LocalAssemblerInterface.cpp
index 87e16e27072..28e3a937e25 100644
--- a/ProcessLib/LocalAssemblerInterface.cpp
+++ b/ProcessLib/LocalAssemblerInterface.cpp
@@ -132,7 +132,8 @@ void LocalAssemblerInterface::postTimestep(
     std::size_t const mesh_item_id,
     std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_tables,
     std::vector<GlobalVector*> const& x,
-    std::vector<GlobalVector*> const& x_dot, double const t, double const dt)
+    std::vector<GlobalVector*> const& x_dot, double const t, double const dt,
+    bool const use_monolithic_scheme, int const process_id)
 {
     std::vector<double> local_x_vec;
     std::vector<double> local_x_dot_vec;
@@ -155,7 +156,8 @@ void LocalAssemblerInterface::postTimestep(
     auto const local_x = MathLib::toVector(local_x_vec);
     auto const local_x_dot = MathLib::toVector(local_x_dot_vec);
 
-    postTimestepConcrete(local_x, local_x_dot, t, dt);
+    postTimestepConcrete(local_x, local_x_dot, t, dt, use_monolithic_scheme,
+                         process_id);
 }
 
 void LocalAssemblerInterface::postNonLinearSolver(
diff --git a/ProcessLib/LocalAssemblerInterface.h b/ProcessLib/LocalAssemblerInterface.h
index fe30f2fd389..5073bbd7bb5 100644
--- a/ProcessLib/LocalAssemblerInterface.h
+++ b/ProcessLib/LocalAssemblerInterface.h
@@ -92,7 +92,8 @@ public:
         std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_tables,
         std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_dot, double const t,
-        double const dt);
+        double const dt, bool const use_monolithic_scheme,
+        int const process_id);
 
     void postNonLinearSolver(std::size_t const mesh_item_id,
                              NumLib::LocalToGlobalIndexMap const& dof_table,
@@ -137,7 +138,9 @@ private:
 
     virtual void postTimestepConcrete(Eigen::VectorXd const& /*local_x*/,
                                       Eigen::VectorXd const& /*local_x_dot*/,
-                                      double const /*t*/, double const /*dt*/)
+                                      double const /*t*/, double const /*dt*/,
+                                      bool const /*use_monolithic_scheme*/,
+                                      int const /*process_id*/)
     {
     }
 
diff --git a/ProcessLib/PhaseField/PhaseFieldFEM.h b/ProcessLib/PhaseField/PhaseFieldFEM.h
index 3865e5e5b10..888d74db655 100644
--- a/ProcessLib/PhaseField/PhaseFieldFEM.h
+++ b/ProcessLib/PhaseField/PhaseFieldFEM.h
@@ -291,8 +291,9 @@ public:
 
     void postTimestepConcrete(Eigen::VectorXd const& /*local_x*/,
                               Eigen::VectorXd const& /*local_x_dot*/,
-                              double const /*t*/,
-                              double const /*dt*/) override
+                              double const /*t*/, double const /*dt*/,
+                              bool const /*use_monolithic_scheme*/,
+                              int const /*process_id*/) override
     {
         unsigned const n_integration_points =
             _integration_method.getNumberOfPoints();
diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h
index 0f93231ebeb..7ba7308163c 100644
--- a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h
+++ b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h
@@ -154,8 +154,9 @@ public:
 
     void postTimestepConcrete(Eigen::VectorXd const& /*local_x*/,
                               Eigen::VectorXd const& /*local_x_dot*/,
-                              double const /*t*/,
-                              double const /*dt*/) override
+                              double const /*t*/, double const /*dt*/,
+                              bool const /*use_monolithic_scheme*/,
+                              int const /*process_id*/) override
     {
         unsigned const n_integration_points =
             _integration_method.getNumberOfPoints();
diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp
index 5b15d385cc2..783912828cb 100644
--- a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp
+++ b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp
@@ -436,7 +436,8 @@ void RichardsMechanicsProcess<DisplacementDim>::postTimestepConcreteProcess(
             getProcessVariables(process_id)[0];
         GlobalExecutor::executeSelectedMemberOnDereferenced(
             &LocalAssemblerIF::postTimestep, _local_assemblers,
-            pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt);
+            pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt,
+            _use_monolithic_scheme, process_id);
     }
 }
 
diff --git a/ProcessLib/SmallDeformation/SmallDeformationFEM.h b/ProcessLib/SmallDeformation/SmallDeformationFEM.h
index 235cfea517f..8ad38715276 100644
--- a/ProcessLib/SmallDeformation/SmallDeformationFEM.h
+++ b/ProcessLib/SmallDeformation/SmallDeformationFEM.h
@@ -391,7 +391,9 @@ public:
 
     void postTimestepConcrete(Eigen::VectorXd const& local_x,
                               Eigen::VectorXd const& local_x_dot,
-                              double const t, double const dt) override
+                              double const t, double const dt,
+                              bool const /*use_monolithic_scheme*/,
+                              int const /*process_id*/) override
     {
         unsigned const n_integration_points =
             _integration_method.getNumberOfPoints();
diff --git a/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp b/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp
index 9095b97403e..ea587887a63 100644
--- a/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp
+++ b/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp
@@ -203,7 +203,8 @@ void SmallDeformationProcess<DisplacementDim>::postTimestepConcreteProcess(
     ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::postTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt);
+        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt,
+        _use_monolithic_scheme, process_id);
 
     std::unique_ptr<GlobalVector> material_forces;
     ProcessLib::SmallDeformation::writeMaterialForces(
diff --git a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalFEM.h b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalFEM.h
index e445b43af46..402d34b43b8 100644
--- a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalFEM.h
+++ b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalFEM.h
@@ -544,7 +544,9 @@ public:
 
     void postTimestepConcrete(Eigen::VectorXd const& /*local_x*/,
                               Eigen::VectorXd const& /*local_x_dot*/,
-                              double const /*t*/, double const /*dt*/) override
+                              double const /*t*/, double const /*dt*/,
+                              bool const /*use_monolithic_scheme*/,
+                              int const /*process_id*/) override
     {
         unsigned const n_integration_points =
             _integration_method.getNumberOfPoints();
diff --git a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp
index 721b7067497..ad0a58b2f0b 100644
--- a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp
+++ b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp
@@ -286,7 +286,8 @@ void SmallDeformationNonlocalProcess<DisplacementDim>::
     ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::postTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt);
+        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt,
+        _use_monolithic_scheme, process_id);
 }
 
 template <int DisplacementDim>
diff --git a/ProcessLib/StokesFlow/StokesFlowProcess.cpp b/ProcessLib/StokesFlow/StokesFlowProcess.cpp
index 14156ae3901..c0c78aeb6ed 100644
--- a/ProcessLib/StokesFlow/StokesFlowProcess.cpp
+++ b/ProcessLib/StokesFlow/StokesFlowProcess.cpp
@@ -210,7 +210,8 @@ void StokesFlowProcess<GlobalDim>::postTimestepConcreteProcess(
     ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &StokesFlowLocalAssemblerInterface::postTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt);
+        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt,
+        _use_monolithic_scheme, process_id);
 }
 
 template <int GlobalDim>
diff --git a/ProcessLib/TH2M/TH2MFEM.h b/ProcessLib/TH2M/TH2MFEM.h
index cc077ef17ea..bab4eaf8dae 100644
--- a/ProcessLib/TH2M/TH2MFEM.h
+++ b/ProcessLib/TH2M/TH2MFEM.h
@@ -150,8 +150,9 @@ private:
 
     void postTimestepConcrete(Eigen::VectorXd const& /*local_x*/,
                               Eigen::VectorXd const& /*local_x_dot*/,
-                              double const /*t*/,
-                              double const /*dt*/) override
+                              double const /*t*/, double const /*dt*/,
+                              bool const /*use_monolithic_scheme*/,
+                              int const /*process_id*/) override
     {
         unsigned const n_integration_points =
             _integration_method.getNumberOfPoints();
diff --git a/ProcessLib/TH2M/TH2MProcess.cpp b/ProcessLib/TH2M/TH2MProcess.cpp
index 537d011d8a4..632606aa0f0 100644
--- a/ProcessLib/TH2M/TH2MProcess.cpp
+++ b/ProcessLib/TH2M/TH2MProcess.cpp
@@ -373,7 +373,8 @@ void TH2MProcess<DisplacementDim>::postTimestepConcreteProcess(
     ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::postTimestep, local_assemblers_,
-        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt);
+        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt,
+        _use_monolithic_scheme, process_id);
 }
 
 template <int DisplacementDim>
diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h
index 90bb7886c90..21728ec8ab7 100644
--- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h
+++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h
@@ -161,8 +161,9 @@ public:
 
     void postTimestepConcrete(Eigen::VectorXd const& /*local_x*/,
                               Eigen::VectorXd const& /*local_x_dot*/,
-                              double const /*t*/,
-                              double const /*dt*/) override
+                              double const /*t*/, double const /*dt*/,
+                              bool const /*use_monolithic_scheme*/,
+                              int const /*process_id*/) override
     {
         unsigned const n_integration_points =
             _integration_method.getNumberOfPoints();
diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp
index 3b19cff592d..2d6aa4cdeb9 100644
--- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp
+++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp
@@ -390,7 +390,8 @@ void ThermoHydroMechanicsProcess<DisplacementDim>::postTimestepConcreteProcess(
 
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::postTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt);
+        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt,
+        _use_monolithic_scheme, process_id);
 }
 
 template <int DisplacementDim>
diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM.h b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM.h
index c57fa88ff7f..7470198a693 100644
--- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM.h
+++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM.h
@@ -254,7 +254,9 @@ public:
 
     void postTimestepConcrete(Eigen::VectorXd const& /*local_x*/,
                               Eigen::VectorXd const& /*local_x_dot*/,
-                              double const /*t*/, double const /*dt*/) override
+                              double const /*t*/, double const /*dt*/,
+                              bool const /*use_monolithic_scheme*/,
+                              int const /*process_id*/) override
     {
         unsigned const n_integration_points =
             _integration_method.getNumberOfPoints();
diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp
index 1a948966d5a..429eab48971 100644
--- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp
+++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp
@@ -301,7 +301,7 @@ void ThermoMechanicalPhaseFieldProcess<DisplacementDim>::
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &ThermoMechanicalPhaseFieldLocalAssemblerInterface::postTimestep,
         _local_assemblers, pv.getActiveElementIDs(), dof_tables, x, x_dot, t,
-        dt);
+        dt, _use_monolithic_scheme, process_id);
 }
 
 template <int DisplacementDim>
diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h b/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h
index eae77e1a27e..72a3660828d 100644
--- a/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h
+++ b/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h
@@ -226,7 +226,9 @@ public:
 
     void postTimestepConcrete(Eigen::VectorXd const& /*local_x*/,
                               Eigen::VectorXd const& /*local_x_dot*/,
-                              double const /*t*/, double const /*dt*/) override
+                              double const /*t*/, double const /*dt*/,
+                              bool const /*use_monolithic_scheme*/,
+                              int const /*process_id*/) override
     {
         unsigned const n_integration_points =
             _integration_method.getNumberOfPoints();
diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp
index efd54a16250..de19357e8d1 100644
--- a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp
+++ b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp
@@ -351,7 +351,8 @@ void ThermoMechanicsProcess<DisplacementDim>::postTimestepConcreteProcess(
     ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::postTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt);
+        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt,
+        _use_monolithic_scheme, process_id);
 }
 
 template <int DisplacementDim>
diff --git a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM.h b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM.h
index 0dd5422503e..8478acdc518 100644
--- a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM.h
+++ b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM.h
@@ -97,8 +97,9 @@ public:
 
     void postTimestepConcrete(Eigen::VectorXd const& /*local_x*/,
                               Eigen::VectorXd const& /*local_x_dot*/,
-                              double const /*t*/,
-                              double const /*dt*/) override
+                              double const /*t*/, double const /*dt*/,
+                              bool const /*use_monolithic_scheme*/,
+                              int const /*process_id*/) override
     {
         unsigned const n_integration_points =
             _integration_method.getNumberOfPoints();
diff --git a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp
index ea855b43a2f..e251502e914 100644
--- a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp
+++ b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp
@@ -188,7 +188,8 @@ void ThermoRichardsFlowProcess::postTimestepConcreteProcess(
     ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerIF::postTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt);
+        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt,
+        _use_monolithic_scheme, process_id);
 }
 
 void ThermoRichardsFlowProcess::computeSecondaryVariableConcrete(
diff --git a/ProcessLib/ThermoRichardsMechanics/LocalAssemblerInterface.h b/ProcessLib/ThermoRichardsMechanics/LocalAssemblerInterface.h
index e3ba811b6d4..ceb4d78750b 100644
--- a/ProcessLib/ThermoRichardsMechanics/LocalAssemblerInterface.h
+++ b/ProcessLib/ThermoRichardsMechanics/LocalAssemblerInterface.h
@@ -106,8 +106,9 @@ struct LocalAssemblerInterface : public ProcessLib::LocalAssemblerInterface,
 
     void postTimestepConcrete(Eigen::VectorXd const& /*local_x*/,
                               Eigen::VectorXd const& /*local_x_dot*/,
-                              double const /*t*/,
-                              double const /*dt*/) override
+                              double const /*t*/, double const /*dt*/,
+                              bool const /*use_monolithic_scheme*/,
+                              int const /*process_id*/) override
     {
         unsigned const n_integration_points =
             integration_method_.getNumberOfPoints();
diff --git a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp
index c4204f086ac..feebf63accb 100644
--- a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp
+++ b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp
@@ -288,7 +288,8 @@ void ThermoRichardsMechanicsProcess<DisplacementDim, ConstitutiveTraits>::
     ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerIF::postTimestep, local_assemblers_,
-        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt);
+        pv.getActiveElementIDs(), dof_tables, x, x_dot, t, dt,
+        _use_monolithic_scheme, process_id);
 }
 
 template <int DisplacementDim, typename ConstitutiveTraits>
-- 
GitLab