diff --git a/ProcessLib/ComponentTransport/ComponentTransportFEM.h b/ProcessLib/ComponentTransport/ComponentTransportFEM.h
index 13e2f0d3e877b507c830923ffba5656f143278c5..776fc1c74fac97af12d4689ae346def77e023cc7 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 652647b12d105dc9a1fe0d4b9039477991a115a6..744f7eafad34d2ae0366d34a20124c95c36720c0 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 4c8a249bf4b567e49d2777210babf638cac68307..7c902c4ca2a0a3a53737f8334a12fa8f34d7c452 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 21623bc27a3026a6047af4fffd0d29e98c5998e8..e7add25eb2612ea5c0df7fc4c3a86a61fe6ed917 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 b542000a6375c427d5029ee194d94465273dafea..37fa1296607b17d598db4ce9eec941670db90e00 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 deee7e49ed8c829e1bd747b1a7a49aeed3be5332..8abab69a84d9daf4787957e0d1e0774149870108 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 87e16e27072bbe4938463090db4f3fdd486b50ad..28e3a937e2591d3cf8678c5db38a016bb4437ee5 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 fe30f2fd389e55377a4d7c98284aa228528b1804..5073bbd7bb5de6a53a79c8043b4d26ca246c88e1 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 3865e5e5b10b4fbe593968fce227dc2a72eaf757..888d74db655a00d7492e769a706e69d2c40bcfda 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 0f93231ebeb8f313d3507fe972f87fcaab4c33d3..7ba7308163cc973f9b1b3bd18a04b67b2d2e32b8 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 5b15d385cc275fc53d2d8144a052f22919657ab7..783912828cb0f7daab1f1009faa6d5ebf4cb1d9f 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 235cfea517f1a4839a3403f9670e95e5f93f8145..8ad387152761fe57a721fa0ccc17a5a14005b594 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 9095b97403e5be92528e2aea9f27fe83d12d6cf8..ea587887a636a9b18f022e9b26643c0ebca877d7 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 e445b43af46e461e134facfb6c1c310372fc8eb8..402d34b43b8ea8af4e8ba066106e05ecced69fae 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 721b7067497d6fe327b2df52ba0fe33906ce8b44..ad0a58b2f0b33da4dc9269e78720f6fbbb46dc8e 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 14156ae390138792c36d820f0351f84fafb6b4ac..c0c78aeb6ed5e6bd9395e8c36ed612ea7e88fc6f 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 cc077ef17ea8681d75b7d9bfed8900bf0b58c48d..bab4eaf8dae9583ddd5bdb7bd9e63211e978f7b6 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 537d011d8a4ea5c367515a52398a846ac92a8a3e..632606aa0f061013342f6ef3aef67dc654cab772 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 90bb7886c90c1bb734e964a89753290576bf2d09..21728ec8ab786877f235967ebed75a1ccd24c3db 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 3b19cff592dc4c5d72e2c140c9abc7907a853474..2d6aa4cdeb99f145c129346ad8d9938d4d2fff5e 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 c57fa88ff7f65a880d8af49c0905dbb6dcb4f653..7470198a693d950cd33755a71f6da3b2522e441c 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 1a948966d5a67862c512b944278b3905d1c88954..429eab489718a2b7a4404e28e90d094ad2754681 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 eae77e1a27ed740375413d815b4f779f66ad37c8..72a3660828de6df409f61a6f11f14b337cef19b9 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 efd54a162508f740cce32627940f50dfcef08e5b..de19357e8d136eef1705de64a1255678b179c5bd 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 0dd5422503e68307fcc27354e6cacd42d04b6568..8478acdc51862ad322cf771ed0349aee035ed295 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 ea855b43a2f748b68c0f07c30641630ea40267e5..e251502e9145a3b5e004137dad03c95763cd7f98 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 e3ba811b6d4ac7e4698fc83f5c8b3a12e9330bef..ceb4d78750bfd64d8f495bf1ad8c0af4480351e1 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 c4204f086ac487268d7cbefd04fa68743a8dfefa..feebf63accb9db4e3701562712eeae8336c575bc 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>