From b0cfd47ed518e87c5a74f2dcad2c630bec52336e Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <dmitri.naumov@ufz.de>
Date: Tue, 16 Jul 2024 14:43:33 +0200
Subject: [PATCH] [PL] Remove M and K from asmWithJacobian functions

---
 .../ComponentTransportFEM.h                   |  2 --
 .../ComponentTransportProcess.cpp             |  4 ++--
 .../ComponentTransportProcess.h               |  3 +--
 ProcessLib/HT/HTProcess.cpp                   |  4 ++--
 ProcessLib/HT/HTProcess.h                     |  3 +--
 ProcessLib/HeatConduction/HeatConductionFEM.h |  2 --
 .../HeatConduction/HeatConductionProcess.cpp  |  4 ++--
 .../HeatConduction/HeatConductionProcess.h    |  3 +--
 .../HeatTransportBHEProcess.cpp               |  4 ++--
 .../HeatTransportBHEProcess.h                 |  3 +--
 .../HeatTransportBHELocalAssemblerBHE-impl.h  |  4 ++--
 .../HeatTransportBHELocalAssemblerBHE.h       |  2 --
 .../HeatTransportBHELocalAssemblerSoil-impl.h |  7 ++++---
 .../HeatTransportBHELocalAssemblerSoil.h      |  2 --
 .../HydroMechanics/HydroMechanicsFEM-impl.h   | 14 ++++++--------
 ProcessLib/HydroMechanics/HydroMechanicsFEM.h |  3 ---
 .../HydroMechanics/HydroMechanicsProcess.cpp  |  4 ++--
 .../HydroMechanics/HydroMechanicsProcess.h    |  3 +--
 .../HydroMechanics/HydroMechanicsProcess.cpp  |  4 ++--
 .../HydroMechanics/HydroMechanicsProcess.h    |  3 +--
 .../HydroMechanicsLocalAssemblerInterface.h   |  2 --
 .../SmallDeformationLocalAssemblerInterface.h |  2 --
 ...mallDeformationLocalAssemblerMatrix-impl.h |  2 --
 .../SmallDeformationLocalAssemblerMatrix.h    |  2 --
 .../SmallDeformationProcess.cpp               |  4 ++--
 .../SmallDeformationProcess.h                 |  3 +--
 .../LargeDeformation/LargeDeformationFEM.h    |  2 --
 .../LargeDeformationProcess.cpp               |  8 ++++----
 .../LargeDeformationProcess.h                 |  3 +--
 ProcessLib/LiquidFlow/LiquidFlowProcess.cpp   |  4 ++--
 ProcessLib/LiquidFlow/LiquidFlowProcess.h     |  3 +--
 ProcessLib/PhaseField/PhaseFieldFEM-impl.h    |  2 --
 ProcessLib/PhaseField/PhaseFieldFEM.h         |  1 -
 ProcessLib/PhaseField/PhaseFieldProcess.cpp   |  4 ++--
 ProcessLib/PhaseField/PhaseFieldProcess.h     |  3 +--
 .../RichardsComponentTransportProcess.cpp     |  4 ++--
 .../RichardsComponentTransportProcess.h       |  3 +--
 .../RichardsFlow/RichardsFlowProcess.cpp      |  4 ++--
 ProcessLib/RichardsFlow/RichardsFlowProcess.h |  3 +--
 .../RichardsMechanicsFEM-impl.h               | 19 ++++++-------------
 .../RichardsMechanics/RichardsMechanicsFEM.h  | 19 ++-----------------
 .../RichardsMechanicsProcess.cpp              |  4 ++--
 .../RichardsMechanicsProcess.h                |  3 +--
 .../SmallDeformation/SmallDeformationFEM.h    |  2 --
 .../SmallDeformationProcess.cpp               |  8 ++++----
 .../SmallDeformationProcess.h                 |  3 +--
 .../SmallDeformationNonlocalFEM.h             |  2 --
 .../SmallDeformationNonlocalProcess.cpp       |  4 ++--
 .../SmallDeformationNonlocalProcess.h         |  3 +--
 ProcessLib/StokesFlow/StokesFlowProcess.cpp   |  3 +--
 ProcessLib/StokesFlow/StokesFlowProcess.h     |  3 +--
 ProcessLib/TES/TESProcess.cpp                 |  4 ++--
 ProcessLib/TES/TESProcess.h                   |  3 +--
 ProcessLib/TH2M/TH2MFEM-impl.h                |  2 --
 ProcessLib/TH2M/TH2MFEM.h                     |  2 --
 ProcessLib/TH2M/TH2MProcess.cpp               |  4 ++--
 ProcessLib/TH2M/TH2MProcess.h                 |  3 +--
 .../ThermalTwoPhaseFlowWithPPProcess.cpp      |  8 ++++----
 .../ThermalTwoPhaseFlowWithPPProcess.h        |  3 +--
 .../ThermoHydroMechanicsFEM-impl.h            | 15 +++++++--------
 .../ThermoHydroMechanicsFEM.h                 |  2 --
 .../ThermoHydroMechanicsProcess.cpp           |  4 ++--
 .../ThermoHydroMechanicsProcess.h             |  3 +--
 .../ThermoMechanicalPhaseFieldFEM-impl.h      | 12 ++++++------
 .../ThermoMechanicalPhaseFieldFEM.h           |  1 -
 .../ThermoMechanicalPhaseFieldProcess.cpp     |  4 ++--
 .../ThermoMechanicalPhaseFieldProcess.h       |  3 +--
 .../ThermoMechanics/ThermoMechanicsFEM-impl.h | 14 ++++++--------
 .../ThermoMechanics/ThermoMechanicsFEM.h      |  3 ---
 .../ThermoMechanicsProcess.cpp                |  4 ++--
 .../ThermoMechanics/ThermoMechanicsProcess.h  |  3 +--
 .../ThermoRichardsFlowFEM-impl.h              |  2 --
 .../ThermoRichardsFlowFEM.h                   |  2 --
 .../ThermoRichardsFlowProcess.cpp             |  6 +++---
 .../ThermoRichardsFlowProcess.h               |  3 +--
 .../ThermoRichardsMechanicsFEM-impl.h         |  2 --
 .../ThermoRichardsMechanicsFEM.h              |  2 --
 .../ThermoRichardsMechanicsProcess.cpp        |  5 ++---
 .../ThermoRichardsMechanicsProcess.h          |  3 +--
 .../TwoPhaseFlowWithPPProcess.cpp             |  4 ++--
 .../TwoPhaseFlowWithPPProcess.h               |  3 +--
 .../TwoPhaseFlowWithPrhoProcess.cpp           |  4 ++--
 .../TwoPhaseFlowWithPrhoProcess.h             |  3 +--
 83 files changed, 123 insertions(+), 223 deletions(-)

diff --git a/ProcessLib/ComponentTransport/ComponentTransportFEM.h b/ProcessLib/ComponentTransport/ComponentTransportFEM.h
index d0a90d31864..974ca4be42e 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportFEM.h
+++ b/ProcessLib/ComponentTransport/ComponentTransportFEM.h
@@ -1285,8 +1285,6 @@ public:
     void assembleWithJacobianForStaggeredScheme(
         double const t, double const dt, Eigen::VectorXd const& local_x,
         Eigen::VectorXd const& local_x_prev, int const process_id,
-        std::vector<double>& /*local_M_data*/,
-        std::vector<double>& /*local_K_data*/,
         std::vector<double>& local_b_data,
         std::vector<double>& local_Jac_data) override
     {
diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp
index 55c2cdf83c1..b635727bfa3 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp
+++ b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp
@@ -276,7 +276,7 @@ void ComponentTransportProcess::assembleConcreteProcess(
 void ComponentTransportProcess::assembleWithJacobianConcreteProcess(
     const double t, double const dt, std::vector<GlobalVector*> const& x,
     std::vector<GlobalVector*> const& x_prev, int const process_id,
-    GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+    GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleWithJacobian ComponentTransportProcess.");
 
@@ -296,7 +296,7 @@ void ComponentTransportProcess::assembleWithJacobianConcreteProcess(
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 
     // b is the negated residumm used in the Newton's method.
     // Here negating b is to recover the primitive residuum.
diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcess.h b/ProcessLib/ComponentTransport/ComponentTransportProcess.h
index 224933c61b9..6ed3b112afd 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportProcess.h
+++ b/ProcessLib/ComponentTransport/ComponentTransportProcess.h
@@ -166,8 +166,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void preOutputConcreteProcess(const double t, double const dt,
                                   std::vector<GlobalVector*> const& x,
diff --git a/ProcessLib/HT/HTProcess.cpp b/ProcessLib/HT/HTProcess.cpp
index 63d6ddfcc24..2f41777e6ce 100644
--- a/ProcessLib/HT/HTProcess.cpp
+++ b/ProcessLib/HT/HTProcess.cpp
@@ -112,7 +112,7 @@ void HTProcess::assembleConcreteProcess(
 void HTProcess::assembleWithJacobianConcreteProcess(
     const double t, double const dt, std::vector<GlobalVector*> const& x,
     std::vector<GlobalVector*> const& x_prev, int const process_id,
-    GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+    GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleWithJacobian HTProcess.");
 
@@ -131,7 +131,7 @@ void HTProcess::assembleWithJacobianConcreteProcess(
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 }
 
 std::tuple<NumLib::LocalToGlobalIndexMap*, bool>
diff --git a/ProcessLib/HT/HTProcess.h b/ProcessLib/HT/HTProcess.h
index 950793e0411..2e7c65b9fa3 100644
--- a/ProcessLib/HT/HTProcess.h
+++ b/ProcessLib/HT/HTProcess.h
@@ -98,8 +98,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     /**
      * @copydoc ProcessLib::Process::getDOFTableForExtrapolatorData()
diff --git a/ProcessLib/HeatConduction/HeatConductionFEM.h b/ProcessLib/HeatConduction/HeatConductionFEM.h
index bb93cc45209..4096af46a59 100644
--- a/ProcessLib/HeatConduction/HeatConductionFEM.h
+++ b/ProcessLib/HeatConduction/HeatConductionFEM.h
@@ -152,8 +152,6 @@ public:
     void assembleWithJacobian(double const t, double const dt,
                               std::vector<double> const& local_x,
                               std::vector<double> const& local_x_prev,
-                              std::vector<double>& /*local_M_data*/,
-                              std::vector<double>& /*local_K_data*/,
                               std::vector<double>& local_rhs_data,
                               std::vector<double>& local_Jac_data) override
     {
diff --git a/ProcessLib/HeatConduction/HeatConductionProcess.cpp b/ProcessLib/HeatConduction/HeatConductionProcess.cpp
index a12e8a11fa0..727736df4ee 100644
--- a/ProcessLib/HeatConduction/HeatConductionProcess.cpp
+++ b/ProcessLib/HeatConduction/HeatConductionProcess.cpp
@@ -111,7 +111,7 @@ void HeatConductionProcess::assembleConcreteProcess(
 void HeatConductionProcess::assembleWithJacobianConcreteProcess(
     const double t, double const dt, std::vector<GlobalVector*> const& x,
     std::vector<GlobalVector*> const& x_prev, int const process_id,
-    GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+    GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleWithJacobian HeatConductionProcess.");
 
@@ -121,7 +121,7 @@ void HeatConductionProcess::assembleWithJacobianConcreteProcess(
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 
     transformVariableFromGlobalVector(b, 0 /*variable id*/,
                                       *_local_to_global_index_map, *_heat_flux,
diff --git a/ProcessLib/HeatConduction/HeatConductionProcess.h b/ProcessLib/HeatConduction/HeatConductionProcess.h
index c0a461d4377..dc60006530c 100644
--- a/ProcessLib/HeatConduction/HeatConductionProcess.h
+++ b/ProcessLib/HeatConduction/HeatConductionProcess.h
@@ -70,8 +70,7 @@ private:
         const double t, double const /*dt*/,
         std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void preOutputConcreteProcess(const double t, double const dt,
                                   std::vector<GlobalVector*> const& x,
diff --git a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp
index 03878612a98..5b2a54b1110 100644
--- a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp
+++ b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp
@@ -177,7 +177,7 @@ void HeatTransportBHEProcess::assembleConcreteProcess(
 void HeatTransportBHEProcess::assembleWithJacobianConcreteProcess(
     const double t, double const dt, std::vector<GlobalVector*> const& x,
     std::vector<GlobalVector*> const& x_prev, int const process_id,
-    GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+    GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleWithJacobian HeatTransportBHE process.");
 
@@ -188,7 +188,7 @@ void HeatTransportBHEProcess::assembleWithJacobianConcreteProcess(
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 }
 
 void HeatTransportBHEProcess::computeSecondaryVariableConcrete(
diff --git a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.h b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.h
index 328e27a5995..e59d3af65fc 100644
--- a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.h
+++ b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.h
@@ -63,8 +63,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void createBHEBoundaryConditionTopBottom(
         std::vector<std::vector<MeshLib::Node*>> const& all_bhe_nodes);
diff --git a/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerBHE-impl.h b/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerBHE-impl.h
index f26a5e5d950..e4fb2d485fe 100644
--- a/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerBHE-impl.h
+++ b/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerBHE-impl.h
@@ -219,8 +219,6 @@ void HeatTransportBHELocalAssemblerBHE<ShapeFunction, BHEType>::
     assembleWithJacobian(double const t, double const dt,
                          std::vector<double> const& local_x,
                          std::vector<double> const& local_x_prev,
-                         std::vector<double>& local_M_data,
-                         std::vector<double>& local_K_data,
                          std::vector<double>& local_rhs_data,
                          std::vector<double>& local_Jac_data)
 {
@@ -236,6 +234,8 @@ void HeatTransportBHELocalAssemblerBHE<ShapeFunction, BHEType>::
     auto local_rhs = MathLib::createZeroedVector<BheLocalVectorType>(
         local_rhs_data, local_matrix_size);
 
+    std::vector<double> local_M_data(local_Jac_data.size());
+    std::vector<double> local_K_data(local_Jac_data.size());
     assemble(t, dt, local_x, local_x_prev, local_M_data, local_K_data,
              local_rhs_data /*not going to be used*/);
 
diff --git a/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerBHE.h b/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerBHE.h
index bef12205b7e..2664222a5f6 100644
--- a/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerBHE.h
+++ b/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerBHE.h
@@ -73,8 +73,6 @@ public:
     void assembleWithJacobian(double const t, double const dt,
                               std::vector<double> const& local_x,
                               std::vector<double> const& local_x_prev,
-                              std::vector<double>& /*local_M_data*/,
-                              std::vector<double>& /*local_K_data*/,
                               std::vector<double>& local_rhs_data,
                               std::vector<double>& local_Jac_data) override;
 
diff --git a/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil-impl.h b/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil-impl.h
index 56351127972..fc1443e76f9 100644
--- a/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil-impl.h
+++ b/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil-impl.h
@@ -195,9 +195,8 @@ void HeatTransportBHELocalAssemblerSoil<ShapeFunction>::assemble(
 template <typename ShapeFunction>
 void HeatTransportBHELocalAssemblerSoil<ShapeFunction>::assembleWithJacobian(
     double const t, double const dt, std::vector<double> const& local_x,
-    std::vector<double> const& local_x_prev, std::vector<double>& local_M_data,
-    std::vector<double>& local_K_data, std::vector<double>& local_rhs_data,
-    std::vector<double>& local_Jac_data)
+    std::vector<double> const& local_x_prev,
+    std::vector<double>& local_rhs_data, std::vector<double>& local_Jac_data)
 {
     assert(local_x.size() == ShapeFunction::NPOINTS);
     auto const local_matrix_size = local_x.size();
@@ -212,6 +211,8 @@ void HeatTransportBHELocalAssemblerSoil<ShapeFunction>::assembleWithJacobian(
     auto local_rhs = MathLib::createZeroedVector<NodalVectorType>(
         local_rhs_data, local_matrix_size);
 
+    std::vector<double> local_M_data(local_Jac_data.size());
+    std::vector<double> local_K_data(local_Jac_data.size());
     assemble(t, dt, local_x, local_x_prev, local_M_data, local_K_data,
              local_rhs_data /*not going to be used*/);
 
diff --git a/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil.h b/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil.h
index 82488e738cd..8eed921cf2e 100644
--- a/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil.h
+++ b/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil.h
@@ -62,8 +62,6 @@ public:
     void assembleWithJacobian(double const t, double const dt,
                               std::vector<double> const& local_x,
                               std::vector<double> const& local_x_prev,
-                              std::vector<double>& /*local_M_data*/,
-                              std::vector<double>& /*local_K_data*/,
                               std::vector<double>& local_rhs_data,
                               std::vector<double>& local_Jac_data) override;
 
diff --git a/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h b/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h
index 07094dc53be..867359cb049 100644
--- a/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h
+++ b/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h
@@ -103,8 +103,6 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement,
     assembleWithJacobian(double const t, double const dt,
                          std::vector<double> const& local_x,
                          std::vector<double> const& local_x_prev,
-                         std::vector<double>& /*local_M_data*/,
-                         std::vector<double>& /*local_K_data*/,
                          std::vector<double>& local_rhs_data,
                          std::vector<double>& local_Jac_data)
 {
@@ -791,12 +789,12 @@ template <typename ShapeFunctionDisplacement, typename ShapeFunctionPressure,
           int DisplacementDim>
 void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement,
                                   ShapeFunctionPressure, DisplacementDim>::
-    assembleWithJacobianForStaggeredScheme(
-        const double t, double const dt, Eigen::VectorXd const& local_x,
-        Eigen::VectorXd const& local_x_prev, int const process_id,
-        std::vector<double>& /*local_M_data*/,
-        std::vector<double>& /*local_K_data*/,
-        std::vector<double>& local_b_data, std::vector<double>& local_Jac_data)
+    assembleWithJacobianForStaggeredScheme(const double t, double const dt,
+                                           Eigen::VectorXd const& local_x,
+                                           Eigen::VectorXd const& local_x_prev,
+                                           int const process_id,
+                                           std::vector<double>& local_b_data,
+                                           std::vector<double>& local_Jac_data)
 {
     // For the equations with pressure
     if (process_id == _process_data.hydraulic_process_id)
diff --git a/ProcessLib/HydroMechanics/HydroMechanicsFEM.h b/ProcessLib/HydroMechanics/HydroMechanicsFEM.h
index 45dcdc49d94..fdb3010d97a 100644
--- a/ProcessLib/HydroMechanics/HydroMechanicsFEM.h
+++ b/ProcessLib/HydroMechanics/HydroMechanicsFEM.h
@@ -215,15 +215,12 @@ public:
     void assembleWithJacobian(double const t, double const dt,
                               std::vector<double> const& local_x,
                               std::vector<double> const& local_x_prev,
-                              std::vector<double>& /*local_M_data*/,
-                              std::vector<double>& /*local_K_data*/,
                               std::vector<double>& local_rhs_data,
                               std::vector<double>& local_Jac_data) override;
 
     void assembleWithJacobianForStaggeredScheme(
         const double t, double const dt, Eigen::VectorXd const& local_x,
         Eigen::VectorXd const& local_x_prev, int const process_id,
-        std::vector<double>& local_M_data, std::vector<double>& local_K_data,
         std::vector<double>& local_b_data,
         std::vector<double>& local_Jac_data) override;
 
diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp
index 2addf268dd6..d5a123a71ab 100644
--- a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp
+++ b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp
@@ -308,7 +308,7 @@ void HydroMechanicsProcess<DisplacementDim>::
     assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+        GlobalVector& b, GlobalMatrix& Jac)
 {
     // For the monolithic scheme
     bool const use_monolithic_scheme = _process_data.isMonolithicSchemeUsed();
@@ -339,7 +339,7 @@ void HydroMechanicsProcess<DisplacementDim>::
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 
     auto copyRhs = [&](int const variable_id, auto& output_vector)
     {
diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcess.h b/ProcessLib/HydroMechanics/HydroMechanicsProcess.h
index 70df7d70b7e..775fcd7f49e 100644
--- a/ProcessLib/HydroMechanics/HydroMechanicsProcess.h
+++ b/ProcessLib/HydroMechanics/HydroMechanicsProcess.h
@@ -85,8 +85,7 @@ private:
         const double t, double const /*dt*/,
         std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void preTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
                                     double const t, double const dt,
diff --git a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp
index 976676c913d..dda3ef2d93f 100644
--- a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp
+++ b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp
@@ -461,7 +461,7 @@ template <int GlobalDim>
 void HydroMechanicsProcess<GlobalDim>::assembleWithJacobianConcreteProcess(
     const double t, double const dt, std::vector<GlobalVector*> const& x,
     std::vector<GlobalVector*> const& x_prev, int const process_id,
-    GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+    GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleWithJacobian HydroMechanicsProcess.");
 
@@ -471,7 +471,7 @@ void HydroMechanicsProcess<GlobalDim>::assembleWithJacobianConcreteProcess(
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 
     auto copyRhs = [&](int const variable_id, auto& output_vector)
     {
diff --git a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.h b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.h
index fe8b621d6ee..884f224705a 100644
--- a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.h
+++ b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.h
@@ -73,8 +73,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
     void preTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
                                     double const t, double const dt,
                                     int const process_id) override;
diff --git a/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerInterface.h b/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerInterface.h
index 34f37086cec..7bb3281a40a 100644
--- a/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerInterface.h
+++ b/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerInterface.h
@@ -67,8 +67,6 @@ public:
     void assembleWithJacobian(double const t, double const dt,
                               std::vector<double> const& local_x_,
                               std::vector<double> const& local_x_prev_,
-                              std::vector<double>& /*local_M_data*/,
-                              std::vector<double>& /*local_K_data*/,
                               std::vector<double>& local_b_data,
                               std::vector<double>& local_Jac_data) override
     {
diff --git a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerInterface.h b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerInterface.h
index a9c7999bcbc..4c1c98d4539 100644
--- a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerInterface.h
+++ b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerInterface.h
@@ -41,8 +41,6 @@ public:
     void assembleWithJacobian(double const t, double const dt,
                               std::vector<double> const& local_x_,
                               std::vector<double> const& /*local_x_prev*/,
-                              std::vector<double>& /*local_M_data*/,
-                              std::vector<double>& /*local_K_data*/,
                               std::vector<double>& local_b_data,
                               std::vector<double>& local_Jac_data) override
     {
diff --git a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrix-impl.h b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrix-impl.h
index fc19e7c026c..750193bc5ce 100644
--- a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrix-impl.h
+++ b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrix-impl.h
@@ -94,8 +94,6 @@ void SmallDeformationLocalAssemblerMatrix<ShapeFunction, DisplacementDim>::
     assembleWithJacobian(double const t, double const dt,
                          std::vector<double> const& local_x,
                          std::vector<double> const& /*local_x_prev*/,
-                         std::vector<double>& /*local_M_data*/,
-                         std::vector<double>& /*local_K_data*/,
                          std::vector<double>& local_b_data,
                          std::vector<double>& local_Jac_data)
 {
diff --git a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrix.h b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrix.h
index b624622d5ea..9ea94d6e315 100644
--- a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrix.h
+++ b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrix.h
@@ -74,8 +74,6 @@ public:
     void assembleWithJacobian(double const t, double const dt,
                               std::vector<double> const& local_x,
                               std::vector<double> const& /*local_x_prev*/,
-                              std::vector<double>& /*local_M_data*/,
-                              std::vector<double>& /*local_K_data*/,
                               std::vector<double>& local_b_data,
                               std::vector<double>& local_Jac_data) override;
 
diff --git a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp
index 6cf8ae89652..ce7ae11c8e7 100644
--- a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp
+++ b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp
@@ -429,7 +429,7 @@ void SmallDeformationProcess<DisplacementDim>::
     assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+        GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleWithJacobian SmallDeformationProcess.");
 
@@ -439,7 +439,7 @@ void SmallDeformationProcess<DisplacementDim>::
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 }
 template <int DisplacementDim>
 void SmallDeformationProcess<DisplacementDim>::preTimestepConcreteProcess(
diff --git a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.h b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.h
index 61f76db9a4d..50834590970 100644
--- a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.h
+++ b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.h
@@ -70,8 +70,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void preTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
                                     double const t, double const dt,
diff --git a/ProcessLib/LargeDeformation/LargeDeformationFEM.h b/ProcessLib/LargeDeformation/LargeDeformationFEM.h
index 31c20f977d0..bde4331a96d 100644
--- a/ProcessLib/LargeDeformation/LargeDeformationFEM.h
+++ b/ProcessLib/LargeDeformation/LargeDeformationFEM.h
@@ -242,8 +242,6 @@ public:
     void assembleWithJacobian(double const t, double const dt,
                               std::vector<double> const& local_x,
                               std::vector<double> const& local_x_prev,
-                              std::vector<double>& /*local_M_data*/,
-                              std::vector<double>& /*local_K_data*/,
                               std::vector<double>& local_b_data,
                               std::vector<double>& local_Jac_data) override
     {
diff --git a/ProcessLib/LargeDeformation/LargeDeformationProcess.cpp b/ProcessLib/LargeDeformation/LargeDeformationProcess.cpp
index 169ad6ed5e8..bf5a13101ff 100644
--- a/ProcessLib/LargeDeformation/LargeDeformationProcess.cpp
+++ b/ProcessLib/LargeDeformation/LargeDeformationProcess.cpp
@@ -145,7 +145,7 @@ void LargeDeformationProcess<DisplacementDim>::assembleConcreteProcess(
         getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, &M, &K,
         &b);
 
-    _global_output(t, process_id, M, K, b);
+    _global_output(t, process_id, &M, &K, b);
 }
 
 template <int DisplacementDim>
@@ -153,7 +153,7 @@ void LargeDeformationProcess<DisplacementDim>::
     assembleWithJacobianConcreteProcess(
         double const t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+        GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleWithJacobian LargeDeformationProcess.");
 
@@ -163,12 +163,12 @@ void LargeDeformationProcess<DisplacementDim>::
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 
     transformVariableFromGlobalVector(b, 0, *_local_to_global_index_map,
                                       *_nodal_forces, std::negate<double>());
 
-    _global_output(t, process_id, M, K, b, &Jac);
+    _global_output(t, process_id, nullptr, nullptr, b, &Jac);
 }
 
 template <int DisplacementDim>
diff --git a/ProcessLib/LargeDeformation/LargeDeformationProcess.h b/ProcessLib/LargeDeformation/LargeDeformationProcess.h
index c30f829d583..27e41b7e1a8 100644
--- a/ProcessLib/LargeDeformation/LargeDeformationProcess.h
+++ b/ProcessLib/LargeDeformation/LargeDeformationProcess.h
@@ -58,8 +58,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void postTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
                                      std::vector<GlobalVector*> const& x_prev,
diff --git a/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp b/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp
index af379eab6fc..8a7ed8a18b8 100644
--- a/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp
+++ b/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp
@@ -97,7 +97,7 @@ void LiquidFlowProcess::assembleConcreteProcess(
 void LiquidFlowProcess::assembleWithJacobianConcreteProcess(
     const double t, double const dt, std::vector<GlobalVector*> const& x,
     std::vector<GlobalVector*> const& x_prev, int const process_id,
-    GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+    GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleWithJacobian LiquidFlowProcess.");
 
@@ -108,7 +108,7 @@ void LiquidFlowProcess::assembleWithJacobianConcreteProcess(
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 }
 
 void LiquidFlowProcess::computeSecondaryVariableConcrete(
diff --git a/ProcessLib/LiquidFlow/LiquidFlowProcess.h b/ProcessLib/LiquidFlow/LiquidFlowProcess.h
index 8ac5910005e..b61365e5b6b 100644
--- a/ProcessLib/LiquidFlow/LiquidFlowProcess.h
+++ b/ProcessLib/LiquidFlow/LiquidFlowProcess.h
@@ -100,8 +100,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     LiquidFlowData _process_data;
 
diff --git a/ProcessLib/PhaseField/PhaseFieldFEM-impl.h b/ProcessLib/PhaseField/PhaseFieldFEM-impl.h
index cccd13e0d99..56b62e26e96 100644
--- a/ProcessLib/PhaseField/PhaseFieldFEM-impl.h
+++ b/ProcessLib/PhaseField/PhaseFieldFEM-impl.h
@@ -22,8 +22,6 @@ void PhaseFieldLocalAssembler<ShapeFunction, DisplacementDim>::
     assembleWithJacobianForStaggeredScheme(
         double const t, double const dt, Eigen::VectorXd const& local_x,
         Eigen::VectorXd const& /*local_x_prev*/, int const process_id,
-        std::vector<double>& /*local_M_data*/,
-        std::vector<double>& /*local_K_data*/,
         std::vector<double>& local_b_data, std::vector<double>& local_Jac_data)
 {
     // For the equations with phase field.
diff --git a/ProcessLib/PhaseField/PhaseFieldFEM.h b/ProcessLib/PhaseField/PhaseFieldFEM.h
index a3d1e3170c7..17bfe2b9f1e 100644
--- a/ProcessLib/PhaseField/PhaseFieldFEM.h
+++ b/ProcessLib/PhaseField/PhaseFieldFEM.h
@@ -277,7 +277,6 @@ public:
     void assembleWithJacobianForStaggeredScheme(
         double const t, double const dt, Eigen::VectorXd const& local_x,
         Eigen::VectorXd const& local_x_prev, int const process_id,
-        std::vector<double>& local_M_data, std::vector<double>& local_K_data,
         std::vector<double>& local_b_data,
         std::vector<double>& local_Jac_data) override;
 
diff --git a/ProcessLib/PhaseField/PhaseFieldProcess.cpp b/ProcessLib/PhaseField/PhaseFieldProcess.cpp
index 1a35046a8fd..38233cf3db2 100644
--- a/ProcessLib/PhaseField/PhaseFieldProcess.cpp
+++ b/ProcessLib/PhaseField/PhaseFieldProcess.cpp
@@ -218,7 +218,7 @@ template <int DisplacementDim>
 void PhaseFieldProcess<DisplacementDim>::assembleWithJacobianConcreteProcess(
     const double t, double const dt, std::vector<GlobalVector*> const& x,
     std::vector<GlobalVector*> const& x_prev, int const process_id,
-    GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+    GlobalVector& b, GlobalMatrix& Jac)
 {
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_tables;
 
@@ -242,7 +242,7 @@ void PhaseFieldProcess<DisplacementDim>::assembleWithJacobianConcreteProcess(
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 
     if (process_id == 0)
     {
diff --git a/ProcessLib/PhaseField/PhaseFieldProcess.h b/ProcessLib/PhaseField/PhaseFieldProcess.h
index 1d354872871..9f2a2db958e 100644
--- a/ProcessLib/PhaseField/PhaseFieldProcess.h
+++ b/ProcessLib/PhaseField/PhaseFieldProcess.h
@@ -70,8 +70,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void preTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
                                     double const t, double const dt,
diff --git a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp
index f034a1c1360..69c43e6d5b1 100644
--- a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp
+++ b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp
@@ -84,7 +84,7 @@ void RichardsComponentTransportProcess::assembleConcreteProcess(
 void RichardsComponentTransportProcess::assembleWithJacobianConcreteProcess(
     const double t, double const dt, std::vector<GlobalVector*> const& x,
     std::vector<GlobalVector*> const& x_prev, int const process_id,
-    GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+    GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleWithJacobian RichardsComponentTransportProcess.");
 
@@ -95,7 +95,7 @@ void RichardsComponentTransportProcess::assembleWithJacobianConcreteProcess(
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 }
 
 }  // namespace RichardsComponentTransport
diff --git a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.h b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.h
index d84d50f6318..9e9143fa126 100644
--- a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.h
+++ b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.h
@@ -137,8 +137,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     RichardsComponentTransportProcessData _process_data;
 
diff --git a/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp b/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp
index e00e2ac3da6..6b41d1f8394 100644
--- a/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp
+++ b/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp
@@ -78,7 +78,7 @@ void RichardsFlowProcess::assembleConcreteProcess(
 void RichardsFlowProcess::assembleWithJacobianConcreteProcess(
     const double t, double const dt, std::vector<GlobalVector*> const& x,
     std::vector<GlobalVector*> const& x_prev, int const process_id,
-    GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+    GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleWithJacobian RichardsFlowProcess.");
 
@@ -89,7 +89,7 @@ void RichardsFlowProcess::assembleWithJacobianConcreteProcess(
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 }
 
 }  // namespace RichardsFlow
diff --git a/ProcessLib/RichardsFlow/RichardsFlowProcess.h b/ProcessLib/RichardsFlow/RichardsFlowProcess.h
index 70bee188df1..dae1ee4bdb1 100644
--- a/ProcessLib/RichardsFlow/RichardsFlowProcess.h
+++ b/ProcessLib/RichardsFlow/RichardsFlowProcess.h
@@ -56,8 +56,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     RichardsFlowProcessData _process_data;
 
diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h
index b225b114f76..84be48989be 100644
--- a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h
+++ b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h
@@ -1036,8 +1036,6 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
     assembleWithJacobian(double const t, double const dt,
                          std::vector<double> const& local_x,
                          std::vector<double> const& local_x_prev,
-                         std::vector<double>& /*local_M_data*/,
-                         std::vector<double>& /*local_K_data*/,
                          std::vector<double>& local_rhs_data,
                          std::vector<double>& local_Jac_data)
 {
@@ -1451,8 +1449,6 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
         const double /*t*/, double const /*dt*/,
         Eigen::VectorXd const& /*local_x*/,
         Eigen::VectorXd const& /*local_x_prev*/,
-        std::vector<double>& /*local_M_data*/,
-        std::vector<double>& /*local_K_data*/,
         std::vector<double>& /*local_b_data*/,
         std::vector<double>& /*local_Jac_data*/)
 {
@@ -1467,8 +1463,6 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
         const double /*t*/, double const /*dt*/,
         Eigen::VectorXd const& /*local_x*/,
         Eigen::VectorXd const& /*local_x_prev*/,
-        std::vector<double>& /*local_M_data*/,
-        std::vector<double>& /*local_K_data*/,
         std::vector<double>& /*local_b_data*/,
         std::vector<double>& /*local_Jac_data*/)
 {
@@ -1479,24 +1473,23 @@ template <typename ShapeFunctionDisplacement, typename ShapeFunctionPressure,
           int DisplacementDim>
 void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
                                      ShapeFunctionPressure, DisplacementDim>::
-    assembleWithJacobianForStaggeredScheme(
-        double const t, double const dt, Eigen::VectorXd const& local_x,
-        Eigen::VectorXd const& local_x_prev, int const process_id,
-        std::vector<double>& local_M_data, std::vector<double>& local_K_data,
-        std::vector<double>& local_b_data, std::vector<double>& local_Jac_data)
+    assembleWithJacobianForStaggeredScheme(double const t, double const dt,
+                                           Eigen::VectorXd const& local_x,
+                                           Eigen::VectorXd const& local_x_prev,
+                                           int const process_id,
+                                           std::vector<double>& local_b_data,
+                                           std::vector<double>& local_Jac_data)
 {
     // For the equations with pressure
     if (process_id == 0)
     {
         assembleWithJacobianForPressureEquations(t, dt, local_x, local_x_prev,
-                                                 local_M_data, local_K_data,
                                                  local_b_data, local_Jac_data);
         return;
     }
 
     // For the equations with deformation
     assembleWithJacobianForDeformationEquations(t, dt, local_x, local_x_prev,
-                                                local_M_data, local_K_data,
                                                 local_b_data, local_Jac_data);
 }
 
diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h
index f11da1d504d..4cec7a14c8e 100644
--- a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h
+++ b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h
@@ -104,15 +104,12 @@ public:
     void assembleWithJacobian(double const t, double const dt,
                               std::vector<double> const& local_x,
                               std::vector<double> const& local_x_prev,
-                              std::vector<double>& /*local_M_data*/,
-                              std::vector<double>& /*local_K_data*/,
                               std::vector<double>& local_rhs_data,
                               std::vector<double>& local_Jac_data) override;
 
     void assembleWithJacobianForStaggeredScheme(
         double const t, double const dt, Eigen::VectorXd const& local_x,
         Eigen::VectorXd const& local_x_prev, int const process_id,
-        std::vector<double>& local_M_data, std::vector<double>& local_K_data,
         std::vector<double>& local_b_data,
         std::vector<double>& local_Jac_data) override;
 
@@ -186,19 +183,13 @@ private:
      * @param dt              Time increment
      * @param local_x         Nodal values of \f$x\f$ of an element.
      * @param local_x_prev    Nodal values of \f$x_{prev}\f$ of an element.
-     * @param local_M_data    Mass matrix of an element, which takes the form of
-     *                        \f$ \int N^T N\mathrm{d}\Omega\f$. Not used.
-     * @param local_K_data    Laplacian matrix of an element, which takes the
-     *         form of \f$ \int (\nabla N)^T K \nabla N\mathrm{d}\Omega\f$.
-     *                        Not used.
      * @param local_b_data    Right hand side vector of an element.
      * @param local_Jac_data  Element Jacobian matrix for the Newton-Raphson
      *                        method.
      */
     void assembleWithJacobianForDeformationEquations(
         double const t, double const dt, Eigen::VectorXd const& local_x,
-        Eigen::VectorXd const& local_x_prev, std::vector<double>& local_M_data,
-        std::vector<double>& local_K_data, std::vector<double>& local_b_data,
+        Eigen::VectorXd const& local_x_prev, std::vector<double>& local_b_data,
         std::vector<double>& local_Jac_data);
 
     /**
@@ -218,19 +209,13 @@ private:
      * @param dt              Time increment
      * @param local_x         Nodal values of \f$x\f$ of an element.
      * @param local_x_prev    Nodal values of \f$x_{prev}\f$ of an element.
-     * @param local_M_data    Mass matrix of an element, which takes the form of
-     *                        \f$ \int N^T N\mathrm{d}\Omega\f$. Not used.
-     * @param local_K_data    Laplacian matrix of an element, which takes the
-     *         form of \f$ \int (\nabla N)^T K \nabla N\mathrm{d}\Omega\f$.
-     *                        Not used.
      * @param local_b_data    Right hand side vector of an element.
      * @param local_Jac_data  Element Jacobian matrix for the Newton-Raphson
      *                        method.
      */
     void assembleWithJacobianForPressureEquations(
         double const t, double const dt, Eigen::VectorXd const& local_x,
-        Eigen::VectorXd const& local_x_prev, std::vector<double>& local_M_data,
-        std::vector<double>& local_K_data, std::vector<double>& local_b_data,
+        Eigen::VectorXd const& local_x_prev, std::vector<double>& local_b_data,
         std::vector<double>& local_Jac_data);
 
 private:
diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp
index d04fe1f174a..7d7877c3015 100644
--- a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp
+++ b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp
@@ -292,7 +292,7 @@ void RichardsMechanicsProcess<DisplacementDim>::
     assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+        GlobalVector& b, GlobalMatrix& Jac)
 {
     // For the monolithic scheme
     if (_use_monolithic_scheme)
@@ -322,7 +322,7 @@ void RichardsMechanicsProcess<DisplacementDim>::
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 
     auto copyRhs = [&](int const variable_id, auto& output_vector)
     {
diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.h b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.h
index 4bde5cffffd..11212f11c61 100644
--- a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.h
+++ b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.h
@@ -88,8 +88,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void postTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
                                      std::vector<GlobalVector*> const& x_prev,
diff --git a/ProcessLib/SmallDeformation/SmallDeformationFEM.h b/ProcessLib/SmallDeformation/SmallDeformationFEM.h
index 4a436dfd6da..646d18e319e 100644
--- a/ProcessLib/SmallDeformation/SmallDeformationFEM.h
+++ b/ProcessLib/SmallDeformation/SmallDeformationFEM.h
@@ -229,8 +229,6 @@ public:
     void assembleWithJacobian(double const t, double const dt,
                               std::vector<double> const& local_x,
                               std::vector<double> const& local_x_prev,
-                              std::vector<double>& /*local_M_data*/,
-                              std::vector<double>& /*local_K_data*/,
                               std::vector<double>& local_b_data,
                               std::vector<double>& local_Jac_data) override
     {
diff --git a/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp b/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp
index dc768172fa7..b588aef7a42 100644
--- a/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp
+++ b/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp
@@ -147,7 +147,7 @@ void SmallDeformationProcess<DisplacementDim>::assembleConcreteProcess(
         getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, &M, &K,
         &b);
 
-    _global_output(t, process_id, M, K, b);
+    _global_output(t, process_id, &M, &K, b);
 }
 
 template <int DisplacementDim>
@@ -155,7 +155,7 @@ void SmallDeformationProcess<DisplacementDim>::
     assembleWithJacobianConcreteProcess(
         double const t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+        GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleWithJacobian SmallDeformationProcess.");
 
@@ -165,12 +165,12 @@ void SmallDeformationProcess<DisplacementDim>::
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 
     transformVariableFromGlobalVector(b, 0, *_local_to_global_index_map,
                                       *_nodal_forces, std::negate<double>());
 
-    _global_output(t, process_id, M, K, b, &Jac);
+    _global_output(t, process_id, nullptr, nullptr, b, &Jac);
 }
 
 template <int DisplacementDim>
diff --git a/ProcessLib/SmallDeformation/SmallDeformationProcess.h b/ProcessLib/SmallDeformation/SmallDeformationProcess.h
index ec5a51ca5a1..3693283872a 100644
--- a/ProcessLib/SmallDeformation/SmallDeformationProcess.h
+++ b/ProcessLib/SmallDeformation/SmallDeformationProcess.h
@@ -58,8 +58,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void postTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
                                      std::vector<GlobalVector*> const& x_prev,
diff --git a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalFEM.h b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalFEM.h
index 5c0b788c637..6661b54d76d 100644
--- a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalFEM.h
+++ b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalFEM.h
@@ -440,8 +440,6 @@ public:
     void assembleWithJacobian(double const t, double const /*dt*/,
                               std::vector<double> const& local_x,
                               std::vector<double> const& /*local_x_prev*/,
-                              std::vector<double>& /*local_M_data*/,
-                              std::vector<double>& /*local_K_data*/,
                               std::vector<double>& local_b_data,
                               std::vector<double>& local_Jac_data) override
     {
diff --git a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp
index cbf799fa300..83751f61293 100644
--- a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp
+++ b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp
@@ -213,7 +213,7 @@ void SmallDeformationNonlocalProcess<DisplacementDim>::
     assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+        GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleWithJacobian SmallDeformationNonlocalProcess.");
 
@@ -224,7 +224,7 @@ void SmallDeformationNonlocalProcess<DisplacementDim>::
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 
     b.copyValues(*_nodal_forces);
     std::transform(_nodal_forces->begin(), _nodal_forces->end(),
diff --git a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.h b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.h
index f505faffa9e..545feeab101 100644
--- a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.h
+++ b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.h
@@ -62,8 +62,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void postTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
                                      std::vector<GlobalVector*> const& x_prev,
diff --git a/ProcessLib/StokesFlow/StokesFlowProcess.cpp b/ProcessLib/StokesFlow/StokesFlowProcess.cpp
index 3fc37e549b2..b34d904f47c 100644
--- a/ProcessLib/StokesFlow/StokesFlowProcess.cpp
+++ b/ProcessLib/StokesFlow/StokesFlowProcess.cpp
@@ -152,8 +152,7 @@ void StokesFlowProcess<GlobalDim>::assembleWithJacobianConcreteProcess(
     const double /*t*/, double const /*dt*/,
     std::vector<GlobalVector*> const& /*x*/,
     std::vector<GlobalVector*> const& /*x_prev*/, int const /*process_id*/,
-    GlobalMatrix& /*M*/, GlobalMatrix& /*K*/, GlobalVector& /*b*/,
-    GlobalMatrix& /*Jac*/)
+    GlobalVector& /*b*/, GlobalMatrix& /*Jac*/)
 {
     OGS_FATAL(
         "Assembly of Jacobian matrix has not yet been implemented for "
diff --git a/ProcessLib/StokesFlow/StokesFlowProcess.h b/ProcessLib/StokesFlow/StokesFlowProcess.h
index e6a3126c32d..fae43b5f7f9 100644
--- a/ProcessLib/StokesFlow/StokesFlowProcess.h
+++ b/ProcessLib/StokesFlow/StokesFlowProcess.h
@@ -80,8 +80,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     std::vector<MeshLib::Node*> _base_nodes;
     std::unique_ptr<MeshLib::MeshSubset const> _mesh_subset_base_nodes;
diff --git a/ProcessLib/TES/TESProcess.cpp b/ProcessLib/TES/TESProcess.cpp
index 466026afe15..c2f59694243 100644
--- a/ProcessLib/TES/TESProcess.cpp
+++ b/ProcessLib/TES/TESProcess.cpp
@@ -223,7 +223,7 @@ void TESProcess::assembleConcreteProcess(
 void TESProcess::assembleWithJacobianConcreteProcess(
     const double t, double const dt, std::vector<GlobalVector*> const& x,
     std::vector<GlobalVector*> const& x_prev, int const process_id,
-    GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+    GlobalVector& b, GlobalMatrix& Jac)
 {
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
@@ -232,7 +232,7 @@ void TESProcess::assembleWithJacobianConcreteProcess(
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 }
 
 void TESProcess::preTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
diff --git a/ProcessLib/TES/TESProcess.h b/ProcessLib/TES/TESProcess.h
index 249021ab363..ab05be02beb 100644
--- a/ProcessLib/TES/TESProcess.h
+++ b/ProcessLib/TES/TESProcess.h
@@ -68,8 +68,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     GlobalVector const& computeVapourPartialPressure(
         const double t,
diff --git a/ProcessLib/TH2M/TH2MFEM-impl.h b/ProcessLib/TH2M/TH2MFEM-impl.h
index 42d127276f9..a39ae5a5af6 100644
--- a/ProcessLib/TH2M/TH2MFEM-impl.h
+++ b/ProcessLib/TH2M/TH2MFEM-impl.h
@@ -1210,8 +1210,6 @@ void TH2MLocalAssembler<ShapeFunctionDisplacement, ShapeFunctionPressure,
     assembleWithJacobian(double const t, double const dt,
                          std::vector<double> const& local_x,
                          std::vector<double> const& local_x_prev,
-                         std::vector<double>& /*local_M_data*/,
-                         std::vector<double>& /*local_K_data*/,
                          std::vector<double>& local_rhs_data,
                          std::vector<double>& local_Jac_data)
 {
diff --git a/ProcessLib/TH2M/TH2MFEM.h b/ProcessLib/TH2M/TH2MFEM.h
index bad9ef32fd5..ac63333df31 100644
--- a/ProcessLib/TH2M/TH2MFEM.h
+++ b/ProcessLib/TH2M/TH2MFEM.h
@@ -109,8 +109,6 @@ private:
     void assembleWithJacobian(double const t, double const dt,
                               std::vector<double> const& local_x,
                               std::vector<double> const& local_x_prev,
-                              std::vector<double>& /*local_M_data*/,
-                              std::vector<double>& /*local_K_data*/,
                               std::vector<double>& local_rhs_data,
                               std::vector<double>& local_Jac_data) override;
 
diff --git a/ProcessLib/TH2M/TH2MProcess.cpp b/ProcessLib/TH2M/TH2MProcess.cpp
index 3162a1876a4..c7f66f32522 100644
--- a/ProcessLib/TH2M/TH2MProcess.cpp
+++ b/ProcessLib/TH2M/TH2MProcess.cpp
@@ -252,7 +252,7 @@ template <int DisplacementDim>
 void TH2MProcess<DisplacementDim>::assembleWithJacobianConcreteProcess(
     const double t, double const dt, std::vector<GlobalVector*> const& x,
     std::vector<GlobalVector*> const& x_prev, int const process_id,
-    GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+    GlobalVector& b, GlobalMatrix& Jac)
 {
     if (!_use_monolithic_scheme)
     {
@@ -260,7 +260,7 @@ void TH2MProcess<DisplacementDim>::assembleWithJacobianConcreteProcess(
     }
 
     AssemblyMixin<TH2MProcess<DisplacementDim>>::assembleWithJacobian(
-        t, dt, x, x_prev, process_id, M, K, b, Jac);
+        t, dt, x, x_prev, process_id, b, Jac);
 }
 
 template <int DisplacementDim>
diff --git a/ProcessLib/TH2M/TH2MProcess.h b/ProcessLib/TH2M/TH2MProcess.h
index c1831c70564..6b8942efd44 100644
--- a/ProcessLib/TH2M/TH2MProcess.h
+++ b/ProcessLib/TH2M/TH2MProcess.h
@@ -91,8 +91,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void preTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
                                     double const t, double const dt,
diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp
index 474a0426a91..20165029fdd 100644
--- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp
+++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp
@@ -96,13 +96,13 @@ void ThermalTwoPhaseFlowWithPPProcess::assembleConcreteProcess(
         getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, &M, &K,
         &b);
 
-    _global_output(t, process_id, M, K, b);
+    _global_output(t, process_id, &M, &K, b);
 }
 
 void ThermalTwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(
     const double t, double const dt, std::vector<GlobalVector*> const& x,
     std::vector<GlobalVector*> const& x_prev, int const process_id,
-    GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+    GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleWithJacobian ThermalTwoPhaseFlowWithPPProcess.");
 
@@ -113,9 +113,9 @@ void ThermalTwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 
-    _global_output(t, process_id, M, K, b, &Jac);
+    _global_output(t, process_id, nullptr, nullptr, b, &Jac);
 }
 
 void ThermalTwoPhaseFlowWithPPProcess::preTimestepConcreteProcess(
diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.h b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.h
index d58e6fc1405..9b41114ee3a 100644
--- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.h
+++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.h
@@ -71,8 +71,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void preTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
                                     const double t, const double delta_t,
diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM-impl.h b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM-impl.h
index ae3e8597c75..1475f9c878f 100644
--- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM-impl.h
+++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM-impl.h
@@ -549,14 +549,13 @@ ConstitutiveRelationsValues<DisplacementDim> ThermoHydroMechanicsLocalAssembler<
 template <typename ShapeFunctionDisplacement, typename ShapeFunctionPressure,
           int DisplacementDim>
 void ThermoHydroMechanicsLocalAssembler<
-    ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim>::
-    assembleWithJacobian(double const t, double const dt,
-                         std::vector<double> const& local_x,
-                         std::vector<double> const& local_x_prev,
-                         std::vector<double>& /*local_M_data*/,
-                         std::vector<double>& /*local_K_data*/,
-                         std::vector<double>& local_rhs_data,
-                         std::vector<double>& local_Jac_data)
+    ShapeFunctionDisplacement, ShapeFunctionPressure,
+    DisplacementDim>::assembleWithJacobian(double const t, double const dt,
+                                           std::vector<double> const& local_x,
+                                           std::vector<double> const&
+                                               local_x_prev,
+                                           std::vector<double>& local_rhs_data,
+                                           std::vector<double>& local_Jac_data)
 {
     assert(local_x.size() ==
            pressure_size + displacement_size + temperature_size);
diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h
index 2fe17a9a636..335757843ea 100644
--- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h
+++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h
@@ -109,8 +109,6 @@ public:
     void assembleWithJacobian(double const t, double const dt,
                               std::vector<double> const& local_x,
                               std::vector<double> const& local_x_prev,
-                              std::vector<double>& /*local_M_data*/,
-                              std::vector<double>& /*local_K_data*/,
                               std::vector<double>& local_rhs_data,
                               std::vector<double>& local_Jac_data) override;
 
diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp
index bd2f596277a..2fe1b4fd4cb 100644
--- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp
+++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp
@@ -355,7 +355,7 @@ void ThermoHydroMechanicsProcess<DisplacementDim>::
     assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+        GlobalVector& b, GlobalMatrix& Jac)
 {
     // For the monolithic scheme
     if (_use_monolithic_scheme)
@@ -392,7 +392,7 @@ void ThermoHydroMechanicsProcess<DisplacementDim>::
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 
     auto copyRhs = [&](int const variable_id, auto& output_vector)
     {
diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.h b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.h
index afc726448f2..c71b18e4ff8 100644
--- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.h
+++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.h
@@ -87,8 +87,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void preTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
                                     double const t, double const dt,
diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM-impl.h b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM-impl.h
index d2f503df1cf..4f676c7bb73 100644
--- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM-impl.h
+++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM-impl.h
@@ -19,12 +19,12 @@ namespace ThermoMechanicalPhaseField
 {
 template <typename ShapeFunction, int DisplacementDim>
 void ThermoMechanicalPhaseFieldLocalAssembler<ShapeFunction, DisplacementDim>::
-    assembleWithJacobianForStaggeredScheme(
-        double const t, double const dt, Eigen::VectorXd const& local_x,
-        Eigen::VectorXd const& local_x_prev, int const process_id,
-        std::vector<double>& /*local_M_data*/,
-        std::vector<double>& /*local_K_data*/,
-        std::vector<double>& local_b_data, std::vector<double>& local_Jac_data)
+    assembleWithJacobianForStaggeredScheme(double const t, double const dt,
+                                           Eigen::VectorXd const& local_x,
+                                           Eigen::VectorXd const& local_x_prev,
+                                           int const process_id,
+                                           std::vector<double>& local_b_data,
+                                           std::vector<double>& local_Jac_data)
 {
     if (process_id == _phase_field_process_id)
     {
diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM.h b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM.h
index ec0c5fe6fcc..d40b691dee4 100644
--- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM.h
+++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM.h
@@ -237,7 +237,6 @@ public:
     void assembleWithJacobianForStaggeredScheme(
         double const t, double const dt, Eigen::VectorXd const& local_x,
         Eigen::VectorXd const& local_x_prev, int const process_id,
-        std::vector<double>& local_M_data, std::vector<double>& local_K_data,
         std::vector<double>& local_b_data,
         std::vector<double>& local_Jac_data) override;
 
diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp
index 72a414084ac..fcd0a3d5f94 100644
--- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp
+++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp
@@ -213,7 +213,7 @@ void ThermoMechanicalPhaseFieldProcess<DisplacementDim>::
     assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+        GlobalVector& b, GlobalMatrix& Jac)
 {
     // For the staggered scheme
     if (process_id == _mechanics_related_process_id)
@@ -247,7 +247,7 @@ void ThermoMechanicalPhaseFieldProcess<DisplacementDim>::
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 }
 
 template <int DisplacementDim>
diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.h b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.h
index 62f54a89c1d..ec88268d9b1 100644
--- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.h
+++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.h
@@ -101,8 +101,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void preTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
                                     double const t, double const dt,
diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsFEM-impl.h b/ProcessLib/ThermoMechanics/ThermoMechanicsFEM-impl.h
index f9e4f067363..125ac03d23c 100644
--- a/ProcessLib/ThermoMechanics/ThermoMechanicsFEM-impl.h
+++ b/ProcessLib/ThermoMechanics/ThermoMechanicsFEM-impl.h
@@ -116,8 +116,6 @@ void ThermoMechanicsLocalAssembler<ShapeFunction, DisplacementDim>::
     assembleWithJacobian(double const t, double const dt,
                          std::vector<double> const& local_x,
                          std::vector<double> const& local_x_prev,
-                         std::vector<double>& /*local_M_data*/,
-                         std::vector<double>& /*local_K_data*/,
                          std::vector<double>& local_rhs_data,
                          std::vector<double>& local_Jac_data)
 {
@@ -329,12 +327,12 @@ void ThermoMechanicsLocalAssembler<ShapeFunction, DisplacementDim>::
 
 template <typename ShapeFunction, int DisplacementDim>
 void ThermoMechanicsLocalAssembler<ShapeFunction, DisplacementDim>::
-    assembleWithJacobianForStaggeredScheme(
-        const double t, double const dt, Eigen::VectorXd const& local_x,
-        Eigen::VectorXd const& local_x_prev, int const process_id,
-        std::vector<double>& /*local_M_data*/,
-        std::vector<double>& /*local_K_data*/,
-        std::vector<double>& local_b_data, std::vector<double>& local_Jac_data)
+    assembleWithJacobianForStaggeredScheme(const double t, double const dt,
+                                           Eigen::VectorXd const& local_x,
+                                           Eigen::VectorXd const& local_x_prev,
+                                           int const process_id,
+                                           std::vector<double>& local_b_data,
+                                           std::vector<double>& local_Jac_data)
 {
     // For the equations with pressure
     if (process_id == _process_data.heat_conduction_process_id)
diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h b/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h
index a8a45231d3a..681b6043ec5 100644
--- a/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h
+++ b/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h
@@ -182,15 +182,12 @@ public:
     void assembleWithJacobianForStaggeredScheme(
         double const t, double const dt, Eigen::VectorXd const& local_x,
         Eigen::VectorXd const& local_x_prev, int const process_id,
-        std::vector<double>& local_M_data, std::vector<double>& local_K_data,
         std::vector<double>& local_b_data,
         std::vector<double>& local_Jac_data) override;
 
     void assembleWithJacobian(double const t, double const dt,
                               std::vector<double> const& local_x,
                               std::vector<double> const& local_x_prev,
-                              std::vector<double>& local_M_data,
-                              std::vector<double>& local_K_data,
                               std::vector<double>& local_rhs_data,
                               std::vector<double>& local_Jac_data) override;
 
diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp
index 21fa72010ca..3160fca6646 100644
--- a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp
+++ b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp
@@ -225,7 +225,7 @@ void ThermoMechanicsProcess<DisplacementDim>::
     assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+        GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleJacobian ThermoMechanicsProcess.");
 
@@ -273,7 +273,7 @@ void ThermoMechanicsProcess<DisplacementDim>::
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 
     // TODO (naumov): Refactor the copy rhs part. This is copy from HM.
     auto copyRhs = [&](int const variable_id, auto& output_vector)
diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.h b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.h
index ff35d33c61a..bd5930b7ac7 100644
--- a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.h
+++ b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.h
@@ -77,8 +77,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void preTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
                                     double const t, double const dt,
diff --git a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM-impl.h b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM-impl.h
index 58c8b2724fa..3ccc832d9db 100644
--- a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM-impl.h
+++ b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM-impl.h
@@ -155,8 +155,6 @@ void ThermoRichardsFlowLocalAssembler<ShapeFunction, GlobalDim>::
     assembleWithJacobian(double const t, double const dt,
                          std::vector<double> const& local_x,
                          std::vector<double> const& local_x_prev,
-                         std::vector<double>& /*local_M_data*/,
-                         std::vector<double>& /*local_K_data*/,
                          std::vector<double>& local_rhs_data,
                          std::vector<double>& local_Jac_data)
 {
diff --git a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM.h b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM.h
index 8adfb0e0cb8..9bc94a65e9d 100644
--- a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM.h
+++ b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM.h
@@ -70,8 +70,6 @@ public:
     void assembleWithJacobian(double const t, double const dt,
                               std::vector<double> const& local_x,
                               std::vector<double> const& local_x_prev,
-                              std::vector<double>& /*local_M_data*/,
-                              std::vector<double>& /*local_K_data*/,
                               std::vector<double>& local_rhs_data,
                               std::vector<double>& local_Jac_data) override;
 
diff --git a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp
index 8c88b5ddc93..762fae97635 100644
--- a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp
+++ b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp
@@ -144,7 +144,7 @@ void ThermoRichardsFlowProcess::assembleConcreteProcess(
 void ThermoRichardsFlowProcess::assembleWithJacobianConcreteProcess(
     const double t, double const dt, std::vector<GlobalVector*> const& x,
     std::vector<GlobalVector*> const& x_prev, int const process_id,
-    GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+    GlobalVector& b, GlobalMatrix& Jac)
 {
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_tables;
 
@@ -154,8 +154,8 @@ void ThermoRichardsFlowProcess::assembleWithJacobianConcreteProcess(
     dof_tables.emplace_back(_local_to_global_index_map.get());
 
     _pvma.assembleWithJacobian(_local_assemblers, getActiveElementIDs(),
-                               dof_tables, t, dt, x, x_prev, process_id, M, K,
-                               b, Jac);
+                               dof_tables, t, dt, x, x_prev, process_id, b,
+                               Jac);
 
     auto copyRhs = [&](int const variable_id, auto& output_vector)
     {
diff --git a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.h b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.h
index 12cbffd2d99..c4c3cb94266 100644
--- a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.h
+++ b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.h
@@ -122,8 +122,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void postTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
                                      std::vector<GlobalVector*> const& x_prev,
diff --git a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM-impl.h b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM-impl.h
index 3a9c9776320..421998d8795 100644
--- a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM-impl.h
+++ b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM-impl.h
@@ -202,8 +202,6 @@ void ThermoRichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
     assembleWithJacobian(double const t, double const dt,
                          std::vector<double> const& local_x,
                          std::vector<double> const& local_x_prev,
-                         std::vector<double>& /*local_M_data*/,
-                         std::vector<double>& /*local_K_data*/,
                          std::vector<double>& local_rhs_data,
                          std::vector<double>& local_Jac_data)
 {
diff --git a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h
index 410cad16ad4..0bb2215d1ff 100644
--- a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h
+++ b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h
@@ -244,8 +244,6 @@ public:
     void assembleWithJacobian(double const t, double const dt,
                               std::vector<double> const& local_x,
                               std::vector<double> const& local_x_prev,
-                              std::vector<double>& /*local_M_data*/,
-                              std::vector<double>& /*local_K_data*/,
                               std::vector<double>& local_rhs_data,
                               std::vector<double>& local_Jac_data) override;
 
diff --git a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp
index 3232236c077..3813235dd1b 100644
--- a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp
+++ b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp
@@ -218,14 +218,13 @@ void ThermoRichardsMechanicsProcess<DisplacementDim, ConstitutiveTraits>::
     assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+        GlobalVector& b, GlobalMatrix& Jac)
 {
     AssemblyMixin<ThermoRichardsMechanicsProcess<
         DisplacementDim, ConstitutiveTraits>>::assembleWithJacobian(t, dt, x,
                                                                     x_prev,
                                                                     process_id,
-                                                                    M, K, b,
-                                                                    Jac);
+                                                                    b, Jac);
 }
 
 template <int DisplacementDim, typename ConstitutiveTraits>
diff --git a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.h b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.h
index 45a99603e9c..a13c2b0d338 100644
--- a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.h
+++ b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.h
@@ -184,8 +184,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     void preTimestepConcreteProcess(std::vector<GlobalVector*> const& /*x*/,
                                     const double /*t*/,
diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp
index 2ea49f2db01..268193e4644 100644
--- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp
+++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp
@@ -78,7 +78,7 @@ void TwoPhaseFlowWithPPProcess::assembleConcreteProcess(
 void TwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(
     const double t, double const dt, std::vector<GlobalVector*> const& x,
     std::vector<GlobalVector*> const& x_prev, int const process_id,
-    GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+    GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleWithJacobian TwoPhaseFlowWithPPProcess.");
 
@@ -89,7 +89,7 @@ void TwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 }
 
 }  // namespace TwoPhaseFlowWithPP
diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.h b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.h
index bcbf185c829..d3e85ca1f42 100644
--- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.h
+++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.h
@@ -67,8 +67,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     TwoPhaseFlowWithPPProcessData _process_data;
 
diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp
index 1bbd135aafc..6026da1846e 100644
--- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp
+++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp
@@ -78,7 +78,7 @@ void TwoPhaseFlowWithPrhoProcess::assembleConcreteProcess(
 void TwoPhaseFlowWithPrhoProcess::assembleWithJacobianConcreteProcess(
     const double t, double const dt, std::vector<GlobalVector*> const& x,
     std::vector<GlobalVector*> const& x_prev, int const process_id,
-    GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac)
+    GlobalVector& b, GlobalMatrix& Jac)
 {
     DBUG("AssembleWithJacobian TwoPhaseFlowWithPrhoProcess.");
 
@@ -89,7 +89,7 @@ void TwoPhaseFlowWithPrhoProcess::assembleWithJacobianConcreteProcess(
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
         _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
-        process_id, &M, &K, &b, &Jac);
+        process_id, &b, &Jac);
 }
 
 }  // namespace TwoPhaseFlowWithPrho
diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.h b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.h
index 14b0b8d8f70..111a0f5c8a7 100644
--- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.h
+++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.h
@@ -65,8 +65,7 @@ private:
     void assembleWithJacobianConcreteProcess(
         const double t, double const dt, std::vector<GlobalVector*> const& x,
         std::vector<GlobalVector*> const& x_prev, int const process_id,
-        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b,
-        GlobalMatrix& Jac) override;
+        GlobalVector& b, GlobalMatrix& Jac) override;
 
     TwoPhaseFlowWithPrhoProcessData _process_data;
 
-- 
GitLab