diff --git a/ProcessLib/AssemblyMixin.cpp b/ProcessLib/AssemblyMixin.cpp
index 0cb49b8b2c10cded8d4df6c533921543b370181b..2b955a2364459b3e3e100eacb14fdb2a77d4232d 100644
--- a/ProcessLib/AssemblyMixin.cpp
+++ b/ProcessLib/AssemblyMixin.cpp
@@ -14,6 +14,7 @@
 
 #include "MeshLib/Utils/getOrCreateMeshProperty.h"
 #include "NumLib/DOF/DOFTableUtil.h"
+#include "Process.h"
 
 namespace
 {
@@ -88,19 +89,18 @@ void AssemblyMixinBase::initializeAssemblyOnSubmeshes(
         createResiduumVectors(bulk_mesh, residuum_names, pvs);
 }
 
-void AssemblyMixinBase::updateActiveElements(
-    ProcessLib::ProcessVariable const& pv)
+void AssemblyMixinBase::updateActiveElements(Process const& process)
 {
-    DBUG("AssemblyMixinBase updateActiveElements().");
+    DBUG("AssemblyMixin updateActiveElements().");
 
     if (ids_state_ == ActiveElementIDsState::UNINITIALIZED)
     {
-        updateActiveElementsImpl(pv);
+        updateActiveElementsImpl(process);
         return;
     }
 
     ActiveElementIDsState const new_state =
-        pv.getActiveElementIDs().empty()
+        process.getActiveElementIDs().empty()
             ? ActiveElementIDsState::NO_DEACTIVATED_SUBDOMAINS
             : ActiveElementIDsState::HAS_DEACTIVATED_SUBDOMAINS;
 
@@ -117,15 +117,14 @@ void AssemblyMixinBase::updateActiveElements(
     // * no -> yes - now there are deactivated subdomains
     // * yes -> no - no deactivated subdomains anymore
     // * yes -> yes - deactivated subdomains might have changed
-    updateActiveElementsImpl(pv);
+    updateActiveElementsImpl(process);
 }
 
-void AssemblyMixinBase::updateActiveElementsImpl(
-    ProcessLib::ProcessVariable const& pv)
+void AssemblyMixinBase::updateActiveElementsImpl(Process const& process)
 {
     DBUG("AssemblyMixinBase updateActiveElementsImpl().");
 
-    auto const& active_element_ids = pv.getActiveElementIDs();
+    auto const& active_element_ids = process.getActiveElementIDs();
 
     ActiveElementIDsState const new_state =
         active_element_ids.empty()
diff --git a/ProcessLib/AssemblyMixin.h b/ProcessLib/AssemblyMixin.h
index 58dab3d248842152aafb640f13edcca09b1c4116..2d00a31f7dfc7c710736f0f8530b6ffb17288a9a 100644
--- a/ProcessLib/AssemblyMixin.h
+++ b/ProcessLib/AssemblyMixin.h
@@ -56,7 +56,7 @@ protected:
         std::vector<std::string> const& residuum_names,
         std::vector<std::reference_wrapper<ProcessVariable>> const& pvs);
 
-    void updateActiveElements(ProcessLib::ProcessVariable const& pv);
+    void updateActiveElements(ProcessLib::Process const& process);
 
     static void copyResiduumVectorsToBulkMesh(
         GlobalVector const& rhs,
@@ -70,7 +70,7 @@ protected:
         SubmeshAssemblyData const& sad);
 
 private:
-    void updateActiveElementsImpl(ProcessLib::ProcessVariable const& pv);
+    void updateActiveElementsImpl(Process const& process);
 
 protected:
     std::vector<SubmeshAssemblyData> submesh_assembly_data_;
@@ -131,14 +131,9 @@ public:
             derived().getProcessVariables(process_id));
     }
 
-    void updateActiveElements(const int process_id)
+    void updateActiveElements()
     {
-        // convention: process variable 0 governs where assembly takes place
-        // (active element IDs)
-        ProcessLib::ProcessVariable const& pv =
-            derived().getProcessVariables(process_id)[0];
-
-        AssemblyMixinBase::updateActiveElements(pv);
+        AssemblyMixinBase::updateActiveElements(derived());
     }
 
     // cppcheck-suppress functionStatic
diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp
index cd7653836cc85b4bc9066512199a979b0e49afbc..f2fab9455ffcfe2590e92a3c0b102abfb2bdd5b9 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp
+++ b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp
@@ -244,8 +244,6 @@ void ComponentTransportProcess::assembleConcreteProcess(
 {
     DBUG("Assemble ComponentTransportProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_tables;
     if (_use_monolithic_scheme)
     {
@@ -260,7 +258,7 @@ void ComponentTransportProcess::assembleConcreteProcess(
 
     _asm_mat_cache.assemble(t, dt, x, x_prev, process_id, M, K, b, dof_tables,
                             _global_assembler, _local_assemblers,
-                            pv.getActiveElementIDs());
+                            getActiveElementIDs());
 
     // TODO (naumov) What about temperature? A test with FCT would reveal any
     // problems.
@@ -289,8 +287,6 @@ void ComponentTransportProcess::assembleWithJacobianConcreteProcess(
             "implemented only for staggered scheme.");
     }
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_tables;
 
     std::generate_n(std::back_inserter(dof_tables), _process_variables.size(),
@@ -299,8 +295,8 @@ void ComponentTransportProcess::assembleWithJacobianConcreteProcess(
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 
     // b is the negated residumm used in the Newton's method.
     // Here negating b is to recover the primitive residuum.
@@ -393,11 +389,10 @@ void ComponentTransportProcess::solveReactionEquation(
     K.setZero();
     b.setZero();
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &ComponentTransportLocalAssemblerInterface::assembleReactionEquation,
-        _local_assemblers, pv.getActiveElementIDs(), dof_tables, x, t, dt, M, K,
-        b, process_id);
+        _local_assemblers, getActiveElementIDs(), dof_tables, x, t, dt, M, K, b,
+        process_id);
 
     // todo (renchao): incorporate Neumann boundary condition
     MathLib::finalizeMatrixAssembly(M);
@@ -457,11 +452,10 @@ void ComponentTransportProcess::computeSecondaryVariableConcrete(
     std::generate_n(std::back_inserter(dof_tables), x.size(),
                     [&]() { return _local_to_global_index_map.get(); });
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &ComponentTransportLocalAssemblerInterface::computeSecondaryVariable,
-        _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x,
-        x_prev, process_id);
+        _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
+        process_id);
 
     if (!_chemical_solver_interface)
     {
@@ -491,18 +485,17 @@ void ComponentTransportProcess::postTimestepConcreteProcess(
     std::generate_n(std::back_inserter(dof_tables), x.size(),
                     [&]() { return _local_to_global_index_map.get(); });
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &ComponentTransportLocalAssemblerInterface::postTimestep,
-        _local_assemblers, pv.getActiveElementIDs(), dof_tables, x, x_prev, t,
-        dt, process_id);
+        _local_assemblers, getActiveElementIDs(), dof_tables, x, x_prev, t, dt,
+        process_id);
 
     if (!_surfaceflux)  // computing the surfaceflux is optional
     {
         return;
     }
     _surfaceflux->integrate(x, t, *this, process_id, _integration_order, _mesh,
-                            pv.getActiveElementIDs());
+                            getActiveElementIDs());
 }
 
 void ComponentTransportProcess::preOutputConcreteProcess(
diff --git a/ProcessLib/HT/HTProcess.cpp b/ProcessLib/HT/HTProcess.cpp
index 54029f5721042b9ef074d5ba6ff9123004a1fd20..e470cfc5e755d7b8b42cd2fff5b37a42ef21e7dc 100644
--- a/ProcessLib/HT/HTProcess.cpp
+++ b/ProcessLib/HT/HTProcess.cpp
@@ -102,12 +102,11 @@ void HTProcess::assembleConcreteProcess(
         dof_tables.emplace_back(_local_to_global_index_map.get());
     }
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, t, dt, x, x_prev, process_id, M,
-        K, b);
+        getActiveElementIDs(), dof_tables, t, dt, x, x_prev, process_id, M, K,
+        b);
 }
 
 void HTProcess::assembleWithJacobianConcreteProcess(
@@ -129,11 +128,10 @@ void HTProcess::assembleWithJacobianConcreteProcess(
     }
 
     // Call global assembler for each local assembly item.
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 }
 
 std::tuple<NumLib::LocalToGlobalIndexMap*, bool>
@@ -203,10 +201,8 @@ void HTProcess::postTimestepConcreteProcess(
         return;
     }
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     _surfaceflux->integrate(x, t, *this, process_id, _integration_order, _mesh,
-                            pv.getActiveElementIDs());
+                            getActiveElementIDs());
 }
 }  // namespace HT
 }  // namespace ProcessLib
diff --git a/ProcessLib/HeatConduction/HeatConductionProcess.cpp b/ProcessLib/HeatConduction/HeatConductionProcess.cpp
index bdb0cbdbccbe522c845d7b7fd1b143f0d88b045b..15af7514aedb199988100c2bd37763e4da1bff0f 100644
--- a/ProcessLib/HeatConduction/HeatConductionProcess.cpp
+++ b/ProcessLib/HeatConduction/HeatConductionProcess.cpp
@@ -100,14 +100,12 @@ void HeatConductionProcess::assembleConcreteProcess(
 {
     DBUG("Assemble HeatConductionProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
 
     _asm_mat_cache.assemble(t, dt, x, x_prev, process_id, M, K, b, dof_table,
                             _global_assembler, _local_assemblers,
-                            pv.getActiveElementIDs());
+                            getActiveElementIDs());
 }
 
 void HeatConductionProcess::assembleWithJacobianConcreteProcess(
@@ -117,15 +115,13 @@ void HeatConductionProcess::assembleWithJacobianConcreteProcess(
 {
     DBUG("AssembleWithJacobian HeatConductionProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 
     transformVariableFromGlobalVector(b, 0 /*variable id*/,
                                       *_local_to_global_index_map, *_heat_flux,
@@ -143,11 +139,10 @@ void HeatConductionProcess::computeSecondaryVariableConcrete(
     std::generate_n(std::back_inserter(dof_tables), x.size(),
                     [&]() { return _local_to_global_index_map.get(); });
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &HeatConductionLocalAssemblerInterface::computeSecondaryVariable,
-        _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x,
-        x_prev, process_id);
+        _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
+        process_id);
 }
 
 void HeatConductionProcess::preOutputConcreteProcess(
diff --git a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp
index 325501dc69bb9b8e0a76e919ea80a4bf26b3d951..4e50103fd3ea287fea36fbaf0133a0b7f9c5b21b 100644
--- a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp
+++ b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp
@@ -165,14 +165,12 @@ void HeatTransportBHEProcess::assembleConcreteProcess(
 {
     DBUG("Assemble HeatTransportBHE process.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 }
 
@@ -185,13 +183,12 @@ void HeatTransportBHEProcess::assembleWithJacobianConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 }
 
 void HeatTransportBHEProcess::computeSecondaryVariableConcrete(
@@ -205,11 +202,10 @@ void HeatTransportBHEProcess::computeSecondaryVariableConcrete(
     std::generate_n(std::back_inserter(dof_tables), x.size(),
                     [&]() { return _local_to_global_index_map.get(); });
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &HeatTransportBHELocalAssemblerInterface::computeSecondaryVariable,
-        _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x,
-        x_prev, process_id);
+        _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
+        process_id);
 }
 
 NumLib::IterationResult HeatTransportBHEProcess::postIterationConcreteProcess(
diff --git a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp
index bce658625979756abe4a0fcb40114f5a67185654..adb2a18737459bb89f84d132c639e0f22f2ea45d 100644
--- a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp
+++ b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp
@@ -379,12 +379,10 @@ void HydroMechanicsProcess<GlobalDim>::postTimestepConcreteProcess(
     {
         DBUG("PostTimestep HydroMechanicsProcess.");
 
-        ProcessLib::ProcessVariable const& pv =
-            getProcessVariables(process_id)[0];
         GlobalExecutor::executeSelectedMemberOnDereferenced(
             &HydroMechanicsLocalAssemblerInterface::postTimestep,
-            _local_assemblers, pv.getActiveElementIDs(), getDOFTables(x.size()),
-            x, x_prev, t, dt, process_id);
+            _local_assemblers, getActiveElementIDs(), getDOFTables(x.size()), x,
+            x_prev, t, dt, process_id);
     }
 
     DBUG("Compute the secondary variables for HydroMechanicsProcess.");
@@ -467,15 +465,13 @@ void HydroMechanicsProcess<GlobalDim>::assembleWithJacobianConcreteProcess(
 {
     DBUG("AssembleWithJacobian HydroMechanicsProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     // Call global assembler for each local assembly item.
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 
     auto copyRhs = [&](int const variable_id, auto& output_vector)
     {
@@ -495,12 +491,10 @@ void HydroMechanicsProcess<GlobalDim>::preTimestepConcreteProcess(
 {
     DBUG("PreTimestep HydroMechanicsProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &HydroMechanicsLocalAssemblerInterface::preTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), *_local_to_global_index_map, *x[process_id],
-        t, dt);
+        getActiveElementIDs(), *_local_to_global_index_map, *x[process_id], t,
+        dt);
 }
 
 // ------------------------------------------------------------------------------------
diff --git a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp
index e4f33b22df61a0879301c4901be14dd40ac47a13..b5284774aa1d341eb5e507779d1c1f8c03e75530 100644
--- a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp
+++ b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp
@@ -396,11 +396,10 @@ void SmallDeformationProcess<DisplacementDim>::computeSecondaryVariableConcrete(
     std::generate_n(std::back_inserter(dof_tables), x.size(),
                     [&]() { return _local_to_global_index_map.get(); });
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &SmallDeformationLocalAssemblerInterface::computeSecondaryVariable,
-        _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x,
-        x_prev, process_id);
+        _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
+        process_id);
 }
 
 template <int DisplacementDim>
@@ -417,14 +416,12 @@ void SmallDeformationProcess<DisplacementDim>::assembleConcreteProcess(
 {
     DBUG("Assemble SmallDeformationProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 }
 template <int DisplacementDim>
@@ -436,15 +433,13 @@ void SmallDeformationProcess<DisplacementDim>::
 {
     DBUG("AssembleWithJacobian SmallDeformationProcess.");
 
-    // Call global assembler for each local assembly item.
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
+    // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 }
 template <int DisplacementDim>
 void SmallDeformationProcess<DisplacementDim>::preTimestepConcreteProcess(
@@ -453,11 +448,10 @@ void SmallDeformationProcess<DisplacementDim>::preTimestepConcreteProcess(
 {
     DBUG("PreTimestep SmallDeformationProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &SmallDeformationLocalAssemblerInterface::preTimestep,
-        _local_assemblers, pv.getActiveElementIDs(),
-        *_local_to_global_index_map, *x[process_id], t, dt);
+        _local_assemblers, getActiveElementIDs(), *_local_to_global_index_map,
+        *x[process_id], t, dt);
 }
 // ------------------------------------------------------------------------------------
 // template instantiation
diff --git a/ProcessLib/LargeDeformation/LargeDeformationProcess.cpp b/ProcessLib/LargeDeformation/LargeDeformationProcess.cpp
index 724f100c1ce69c80879648152d56cd458516b711..27757556bc624a456b216a7ac23d50aa540500e8 100644
--- a/ProcessLib/LargeDeformation/LargeDeformationProcess.cpp
+++ b/ProcessLib/LargeDeformation/LargeDeformationProcess.cpp
@@ -137,14 +137,12 @@ void LargeDeformationProcess<DisplacementDim>::assembleConcreteProcess(
 {
     DBUG("Assemble LargeDeformationProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 
     _global_output(t, process_id, M, K, b);
@@ -159,15 +157,13 @@ void LargeDeformationProcess<DisplacementDim>::
 {
     DBUG("AssembleWithJacobian LargeDeformationProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 
     transformVariableFromGlobalVector(b, 0, *_local_to_global_index_map,
                                       *_nodal_forces, std::negate<double>());
@@ -187,10 +183,9 @@ void LargeDeformationProcess<DisplacementDim>::postTimestepConcreteProcess(
     std::generate_n(std::back_inserter(dof_tables), x.size(),
                     [&]() { return _local_to_global_index_map.get(); });
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::postTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, x, x_prev, t, dt, process_id);
+        getActiveElementIDs(), dof_tables, x, x_prev, t, dt, process_id);
 }
 
 template <int DisplacementDim>
@@ -204,10 +199,9 @@ void LargeDeformationProcess<DisplacementDim>::computeSecondaryVariableConcrete(
     std::generate_n(std::back_inserter(dof_tables), x.size(),
                     [&]() { return _local_to_global_index_map.get(); });
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::computeSecondaryVariable, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, t, dt, x, x_prev, process_id);
+        getActiveElementIDs(), dof_tables, t, dt, x, x_prev, process_id);
 
     computeCellAverages<DisplacementDim>(cell_average_data_, _local_assemblers);
 }
diff --git a/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp b/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp
index 12b16cc8f0c80a0204f235e6a0d18cbe66259048..220050a8cd7fce40f42519436117a3e11e2de21c 100644
--- a/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp
+++ b/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp
@@ -78,12 +78,10 @@ void LiquidFlowProcess::assembleConcreteProcess(
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 
     MathLib::finalizeMatrixAssembly(M);
@@ -105,13 +103,12 @@ void LiquidFlowProcess::assembleWithJacobianConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 }
 
 void LiquidFlowProcess::computeSecondaryVariableConcrete(
@@ -124,11 +121,10 @@ void LiquidFlowProcess::computeSecondaryVariableConcrete(
     std::generate_n(std::back_inserter(dof_tables), x.size(),
                     [&]() { return _local_to_global_index_map.get(); });
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LiquidFlowLocalAssemblerInterface::computeSecondaryVariable,
-        _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x,
-        x_prev, process_id);
+        _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
+        process_id);
 }
 
 Eigen::Vector3d LiquidFlowProcess::getFlux(
@@ -160,9 +156,8 @@ void LiquidFlowProcess::postTimestepConcreteProcess(
         return;
     }
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     _surfaceflux->integrate(x, t, *this, process_id, _integration_order, _mesh,
-                            pv.getActiveElementIDs());
+                            getActiveElementIDs());
 }
 
 }  // namespace LiquidFlow
diff --git a/ProcessLib/PhaseField/PhaseFieldProcess.cpp b/ProcessLib/PhaseField/PhaseFieldProcess.cpp
index e70342ecb2ea2830abf2107d2d4bcf9d86e5dd36..e4b3c29d583b4f15b5ab475d70896e5d80fee876 100644
--- a/ProcessLib/PhaseField/PhaseFieldProcess.cpp
+++ b/ProcessLib/PhaseField/PhaseFieldProcess.cpp
@@ -207,13 +207,11 @@ void PhaseFieldProcess<DisplacementDim>::assembleConcreteProcess(
     dof_tables.emplace_back(_local_to_global_index_map_single_component.get());
     dof_tables.emplace_back(_local_to_global_index_map.get());
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, t, dt, x, x_prev, process_id, M,
-        K, b);
+        getActiveElementIDs(), dof_tables, t, dt, x, x_prev, process_id, M, K,
+        b);
 }
 
 template <int DisplacementDim>
@@ -240,13 +238,11 @@ void PhaseFieldProcess<DisplacementDim>::assembleWithJacobianConcreteProcess(
     dof_tables.emplace_back(_local_to_global_index_map.get());
     dof_tables.emplace_back(_local_to_global_index_map_single_component.get());
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 
     if (process_id == 0)
     {
@@ -268,12 +264,9 @@ void PhaseFieldProcess<DisplacementDim>::preTimestepConcreteProcess(
     _x_previous_timestep =
         MathLib::MatrixVectorTraits<GlobalVector>::newInstance(*x[process_id]);
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::preTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), getDOFTable(process_id), *x[process_id], t,
-        dt);
+        getActiveElementIDs(), getDOFTable(process_id), *x[process_id], t, dt);
 }
 
 template <int DisplacementDim>
@@ -296,12 +289,9 @@ void PhaseFieldProcess<DisplacementDim>::postTimestepConcreteProcess(
         dof_tables.emplace_back(
             _local_to_global_index_map_single_component.get());
 
-        ProcessLib::ProcessVariable const& pv =
-            getProcessVariables(process_id)[0];
-
         GlobalExecutor::executeSelectedMemberOnDereferenced(
             &LocalAssemblerInterface::computeEnergy, _local_assemblers,
-            pv.getActiveElementIDs(), dof_tables, x, t,
+            getActiveElementIDs(), dof_tables, x, t,
             _process_data.elastic_energy, _process_data.surface_energy,
             _process_data.pressure_work);
 
@@ -355,10 +345,9 @@ void PhaseFieldProcess<DisplacementDim>::postNonLinearSolverConcreteProcess(
 
     DBUG("PostNonLinearSolver crack volume computation.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::computeCrackIntegral, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, x, t, _process_data.crack_volume);
+        getActiveElementIDs(), dof_tables, x, t, _process_data.crack_volume);
 
 #ifdef USE_PETSC
     double const crack_volume = _process_data.crack_volume;
diff --git a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp
index 8acc88db4da595cd42b3af246c5857fb7dea0f31..34dc2483a02f3ab8f57cd2bb870eeb300c9e7318 100644
--- a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp
+++ b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp
@@ -73,12 +73,11 @@ void RichardsComponentTransportProcess::assembleConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 }
 
@@ -91,13 +90,12 @@ void RichardsComponentTransportProcess::assembleWithJacobianConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 }
 
 }  // namespace RichardsComponentTransport
diff --git a/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp b/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp
index 5d3b501830c1c458e33e80492c37dfa83cd48f63..01d28ff16c3d83c43c6a6a9194b9d98011fd6729 100644
--- a/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp
+++ b/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp
@@ -67,12 +67,11 @@ void RichardsFlowProcess::assembleConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 }
 
@@ -85,13 +84,12 @@ void RichardsFlowProcess::assembleWithJacobianConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 }
 
 }  // namespace RichardsFlow
diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp
index 5693ddd663b3970552d77fa40b22e6d9c7319098..ff36291ec52ea932d86ffe883b2a28fc29fc897c 100644
--- a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp
+++ b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp
@@ -326,11 +326,9 @@ void RichardsMechanicsProcess<DisplacementDim>::
 
     DBUG("SetInitialConditions RichardsMechanicsProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerIF::setInitialConditions, _local_assemblers,
-        pv.getActiveElementIDs(), getDOFTables(x.size()), x, t, process_id);
+        getActiveElementIDs(), getDOFTables(x.size()), x, t, process_id);
 }
 
 template <int DisplacementDim>
@@ -343,12 +341,11 @@ void RichardsMechanicsProcess<DisplacementDim>::assembleConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 }
 
@@ -383,13 +380,11 @@ void RichardsMechanicsProcess<DisplacementDim>::
         }
     }
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     auto const dof_tables = getDOFTables(x.size());
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 
     auto copyRhs = [&](int const variable_id, auto& output_vector)
     {
@@ -426,11 +421,9 @@ void RichardsMechanicsProcess<DisplacementDim>::postTimestepConcreteProcess(
     {
         DBUG("PostTimestep RichardsMechanicsProcess.");
 
-        ProcessLib::ProcessVariable const& pv =
-            getProcessVariables(process_id)[0];
         GlobalExecutor::executeSelectedMemberOnDereferenced(
             &LocalAssemblerIF::postTimestep, _local_assemblers,
-            pv.getActiveElementIDs(), getDOFTables(x.size()), x, x_prev, t, dt,
+            getActiveElementIDs(), getDOFTables(x.size()), x, x_prev, t, dt,
             process_id);
     }
 }
@@ -449,10 +442,9 @@ void RichardsMechanicsProcess<DisplacementDim>::
 
     DBUG("Compute the secondary variables for RichardsMechanicsProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerIF::computeSecondaryVariable, _local_assemblers,
-        pv.getActiveElementIDs(), getDOFTables(x.size()), t, dt, x, x_prev,
+        getActiveElementIDs(), getDOFTables(x.size()), t, dt, x, x_prev,
         process_id);
 }
 
diff --git a/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp b/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp
index d414735825172d99ef31c13481107b0e92b983af..fbeff5e241bf14f16efeb2ae5b35c4475aed6e5f 100644
--- a/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp
+++ b/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp
@@ -139,14 +139,12 @@ void SmallDeformationProcess<DisplacementDim>::assembleConcreteProcess(
 {
     DBUG("Assemble SmallDeformationProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 
     _global_output(t, process_id, M, K, b);
@@ -161,15 +159,13 @@ void SmallDeformationProcess<DisplacementDim>::
 {
     DBUG("AssembleWithJacobian SmallDeformationProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 
     transformVariableFromGlobalVector(b, 0, *_local_to_global_index_map,
                                       *_nodal_forces, std::negate<double>());
@@ -189,10 +185,9 @@ void SmallDeformationProcess<DisplacementDim>::postTimestepConcreteProcess(
     std::generate_n(std::back_inserter(dof_tables), x.size(),
                     [&]() { return _local_to_global_index_map.get(); });
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::postTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, x, x_prev, t, dt, process_id);
+        getActiveElementIDs(), dof_tables, x, x_prev, t, dt, process_id);
 
     std::unique_ptr<GlobalVector> material_forces;
     ProcessLib::SmallDeformation::writeMaterialForces(
@@ -213,10 +208,9 @@ void SmallDeformationProcess<DisplacementDim>::computeSecondaryVariableConcrete(
     std::generate_n(std::back_inserter(dof_tables), x.size(),
                     [&]() { return _local_to_global_index_map.get(); });
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::computeSecondaryVariable, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, t, dt, x, x_prev, process_id);
+        getActiveElementIDs(), dof_tables, t, dt, x, x_prev, process_id);
 
     computeCellAverages<DisplacementDim>(cell_average_data_, _local_assemblers);
 }
diff --git a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp
index 3509dfa03f65a9c06de0af107371a5035f149769..36aacd014d2a458d12d9abc24dfacbf16d2a280a 100644
--- a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp
+++ b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp
@@ -186,12 +186,10 @@ void SmallDeformationNonlocalProcess<DisplacementDim>::assembleConcreteProcess(
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 }
 
@@ -203,14 +201,11 @@ void SmallDeformationNonlocalProcess<
 {
     DBUG("preAssemble SmallDeformationNonlocalProcess.");
 
-    const int process_id = 0;
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::preAssemble,
-        _local_assemblers, pv.getActiveElementIDs(),
-        *_local_to_global_index_map, t, dt, x);
+        _local_assemblers, getActiveElementIDs(), *_local_to_global_index_map,
+        t, dt, x);
 }
 
 template <int DisplacementDim>
@@ -225,13 +220,11 @@ void SmallDeformationNonlocalProcess<DisplacementDim>::
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 
     b.copyValues(*_nodal_forces);
     std::transform(_nodal_forces->begin(), _nodal_forces->end(),
@@ -252,10 +245,9 @@ void SmallDeformationNonlocalProcess<DisplacementDim>::
     std::generate_n(std::back_inserter(dof_tables), x.size(),
                     [&]() { return _local_to_global_index_map.get(); });
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::postTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, x, x_prev, t, dt, process_id);
+        getActiveElementIDs(), dof_tables, x, x_prev, t, dt, process_id);
 }
 
 template <int DisplacementDim>
@@ -268,12 +260,9 @@ SmallDeformationNonlocalProcess<DisplacementDim>::postIterationConcreteProcess(
 
     DBUG("PostNonLinearSolver crack volume computation.");
 
-    const int process_id = 0;
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::computeCrackIntegral, _local_assemblers,
-        pv.getActiveElementIDs(), *_local_to_global_index_map, x,
+        getActiveElementIDs(), *_local_to_global_index_map, x,
         _process_data.crack_volume);
 
     INFO("Integral of crack: {:g}", _process_data.crack_volume);
diff --git a/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.cpp b/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.cpp
index 4ff7314f06ed639a75520184c59bce11f22d437d..9c9071f5ff085616cf0c2a1d911d5068af3a813e 100644
--- a/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.cpp
+++ b/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.cpp
@@ -62,13 +62,12 @@ void SteadyStateDiffusion::assembleConcreteProcess(
 {
     DBUG("Assemble SteadyStateDiffusion.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 }
 
@@ -79,14 +78,13 @@ void SteadyStateDiffusion::assembleWithJacobianConcreteProcess(
 {
     DBUG("AssembleWithJacobian SteadyStateDiffusion.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 }
 
 }  // namespace SteadyStateDiffusion
diff --git a/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.h b/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.h
index 2deabc5d2499c23197658329cdd55f4e38336256..a1ee63186f7b31992ef338adf60a583cf89a30bf 100644
--- a/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.h
+++ b/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.h
@@ -77,11 +77,8 @@ public:
             return;
         }
 
-        ProcessLib::ProcessVariable const& pv =
-            getProcessVariables(process_id)[0];
-
         _surfaceflux->integrate(x, t, *this, process_id, _integration_order,
-                                _mesh, pv.getActiveElementIDs());
+                                _mesh, getActiveElementIDs());
     }
 
 private:
diff --git a/ProcessLib/StokesFlow/StokesFlowProcess.cpp b/ProcessLib/StokesFlow/StokesFlowProcess.cpp
index 1a9c0f69683554e883c016fb4c51a9c19069c9b6..488a9719716cf26afe701883db8524a7df8e6b12 100644
--- a/ProcessLib/StokesFlow/StokesFlowProcess.cpp
+++ b/ProcessLib/StokesFlow/StokesFlowProcess.cpp
@@ -140,12 +140,11 @@ void StokesFlowProcess<GlobalDim>::assembleConcreteProcess(
         dof_tables.push_back(_local_to_global_index_map.get());
     }
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, t, dt, x, x_prev, process_id, M,
-        K, b);
+        getActiveElementIDs(), dof_tables, t, dt, x, x_prev, process_id, M, K,
+        b);
 }
 
 template <int GlobalDim>
@@ -181,11 +180,10 @@ void StokesFlowProcess<GlobalDim>::computeSecondaryVariableConcrete(
         dof_tables.push_back(_local_to_global_index_map.get());
     }
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &StokesFlowLocalAssemblerInterface::computeSecondaryVariable,
-        _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x,
-        x_prev, process_id);
+        _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
+        process_id);
 }
 
 template <int GlobalDim>
@@ -208,10 +206,9 @@ void StokesFlowProcess<GlobalDim>::postTimestepConcreteProcess(
         dof_tables.push_back(_local_to_global_index_map.get());
     }
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &StokesFlowLocalAssemblerInterface::postTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, x, x_prev, t, dt, process_id);
+        getActiveElementIDs(), dof_tables, x, x_prev, t, dt, process_id);
 }
 
 template <int GlobalDim>
diff --git a/ProcessLib/TES/TESProcess.cpp b/ProcessLib/TES/TESProcess.cpp
index d39e8b2c34b61a1b42077790bddc9deb54985bf3..00b1ab5dc8794091f41c4e5b2e78c84ca4d24507 100644
--- a/ProcessLib/TES/TESProcess.cpp
+++ b/ProcessLib/TES/TESProcess.cpp
@@ -212,12 +212,11 @@ void TESProcess::assembleConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 }
 
@@ -228,13 +227,12 @@ void TESProcess::assembleWithJacobianConcreteProcess(
 {
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 }
 
 void TESProcess::preTimestepConcreteProcess(std::vector<GlobalVector*> const& x,
diff --git a/ProcessLib/TH2M/TH2MProcess.cpp b/ProcessLib/TH2M/TH2MProcess.cpp
index 376369b107e41a2beb98a765fb25e77da72b1648..3162a1876a4a49b6cb207d3697d1ba905f1fdad5 100644
--- a/ProcessLib/TH2M/TH2MProcess.cpp
+++ b/ProcessLib/TH2M/TH2MProcess.cpp
@@ -272,17 +272,13 @@ void TH2MProcess<DisplacementDim>::preTimestepConcreteProcess(
 
     if (hasMechanicalProcess(process_id))
     {
-        ProcessLib::ProcessVariable const& pv =
-            getProcessVariables(process_id)[0];
-
         GlobalExecutor::executeSelectedMemberOnDereferenced(
             &LocalAssemblerInterface<DisplacementDim>::preTimestep,
-            local_assemblers_, pv.getActiveElementIDs(),
+            local_assemblers_, getActiveElementIDs(),
             *_local_to_global_index_map, *x[process_id], t, dt);
     }
 
-    AssemblyMixin<TH2MProcess<DisplacementDim>>::updateActiveElements(
-        process_id);
+    AssemblyMixin<TH2MProcess<DisplacementDim>>::updateActiveElements();
 }
 
 template <int DisplacementDim>
@@ -293,10 +289,9 @@ void TH2MProcess<DisplacementDim>::postTimestepConcreteProcess(
 {
     DBUG("PostTimestep TH2MProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface<DisplacementDim>::postTimestep,
-        local_assemblers_, pv.getActiveElementIDs(), getDOFTables(x.size()), x,
+        local_assemblers_, getActiveElementIDs(), getDOFTables(x.size()), x,
         x_prev, t, dt, process_id);
 }
 
@@ -312,11 +307,10 @@ void TH2MProcess<DisplacementDim>::computeSecondaryVariableConcrete(
 
     DBUG("Compute the secondary variables for TH2MProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface<DisplacementDim>::computeSecondaryVariable,
-        local_assemblers_, pv.getActiveElementIDs(), getDOFTables(x.size()), t,
-        dt, x, x_prev, process_id);
+        local_assemblers_, getActiveElementIDs(), getDOFTables(x.size()), t, dt,
+        x, x_prev, process_id);
 
     computeCellAverages<DisplacementDim>(cell_average_data_, local_assemblers_);
 }
diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp
index 7b405f569031324621916c24224b57b8180c31df..8716c977ec5222f0313710fd1eace2c87075be45 100644
--- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp
+++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp
@@ -89,12 +89,11 @@ void ThermalTwoPhaseFlowWithPPProcess::assembleConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 
     _global_output(t, process_id, M, K, b);
@@ -109,13 +108,12 @@ void ThermalTwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 
     _global_output(t, process_id, M, K, b, &Jac);
 }
@@ -126,11 +124,10 @@ void ThermalTwoPhaseFlowWithPPProcess::preTimestepConcreteProcess(
 {
     DBUG("PreTimestep ThermalTwoPhaseFlowWithPPProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::preTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), *_local_to_global_index_map, *x[process_id],
-        t, delta_t);
+        getActiveElementIDs(), *_local_to_global_index_map, *x[process_id], t,
+        delta_t);
 }
 
 }  // namespace ThermalTwoPhaseFlowWithPP
diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp
index fb75c653e16596af35e005e3162f11402cb02fd0..7087f1570aadb77226de862d2f6890b63c233a15 100644
--- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp
+++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp
@@ -344,11 +344,9 @@ void ThermoHydroMechanicsProcess<DisplacementDim>::assembleConcreteProcess(
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 }
 
@@ -389,14 +387,12 @@ void ThermoHydroMechanicsProcess<DisplacementDim>::
         }
     }
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     auto const dof_tables = getDOFTables(x.size());
 
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 
     auto copyRhs = [&](int const variable_id, auto& output_vector)
     {
@@ -456,10 +452,9 @@ void ThermoHydroMechanicsProcess<DisplacementDim>::postTimestepConcreteProcess(
 
     DBUG("PostTimestep ThermoHydroMechanicsProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface<DisplacementDim>::postTimestep,
-        _local_assemblers, pv.getActiveElementIDs(), getDOFTables(x.size()), x,
+        _local_assemblers, getActiveElementIDs(), getDOFTables(x.size()), x,
         x_prev, t, dt, process_id);
 }
 
@@ -477,11 +472,10 @@ void ThermoHydroMechanicsProcess<DisplacementDim>::
 
     DBUG("Compute the secondary variables for ThermoHydroMechanicsProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface<DisplacementDim>::computeSecondaryVariable,
-        _local_assemblers, pv.getActiveElementIDs(), getDOFTables(x.size()), t,
-        dt, x, x_prev, process_id);
+        _local_assemblers, getActiveElementIDs(), getDOFTables(x.size()), t, dt,
+        x, x_prev, process_id);
 }
 
 template <int DisplacementDim>
diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp
index 2000e1411f7887cf42148aec11f4fb712a8aaabd..3d3830ff1524110e95c4bd83e0f6eaef98ef06c3 100644
--- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp
+++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp
@@ -200,12 +200,11 @@ void ThermoMechanicalPhaseFieldProcess<DisplacementDim>::
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 }
 
@@ -245,12 +244,10 @@ void ThermoMechanicalPhaseFieldProcess<DisplacementDim>::
         &getDOFTableByProcessID(_mechanics_related_process_id));
     dof_tables.emplace_back(&getDOFTableByProcessID(_phase_field_process_id));
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 }
 
 template <int DisplacementDim>
@@ -267,11 +264,9 @@ void ThermoMechanicalPhaseFieldProcess<DisplacementDim>::
         return;
     }
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &ThermoMechanicalPhaseFieldLocalAssemblerInterface::preTimestep,
-        _local_assemblers, pv.getActiveElementIDs(), getDOFTable(process_id),
+        _local_assemblers, getActiveElementIDs(), getDOFTable(process_id),
         *x[process_id], t, dt);
 }
 
@@ -290,10 +285,9 @@ void ThermoMechanicalPhaseFieldProcess<DisplacementDim>::
 
     DBUG("PostTimestep ThermoMechanicalPhaseFieldProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &ThermoMechanicalPhaseFieldLocalAssemblerInterface::postTimestep,
-        _local_assemblers, pv.getActiveElementIDs(), getDOFTables(x.size()), x,
+        _local_assemblers, getActiveElementIDs(), getDOFTables(x.size()), x,
         x_prev, t, dt, process_id);
 }
 
@@ -311,11 +305,10 @@ void ThermoMechanicalPhaseFieldProcess<DisplacementDim>::
 
     DBUG("PostNonLinearSolver ThermoMechanicalPhaseFieldProcess.");
     // Calculate strain, stress or other internal variables of mechanics.
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::postNonLinearSolver, _local_assemblers,
-        pv.getActiveElementIDs(), getDOFTables(x.size()), x, x_prev, t, dt,
+        getActiveElementIDs(), getDOFTables(x.size()), x, x_prev, t, dt,
         process_id);
 }
 
diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp
index 1135cf0305eb0fe3bbf52934fdc915866c167e57..680c2f460fcc853ccd3f376536946d35cea8334e 100644
--- a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp
+++ b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp
@@ -212,12 +212,11 @@ void ThermoMechanicsProcess<DisplacementDim>::assembleConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 }
 
@@ -271,12 +270,10 @@ void ThermoMechanicsProcess<DisplacementDim>::
         }
     }
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 
     // TODO (naumov): Refactor the copy rhs part. This is copy from HM.
     auto copyRhs = [&](int const variable_id, auto& output_vector)
@@ -313,16 +310,14 @@ void ThermoMechanicsProcess<DisplacementDim>::preTimestepConcreteProcess(
 {
     DBUG("PreTimestep ThermoMechanicsProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
     assert(process_id < 2);
 
     if (process_id == _process_data.mechanics_process_id)
     {
         GlobalExecutor::executeSelectedMemberOnDereferenced(
             &LocalAssemblerInterface::preTimestep, _local_assemblers,
-            pv.getActiveElementIDs(), *_local_to_global_index_map,
-            *x[process_id], t, dt);
+            getActiveElementIDs(), *_local_to_global_index_map, *x[process_id],
+            t, dt);
         return;
     }
 }
@@ -347,10 +342,9 @@ void ThermoMechanicsProcess<DisplacementDim>::postTimestepConcreteProcess(
         dof_tables.push_back(&getDOFTable(process_id));
     }
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::postTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), dof_tables, x, x_prev, t, dt, process_id);
+        getActiveElementIDs(), dof_tables, x, x_prev, t, dt, process_id);
 }
 
 template <int DisplacementDim>
diff --git a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp
index 98fd56c6f6058fe5e7b709f51a5cabea2aaac994..665dc126c5abfc0a07124b0cdf5ad75ce8d2bf07 100644
--- a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp
+++ b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp
@@ -133,12 +133,11 @@ void ThermoRichardsFlowProcess::assembleConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 }
 
@@ -154,9 +153,7 @@ void ThermoRichardsFlowProcess::assembleWithJacobianConcreteProcess(
         "scheme.");
     dof_tables.emplace_back(_local_to_global_index_map.get());
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
-
-    _pvma.assembleWithJacobian(_local_assemblers, pv.getActiveElementIDs(),
+    _pvma.assembleWithJacobian(_local_assemblers, getActiveElementIDs(),
                                dof_tables, t, dt, x, x_prev, process_id, M, K,
                                b, Jac);
 
@@ -182,10 +179,9 @@ void ThermoRichardsFlowProcess::postTimestepConcreteProcess(
 
     DBUG("PostTimestep ThermoRichardsFlowProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerIF::postTimestep, _local_assemblers,
-        pv.getActiveElementIDs(), getDOFTables(x.size()), x, x_prev, t, dt,
+        getActiveElementIDs(), getDOFTables(x.size()), x, x_prev, t, dt,
         process_id);
 }
 
@@ -197,15 +193,11 @@ void ThermoRichardsFlowProcess::computeSecondaryVariableConcrete(
     {
         return;
     }
-    DBUG(
-        "Compute the secondary variables for "
-        "ThermoRichardsFlowProcess.");
-
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
+    DBUG("Compute the secondary variables for ThermoRichardsFlowProcess.");
 
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerIF::computeSecondaryVariable, _local_assemblers,
-        pv.getActiveElementIDs(), getDOFTables(x.size()), t, dt, x, x_prev,
+        getActiveElementIDs(), getDOFTables(x.size()), t, dt, x, x_prev,
         process_id);
 }
 
diff --git a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp
index f00e5791de941bd16e1d6370c1e5a51ecca93f6c..3232236c0772e3406aa4ec7be32e91edd94e01f9 100644
--- a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp
+++ b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp
@@ -233,10 +233,10 @@ void ThermoRichardsMechanicsProcess<DisplacementDim, ConstitutiveTraits>::
     preTimestepConcreteProcess(std::vector<GlobalVector*> const& /*x*/,
                                const double /*t*/,
                                const double /*dt*/,
-                               const int process_id)
+                               const int /*process_id*/)
 {
     AssemblyMixin<ThermoRichardsMechanicsProcess<
-        DisplacementDim, ConstitutiveTraits>>::updateActiveElements(process_id);
+        DisplacementDim, ConstitutiveTraits>>::updateActiveElements();
 }
 
 template <int DisplacementDim, typename ConstitutiveTraits>
@@ -266,10 +266,9 @@ void ThermoRichardsMechanicsProcess<DisplacementDim, ConstitutiveTraits>::
 {
     DBUG("PostTimestep ThermoRichardsMechanicsProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerIF::postTimestep, local_assemblers_,
-        pv.getActiveElementIDs(), getDOFTables(x.size()), x, x_prev, t, dt,
+        getActiveElementIDs(), getDOFTables(x.size()), x, x_prev, t, dt,
         process_id);
 }
 
@@ -282,10 +281,9 @@ void ThermoRichardsMechanicsProcess<DisplacementDim, ConstitutiveTraits>::
 {
     DBUG("Compute the secondary variables for ThermoRichardsMechanicsProcess.");
 
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerIF::computeSecondaryVariable, local_assemblers_,
-        pv.getActiveElementIDs(), getDOFTables(x.size()), t, dt, x, x_prev,
+        getActiveElementIDs(), getDOFTables(x.size()), t, dt, x, x_prev,
         process_id);
 
     computeCellAverages<DisplacementDim>(cell_average_data_, local_assemblers_);
diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp
index ae759a7609464eeb5820771251bab273364341eb..29de8ba68418c709bc286cce4d0601b61e017d06 100644
--- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp
+++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp
@@ -67,12 +67,11 @@ void TwoPhaseFlowWithPPProcess::assembleConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 }
 
@@ -85,13 +84,12 @@ void TwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 }
 
 }  // namespace TwoPhaseFlowWithPP
diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp
index 5799df57ebf595cc869d0871206ebec54a312b4c..05944f93e539d6d72394bd8119abde4cdc2373ef 100644
--- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp
+++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp
@@ -67,12 +67,11 @@ void TwoPhaseFlowWithPrhoProcess::assembleConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers,
-        pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
+        getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K,
         b);
 }
 
@@ -85,13 +84,12 @@ void TwoPhaseFlowWithPrhoProcess::assembleWithJacobianConcreteProcess(
 
     std::vector<NumLib::LocalToGlobalIndexMap const*> dof_table = {
         _local_to_global_index_map.get()};
-    ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
 
     // Call global assembler for each local assembly item.
     GlobalExecutor::executeSelectedMemberDereferenced(
         _global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
-        _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x,
-        x_prev, process_id, M, K, b, Jac);
+        _local_assemblers, getActiveElementIDs(), dof_table, t, dt, x, x_prev,
+        process_id, M, K, b, Jac);
 }
 
 }  // namespace TwoPhaseFlowWithPrho
diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/HT_DeactivatedSubdomain.prj b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/HT_DeactivatedSubdomain.prj
index 34648b926e0755897f1fee1680416f9766902aa7..76ba1f1da2ad841bcd3af15908b45642ee465a2d 100644
--- a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/HT_DeactivatedSubdomain.prj
+++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/HT_DeactivatedSubdomain.prj
@@ -197,11 +197,11 @@
                 <time_stepping>
                     <type>FixedTimeStepping</type>
                     <t_initial>0.0</t_initial>
-                    <t_end>10</t_end>
+                    <t_end>1</t_end>
                     <timesteps>
                         <pair>
                             <repeat>1000</repeat>
-                            <delta_t>0.1</delta_t>
+                            <delta_t>0.01</delta_t>
                         </pair>
                     </timesteps>
                 </time_stepping>
@@ -211,16 +211,8 @@
             <type>VTK</type>
             <prefix>Test_HT_DeactivatedSubdomain_{:meshname}</prefix>
             <suffix>_ts_{:timestep}_t_{:time}</suffix>
-            <timesteps>
-                <pair>
-                    <repeat> 1 </repeat>
-                    <each_steps> 40 </each_steps>
-                </pair>
-            </timesteps>
+            <fixed_output_times>0.19 0.29 0.31 0.59 0.69 0.71 1</fixed_output_times>
             <variables>
-                <variable>T</variable>
-                <variable>p</variable>
-                <variable>darcy_velocity</variable>
             </variables>
             <meshes>
                 <mesh>square_1x1_quad_16</mesh>
@@ -233,10 +225,15 @@
             <type>Function</type>
             <expression>0</expression>
         </parameter>
+        <parameter>
+            <name>T1</name>
+            <type>Function</type>
+            <expression>1</expression>
+        </parameter>
         <parameter>
             <name>P0</name>
             <type>Function</type>
-            <expression>0</expression>
+            <expression>1</expression>
         </parameter>
         <parameter>
             <name>PressureLeft</name>
@@ -246,12 +243,12 @@
         <parameter>
             <name>PressureRight</name>
             <type>Function</type>
-            <expression>1</expression>
+            <expression>10*t</expression>
         </parameter>
         <parameter>
             <name>TemperatureLeft</name>
             <type>Function</type>
-            <expression>t</expression>
+            <expression>10*t</expression>
         </parameter>
     </parameters>
     <process_variables>
@@ -263,10 +260,11 @@
             <deactivated_subdomains>
                 <deactivated_subdomain>
                     <time_interval>
-                        <start>2</start>
-                        <end>3</end>
+                        <start>0.2</start>
+                        <end>0.3</end>
                     </time_interval>
                     <material_ids>1</material_ids>
+                    <boundary_parameter>P0</boundary_parameter>
                 </deactivated_subdomain>
             </deactivated_subdomains>
             <boundary_conditions>
@@ -290,10 +288,11 @@
             <deactivated_subdomains>
                 <deactivated_subdomain>
                     <time_interval>
-                        <start>6</start>
-                        <end>7</end>
+                        <start>0.6</start>
+                        <end>0.7</end>
                     </time_interval>
                     <material_ids>1</material_ids>
+                    <boundary_parameter>T1</boundary_parameter>
                 </deactivated_subdomain>
             </deactivated_subdomains>
             <boundary_conditions>
@@ -336,11 +335,29 @@
             <absolute_tolerance>1e-15</absolute_tolerance>
             <relative_tolerance>1e-14</relative_tolerance>
         </vtkdiff>
+        <vtkdiff>
+            <regex>Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_.*.vtu</regex>
+            <field>darcy_velocity</field>
+            <absolute_tolerance>5e-14</absolute_tolerance>
+            <relative_tolerance>1e-14</relative_tolerance>
+        </vtkdiff>
         <vtkdiff>
             <regex>Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_.*.vtu</regex>
             <field>T</field>
-            <absolute_tolerance>1e-15</absolute_tolerance>
+            <absolute_tolerance>2e-14</absolute_tolerance>
             <relative_tolerance>1e-14</relative_tolerance>
         </vtkdiff>
+        <vtkdiff>
+            <regex>Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_.*.vtu</regex>
+            <field>p_active</field>
+            <absolute_tolerance>0</absolute_tolerance>
+            <relative_tolerance>0</relative_tolerance>
+        </vtkdiff>
+        <vtkdiff>
+            <regex>Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_.*.vtu</regex>
+            <field>T_active</field>
+            <absolute_tolerance>0</absolute_tolerance>
+            <relative_tolerance>0</relative_tolerance>
+        </vtkdiff>
     </test_definition>
 </OpenGeoSysProject>
diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16.pvd b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16.pvd
new file mode 100644
index 0000000000000000000000000000000000000000..94f0b16fcc18ea88b383147b5d03469283b95295
--- /dev/null
+++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16.pvd
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<VTKFile type="Collection" version="0.1" byte_order="LittleEndian" compressor="vtkZLibDataCompressor">
+  <Collection>
+    <DataSet timestep="0" group="" part="0" file="Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_0_t_0.000000.vtu"/>
+    <DataSet timestep="0.19" group="" part="0" file="Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_19_t_0.190000.vtu"/>
+    <DataSet timestep="0.29" group="" part="0" file="Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_29_t_0.290000.vtu"/>
+    <DataSet timestep="0.31" group="" part="0" file="Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_31_t_0.310000.vtu"/>
+    <DataSet timestep="0.59" group="" part="0" file="Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_59_t_0.590000.vtu"/>
+    <DataSet timestep="0.69" group="" part="0" file="Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_69_t_0.690000.vtu"/>
+    <DataSet timestep="0.71" group="" part="0" file="Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_71_t_0.710000.vtu"/>
+    <DataSet timestep="1" group="" part="0" file="Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_100_t_1.000000.vtu"/>
+  </Collection>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_0_t_0.000000.vtu b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_0_t_0.000000.vtu
index d1c709866d305ea6b1e63e32e79c30ddd43f660a..fbc0e27e768aa832991444b1ead51c98d7fa46ac 100644
--- a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_0_t_0.000000.vtu
+++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_0_t_0.000000.vtu
@@ -1,29 +1,31 @@
 <?xml version="1.0"?>
-<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor">
   <UnstructuredGrid>
     <FieldData>
-      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="40" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="25" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
     </FieldData>
     <Piece NumberOfPoints="25"                   NumberOfCells="16"                  >
       <PointData>
         <DataArray type="Float64" Name="T" format="appended" RangeMin="0"                    RangeMax="0"                    offset="88"                  />
-        <DataArray type="Float64" Name="darcy_velocity" NumberOfComponents="2" format="appended" RangeMin="0"                    RangeMax="0"                    offset="128"                 />
-        <DataArray type="Float64" Name="p" format="appended" RangeMin="0"                    RangeMax="0"                    offset="172"                 />
+        <DataArray type="Float64" Name="darcy_velocity" NumberOfComponents="2" format="appended" RangeMin="0"                    RangeMax="0"                    offset="148"                 />
+        <DataArray type="Float64" Name="p" format="appended" RangeMin="1"                    RangeMax="1"                    offset="212"                 />
       </PointData>
       <CellData>
-        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="1"                    offset="212"                 />
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="1"                    offset="280"                 />
+        <DataArray type="UInt8" Name="T_active" format="appended" RangeMin="1"                    RangeMax="1"                    offset="348"                 />
+        <DataArray type="UInt8" Name="p_active" format="appended" RangeMin="1"                    RangeMax="1"                    offset="408"                 />
       </CellData>
       <Points>
-        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.4142135624"         offset="260"                 />
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.4142135624"         offset="468"                 />
       </Points>
       <Cells>
-        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="392"                 />
-        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="552"                 />
-        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="644"                 />
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="620"                 />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="800"                 />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="912"                 />
       </Cells>
     </Piece>
   </UnstructuredGrid>
   <AppendedData encoding="base64">
-   _AQAAAACAAAAoAAAALgAAAA==eF4z0zPWM9I1N9FNN0tJtkwyTDQ31UvJLCqp1DMyMDIwMDc2BGIzIxMA0NUKBw==AQAAAACAAADIAAAADAAAAA==eF5jYBgeAAAAyAABAQAAAACAAACQAQAADgAAAA==eF5jYBgFgwkAAAGQAAE=AQAAAACAAADIAAAADAAAAA==eF5jYBgeAAAAyAABAQAAAACAAABAAAAAEAAAAA==eF5jZGBgYMSDCQEAAdAACQ==AQAAAACAAABYAgAAUAAAAA==eF590LERwDAMQlFvlv27jEBJyQipaEh+6PzkO0465y/39e0CN3jAm+3pe13gBg94s3v037rADR7wZu/U3nWBGzzgO2/auy5wg+flD1SCLSk=AQAAAACAAAAAAgAAZAAAAA==eF5djTcOwFAMhX567/X+J80Qs+DlSQjhlP7LYuvYSjyPbeTBi9hWHryM7eTxh94Q24vTG+XB6U3y4Pyd5fGH3hq7iNPb5MHp7fLg/D3k8YfeFXuK07vlwek98uD8feV9Nx4DAQ==AQAAAACAAACAAAAAMwAAAA==eF5jYYAADijNA6UFoLQIlJaA0jJQWgFKq0BpDSitA6UNoLQJlLaA0jZQ2gFKAwBmgAIhAQAAAACAAAAQAAAACwAAAA==eF7j5EQFAATYAJE=
+   _AQAAAAAAAAAAgAAAAAAAABkAAAAAAAAAIQAAAAAAAAA=eF4z0zPVM9Q1MTDWTTdKSjUzSEu11EvJLCqpBABNuwcOAQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAADAAAAAAAAAA=eF5jYBgeAAAAyAABAQAAAAAAAAAAgAAAAAAAAJABAAAAAAAADgAAAAAAAAA=eF5jYBgFgwkAAAGQAAE=AQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAAEQAAAAAAAAA=eF5jYACBD/YMQ5wGAE8UHZg=AQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAEAAAAAAAAAA=eF5jZGBgYMSDCQEAAdAACQ==AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF5jZEQFAACYABE=AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF5jZEQFAACYABE=AQAAAAAAAAAAgAAAAAAAAFgCAAAAAAAAUAAAAAAAAAA=eF590LERwDAMQlFvlv27jEBJyQipaEh+6PzkO0465y/39e0CN3jAm+3pe13gBg94s3v037rADR7wZu/U3nWBGzzgO2/auy5wg+flD1SCLSk=AQAAAAAAAAAAgAAAAAAAAAACAAAAAAAAZAAAAAAAAAA=eF5djTcOwFAMhX567/X+J80Qs+DlSQjhlP7LYuvYSjyPbeTBi9hWHryM7eTxh94Q24vTG+XB6U3y4Pyd5fGH3hq7iNPb5MHp7fLg/D3k8YfeFXuK07vlwek98uD8feV9Nx4DAQ==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAMwAAAAAAAAA=eF5jYYAADijNA6UFoLQIlJaA0jJQWgFKq0BpDSitA6UNoLQJlLaA0jZQ2gFKAwBmgAIhAQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF7j5EQFAATYAJE=
   </AppendedData>
 </VTKFile>
diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_100_t_1.000000.vtu b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_100_t_1.000000.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..f004cc253d45a3b4f65c4d96b23c4b7d785411a0
--- /dev/null
+++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_100_t_1.000000.vtu
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="25" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="25"                   NumberOfCells="16"                  >
+      <PointData>
+        <DataArray type="Float64" Name="T" format="appended" RangeMin="0"                    RangeMax="10"                   offset="88"                  />
+        <DataArray type="Float64" Name="darcy_velocity" NumberOfComponents="2" format="appended" RangeMin="2.4187002679"         RangeMax="6.2062999083"         offset="324"                 />
+        <DataArray type="Float64" Name="p" format="appended" RangeMin="2"                    RangeMax="10"                   offset="852"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="1"                    offset="1080"                />
+        <DataArray type="UInt8" Name="T_active" format="appended" RangeMin="1"                    RangeMax="1"                    offset="1148"                />
+        <DataArray type="UInt8" Name="p_active" format="appended" RangeMin="1"                    RangeMax="1"                    offset="1208"                />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.4142135624"         offset="1268"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1420"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1600"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1712"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAAAAAAAAgAAAAAAAABkAAAAAAAAAIQAAAAAAAAA=eF4z0zPVM9Q1MTDWTTdKSjUzSEu11EvJLCqpBABNuwcOAQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAAjwAAAAAAAAA=eF5jYAABFYcrrZlul1+LOKgkZh1x+MHkEO0/75Bayyt7BhSg4nD+QXWl8xsRh8qdbRHMP5kcNG/eLChrxVR3f3HC7tC3Ig7bl2TcuP+LyeHy0sozazsw1Z18Z1Wc+07EwbaezfT4HyaHmmqZ/z+7MdWFhS/4/giobqbk3Lgpf5kcDJaa/o3tRagDAIYfPtA=AQAAAAAAAAAAgAAAAAAAAJABAAAAAAAAagEAAAAAAAA=eF5b2be6rT6S+QADENw5d8FG3MA1+dgT1gMpVj7CfV4a+x991vnyv573wN7XLQtNdQ33f0qPPTeHV/RAyvqiTQuB8iddaj0cLkuA9Rs03rC5cfvxhgdQ8y58P2KjvU1agvsp64HvU2ftf7vbZL+eUQjYvE1xBb7Tg2z3v1T5VFwFNE+mPaT+H1D+2X3LzfxQ81Je3rMJ6mh3PR0FNW/2/j0zZv//vgFo3rn1T/VXAfWv+bgJbN4W4c83ufe47DcxYmhRB5oXl87/4CBQXterM2PWJYh5Xnff7jG51XZ7azTEvA2K+/fEhd68EfaM9YAYs4eJ5B6T/dWbBb+CzJv3q/XQFaD+gNDJk6/wiB4wOzT9iyZQPuu+lqwq1LyGNZdsrpyRYhePgZh3YPpGm6Prl/bNBpr3gmfFnyfA8JH7YgE271zhLLFiYPhJaay12AQ0b9LKP3N+AOVLllq2f7kIMY/h7wIbAIvuuj0=AQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAAiQAAAAAAAAA=eF5jYAADh9DjoYf3r+F04J6xyDD5k5DD7NiDt+OnSTtApFWgNIPDu7eFER+A6sRu8/a0AtXxCSSrVWBRp3Xk8KLUtZwOZ87+r74BVPc6avfpTVjUSecefnsLqG79qpwc7c9CDj4TsgrfYlGXk9bbzL2O0+HJ9aDjvkB1HrrJe1inI9QBACgZOmg=AQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAEAAAAAAAAAA=eF5jZGBgYMSDCQEAAdAACQ==AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF5jZEQFAACYABE=AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF5jZEQFAACYABE=AQAAAAAAAAAAgAAAAAAAAFgCAAAAAAAAUAAAAAAAAAA=eF590LERwDAMQlFvlv27jEBJyQipaEh+6PzkO0465y/39e0CN3jAm+3pe13gBg94s3v037rADR7wZu/U3nWBGzzgO2/auy5wg+flD1SCLSk=AQAAAAAAAAAAgAAAAAAAAAACAAAAAAAAZAAAAAAAAAA=eF5djTcOwFAMhX567/X+J80Qs+DlSQjhlP7LYuvYSjyPbeTBi9hWHryM7eTxh94Q24vTG+XB6U3y4Pyd5fGH3hq7iNPb5MHp7fLg/D3k8YfeFXuK07vlwek98uD8feV9Nx4DAQ==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAMwAAAAAAAAA=eF5jYYAADijNA6UFoLQIlJaA0jJQWgFKq0BpDSitA6UNoLQJlLaA0jZQ2gFKAwBmgAIhAQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF7j5EQFAATYAJE=
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_101_t_10.000000.vtu b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_101_t_10.000000.vtu
deleted file mode 100644
index 2a19954641e256d03bcf82aa769279882375ff2d..0000000000000000000000000000000000000000
--- a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_101_t_10.000000.vtu
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
-  <UnstructuredGrid>
-    <FieldData>
-      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="40" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
-    </FieldData>
-    <Piece NumberOfPoints="25"                   NumberOfCells="16"                  >
-      <PointData>
-        <DataArray type="Float64" Name="T" format="appended" RangeMin="0"                    RangeMax="10"                   offset="88"                  />
-        <DataArray type="Float64" Name="darcy_velocity" NumberOfComponents="2" format="appended" RangeMin="0.5"                  RangeMax="0.5"                  offset="272"                 />
-        <DataArray type="Float64" Name="p" format="appended" RangeMin="1"                    RangeMax="2"                    offset="676"                 />
-      </PointData>
-      <CellData>
-        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="1"                    offset="796"                 />
-      </CellData>
-      <Points>
-        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.4142135624"         offset="844"                 />
-      </Points>
-      <Cells>
-        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="976"                 />
-        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1136"                />
-        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1228"                />
-      </Cells>
-    </Piece>
-  </UnstructuredGrid>
-  <AppendedData encoding="base64">
-   _AQAAAACAAAAoAAAALgAAAA==eF4z0zPWM9I1N9FNN0tJtkwyTDQ31UvJLCqp1DMyMDIwMDc2BGIzIxMA0NUKBw==AQAAAACAAADIAAAAdgAAAA==eF5jYAABFQeX5yZNF+wVHPb4m+vuXSju0HjpEUvbV04HBhSg4vCidmYzSJ1lTbchSN3Ow3O4samLS//SBlLnteeHNUjdxpQL0tjUfW336QKpexoS6wZSZzj5mzY2dXtD13WD1P29ucILpO6v4GIjZHUAZGc5nA==AQAAAACAAACQAQAAGwEAAA==eF6TXs8ABA/sQ87OixNRW7jnXDWE/1Tf/CJP0P09bAwQ/qJZtns1fBbtCef4DwT37assnfTunHi/Z9rCf2A+zzOOnQXKh214oOYpGLifaJWutLkENe/D9NkZbCuv7/n1H6I/IvWQ0/XNvTYBUPN2yCiK56Xc23MLat6tFJD8XBs2qHl/i1pidkzcaHMKap6KsNiueW+37eGAuu8T2Pwre1Kg5j0Du/+gzRmoeX5qOiW2tw/ugZnnNXPDha850/echppnE5bs6qV71oYJap7M6o1KS6fd3JMENW/xzcvdh1Q27bkGNW+BT8SLqm2rbUSg5v0Du+/gnn1Q85aA5e/afIb6Vxps3uM9FVDzDPQh4XMbah4DFAAALebFDA==AQAAAACAAADIAAAARgAAAA==eF5jYAADB4sr/4Hgt734IRD93d4EzP9sD5H+AKUZHGyg6sSg6mxwqLOFqpOEqrPCoc4Oqk4Kqs4ahzorqDp5HOoA0xBj9A==AQAAAACAAABAAAAAEAAAAA==eF5jZGBgYMSDCQEAAdAACQ==AQAAAACAAABYAgAAUAAAAA==eF590LERwDAMQlFvlv27jEBJyQipaEh+6PzkO0465y/39e0CN3jAm+3pe13gBg94s3v037rADR7wZu/U3nWBGzzgO2/auy5wg+flD1SCLSk=AQAAAACAAAAAAgAAZAAAAA==eF5djTcOwFAMhX567/X+J80Qs+DlSQjhlP7LYuvYSjyPbeTBi9hWHryM7eTxh94Q24vTG+XB6U3y4Pyd5fGH3hq7iNPb5MHp7fLg/D3k8YfeFXuK07vlwek98uD8feV9Nx4DAQ==AQAAAACAAACAAAAAMwAAAA==eF5jYYAADijNA6UFoLQIlJaA0jJQWgFKq0BpDSitA6UNoLQJlLaA0jZQ2gFKAwBmgAIhAQAAAACAAAAQAAAACwAAAA==eF7j5EQFAATYAJE=
-  </AppendedData>
-</VTKFile>
diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_19_t_0.190000.vtu b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_19_t_0.190000.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..fb453a8f780271b0b8782e3660bf2e6604115d94
--- /dev/null
+++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_19_t_0.190000.vtu
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="25" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="25"                   NumberOfCells="16"                  >
+      <PointData>
+        <DataArray type="Float64" Name="T" format="appended" RangeMin="0"                    RangeMax="1.9"                  offset="88"                  />
+        <DataArray type="Float64" Name="darcy_velocity" NumberOfComponents="2" format="appended" RangeMin="0.33207251919"        RangeMax="1.4110405117"         offset="244"                 />
+        <DataArray type="Float64" Name="p" format="appended" RangeMin="1.1921622051"         RangeMax="2"                    offset="660"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="1"                    offset="800"                 />
+        <DataArray type="UInt8" Name="T_active" format="appended" RangeMin="1"                    RangeMax="1"                    offset="868"                 />
+        <DataArray type="UInt8" Name="p_active" format="appended" RangeMin="1"                    RangeMax="1"                    offset="928"                 />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.4142135624"         offset="988"                 />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1140"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1320"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1432"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAAAAAAAAgAAAAAAAABkAAAAAAAAAIQAAAAAAAAA=eF4z0zPVM9Q1MTDWTTdKSjUzSEu11EvJLCqpBABNuwcOAQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAAUwAAAAAAAAA=eF5LSwOBf/baK75vXH/9k/27FV4RP748tWfS0JlodGaOPQMUpEHV6ULVfYGqu62OXR3MvE9QdadxqDOBqvsLVbcShzoVqLq3UHXJaO4DAHyJVws=AQAAAAAAAAAAgAAAAAAAAJABAAAAAAAAFQEAAAAAAAA=eF4r/xOx57vPO3ufmRsufM3ZbmPUt3npuZsv7Z/pm1/kCbq554JNqcRah6v2/M6+3avt79j8imoomr3s2X4/NZ0S29tb9+S9NDafP/nb/v9gsH9PNtS8FLB5021MoOat84l4UbVt/56rUPNOgNX372GIhphXbumkd+fEHpsCqHkOqYecrm/u3VMANY8BDDp2GkLNg6jfsucu1LxeTu7Y82WnbX5D3RcBdt95mzKoeQFg9+zfkwU1L2jzcvFWzyV7LKHmrQW7b/eeh1DzksDq19uwQN0XcXZenIhaoU0F1LxQqP9ToOb9gvrfDGre1TcvXROFDu55AjUP4v4TcP+uuXm5+5DKpj0lUPOYwPIH9gAADHDbtQ==AQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAARwAAAAAAAAA=eF5jYAADh0cHXgocyvlh/9xCba2E8Gf7dYVnTk2T+WyfBgb/7Bmg6p5A1T2FqluPQ91jNPPWEDDvMQF1T9HsRXcfAAMLU+s=AQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAEAAAAAAAAAA=eF5jZGBgYMSDCQEAAdAACQ==AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF5jZEQFAACYABE=AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF5jZEQFAACYABE=AQAAAAAAAAAAgAAAAAAAAFgCAAAAAAAAUAAAAAAAAAA=eF590LERwDAMQlFvlv27jEBJyQipaEh+6PzkO0465y/39e0CN3jAm+3pe13gBg94s3v037rADR7wZu/U3nWBGzzgO2/auy5wg+flD1SCLSk=AQAAAAAAAAAAgAAAAAAAAAACAAAAAAAAZAAAAAAAAAA=eF5djTcOwFAMhX567/X+J80Qs+DlSQjhlP7LYuvYSjyPbeTBi9hWHryM7eTxh94Q24vTG+XB6U3y4Pyd5fGH3hq7iNPb5MHp7fLg/D3k8YfeFXuK07vlwek98uD8feV9Nx4DAQ==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAMwAAAAAAAAA=eF5jYYAADijNA6UFoLQIlJaA0jJQWgFKq0BpDSitA6UNoLQJlLaA0jZQ2gFKAwBmgAIhAQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF7j5EQFAATYAJE=
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_29_t_0.290000.vtu b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_29_t_0.290000.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..9aeac2e8158b473a562e12a917577c447050fa0f
--- /dev/null
+++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_29_t_0.290000.vtu
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="25" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="25"                   NumberOfCells="16"                  >
+      <PointData>
+        <DataArray type="Float64" Name="T" format="appended" RangeMin="0"                    RangeMax="2.9"                  offset="88"                  />
+        <DataArray type="Float64" Name="darcy_velocity" NumberOfComponents="2" format="appended" RangeMin="0"                    RangeMax="3.4217975099"         offset="336"                 />
+        <DataArray type="Float64" Name="p" format="appended" RangeMin="1"                    RangeMax="2.9"                  offset="672"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="1"                    offset="820"                 />
+        <DataArray type="UInt8" Name="T_active" format="appended" RangeMin="1"                    RangeMax="1"                    offset="888"                 />
+        <DataArray type="UInt8" Name="p_active" format="appended" RangeMin="0"                    RangeMax="1"                    offset="948"                 />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.4142135624"         offset="1012"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1164"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1344"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1456"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAAAAAAAAgAAAAAAAABkAAAAAAAAAIQAAAAAAAAA=eF4z0zPVM9Q1MTDWTTdKSjUzSEu11EvJLCqpBABNuwcOAQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAAlwAAAAAAAAA=eF4zNgYBdoejb7JSz9d+shef8XYWZ/YT+4hzZ2+/eHDIngEKjKHq3h9akqp37IN94PK7316cfGJ/1mzljNBPRzDU+UZZPd40/5/9Mb/7En8Cntn3956MVt44C0Ndq0f+jdgABoe+ZX8y2AOe2//e8X3DavPFGOr277afJOj1x37zioWyma0v7I/9OZx3dttZuDoArE1LSQ==AQAAAAAAAAAAgAAAAAAAAJABAAAAAAAA2gAAAAAAAAA=eF5jYBgKYInNv/8g8H4/mHtg2p6Wq28UgtJvQvgMNXtEJt05fG7xRSi/xYZfM5plUcc9KH+HTVIaCPzbbz21832Yz2f731Dzvm0TnCeh99z+ZnL3ir4Nj/Z7++3stW/dsl/u9v5r57tu7L/jmL+16O/P/W+Om/vcDXm+X2WO/1PbI2wHsqHmuVu8XPdo3it7iD17bIqFFojM2PXYPutJcMK0z9f3O0zY2Gc18dB+BpVeb5Y5p/cvyN9WsMn5x/4TaSJTJBQf7C9t8jrwfTfTAbD2hht7AIDJdNk=AQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAATQAAAAAAAAA=eF5jYACBD/YMA0IzOCSYWndcifxm36byfcPnjC/2rqfEGjUWfbc3BgN2B5i6txtdQ9wjftof/7b+62alb/bfH0svy1v1G64OAPucL9k=AQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAEAAAAAAAAAA=eF5jZGBgYMSDCQEAAdAACQ==AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF5jZEQFAACYABE=AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAADgAAAAAAAAA=eF5jYIAARigAAAA0AAk=AQAAAAAAAAAAgAAAAAAAAFgCAAAAAAAAUAAAAAAAAAA=eF590LERwDAMQlFvlv27jEBJyQipaEh+6PzkO0465y/39e0CN3jAm+3pe13gBg94s3v037rADR7wZu/U3nWBGzzgO2/auy5wg+flD1SCLSk=AQAAAAAAAAAAgAAAAAAAAAACAAAAAAAAZAAAAAAAAAA=eF5djTcOwFAMhX567/X+J80Qs+DlSQjhlP7LYuvYSjyPbeTBi9hWHryM7eTxh94Q24vTG+XB6U3y4Pyd5fGH3hq7iNPb5MHp7fLg/D3k8YfeFXuK07vlwek98uD8feV9Nx4DAQ==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAMwAAAAAAAAA=eF5jYYAADijNA6UFoLQIlJaA0jJQWgFKq0BpDSitA6UNoLQJlLaA0jZQ2gFKAwBmgAIhAQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF7j5EQFAATYAJE=
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_31_t_0.310000.vtu b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_31_t_0.310000.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..cb0b7bc4b73ada30a1f29bfd34869a17f99105c6
--- /dev/null
+++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_31_t_0.310000.vtu
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="25" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="25"                   NumberOfCells="16"                  >
+      <PointData>
+        <DataArray type="Float64" Name="T" format="appended" RangeMin="0"                    RangeMax="3.1"                  offset="88"                  />
+        <DataArray type="Float64" Name="darcy_velocity" NumberOfComponents="2" format="appended" RangeMin="0.11457036122"        RangeMax="4.6676408116"         offset="332"                 />
+        <DataArray type="Float64" Name="p" format="appended" RangeMin="0.7661795942"         RangeMax="3.1"                  offset="896"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="1"                    offset="1140"                />
+        <DataArray type="UInt8" Name="T_active" format="appended" RangeMin="1"                    RangeMax="1"                    offset="1208"                />
+        <DataArray type="UInt8" Name="p_active" format="appended" RangeMin="1"                    RangeMax="1"                    offset="1268"                />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.4142135624"         offset="1328"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1480"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1660"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1772"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAAAAAAAAgAAAAAAAABkAAAAAAAAAIQAAAAAAAAA=eF4z0zPVM9Q1MTDWTTdKSjUzSEu11EvJLCqpBABNuwcOAQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAAlQAAAAAAAAA=eF47ewYEOBz4robZ8Br/tT+29rHDdf2H9iev2j+fc2KXPQMUnIWqY3qmlr7f5I+9nU62TOHZB/a5O32nKqUfwFC3dMfCD99ZmB0yNQN1TOc/sX8mXJi97ecCTPOkS4zz1jI5XPzX5KW9+Zk93+LbhfNC5mCo+62Z9nCSyj/7Bbf3phbsfGp/67h3x42v5+HqAHtgVVo=AQAAAAAAAAAAgAAAAAAAAJABAAAAAAAAhQEAAAAAAAA=eF77dSFRcNNWRgcGEGDZZxP0S4t53oN39kZrj5rdb59g/8FW/uYhz732c1p3K74XrLSP657u+6WF4cDrJyVqMttm2puvd3vzeaLQAbD+Czf2hMScP3/wGtS8A10297f6fFr/8519gkeKhJvpyv27VUTLu/L32Zf16rrztCza7/Qr/qRFN8MBCT7rieX2m/crquRyrFoNNa/j4p5t6+Y9YH/DADVv454axR12sTve2j/5JKJns/HB/qPBYiHvlmyz9zALexVy5/x+jatVMk+sGA7s4svqbK58uf/UtT36P74LQt33bM+Ro52F7n8+2YP5DYtsvDW2b5/F9Ny+68R7xryGJ/s/3DlpGPHy8H6lCbHhdmzX9u/VLf36TOrv/jXOhu5rn73b/8hB1WfSLA6IeQvO7DmtObvOef0riHkMm2wyIzmF7bY+sq84/OHEtEnX9vce+vWq1e3c/grr7ZOKTC/u93WTW2zx5df+pisCjo/KH+w/wP1w98waFoh5DAdtAHJouEs=AQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAAlgAAAAAAAAA=eF5jYAADB/Y4m7uzp7yxv96U9W9D/wd7zzKJpuTXL+zPngEBDgcGqLpg98SEmqA39sJLb7JpNH+w37moTrC7BVNd36JDdh/U39k7v1+ccFH5o73wDfuSoODXGOpkZa3d7zR+s7+drbJkU90X+70RJb7s/39gqOsxjVTQD/lp7xNc/S1h6Tf7+7077v6X+QtXBwCA91bzAQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAEAAAAAAAAAA=eF5jZGBgYMSDCQEAAdAACQ==AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF5jZEQFAACYABE=AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF5jZEQFAACYABE=AQAAAAAAAAAAgAAAAAAAAFgCAAAAAAAAUAAAAAAAAAA=eF590LERwDAMQlFvlv27jEBJyQipaEh+6PzkO0465y/39e0CN3jAm+3pe13gBg94s3v037rADR7wZu/U3nWBGzzgO2/auy5wg+flD1SCLSk=AQAAAAAAAAAAgAAAAAAAAAACAAAAAAAAZAAAAAAAAAA=eF5djTcOwFAMhX567/X+J80Qs+DlSQjhlP7LYuvYSjyPbeTBi9hWHryM7eTxh94Q24vTG+XB6U3y4Pyd5fGH3hq7iNPb5MHp7fLg/D3k8YfeFXuK07vlwek98uD8feV9Nx4DAQ==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAMwAAAAAAAAA=eF5jYYAADijNA6UFoLQIlJaA0jJQWgFKq0BpDSitA6UNoLQJlLaA0jZQ2gFKAwBmgAIhAQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF7j5EQFAATYAJE=
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_40_t_4.000000.vtu b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_40_t_4.000000.vtu
deleted file mode 100644
index 79007544ea458fab1746461afa81a0e8c6b96691..0000000000000000000000000000000000000000
--- a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_40_t_4.000000.vtu
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
-  <UnstructuredGrid>
-    <FieldData>
-      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="40" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
-    </FieldData>
-    <Piece NumberOfPoints="25"                   NumberOfCells="16"                  >
-      <PointData>
-        <DataArray type="Float64" Name="T" format="appended" RangeMin="0"                    RangeMax="4"                    offset="88"                  />
-        <DataArray type="Float64" Name="darcy_velocity" NumberOfComponents="2" format="appended" RangeMin="0.48379233199"        RangeMax="0.51620880084"        offset="308"                 />
-        <DataArray type="Float64" Name="p" format="appended" RangeMin="1"                    RangeMax="2"                    offset="836"                 />
-      </PointData>
-      <CellData>
-        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="1"                    offset="1052"                />
-      </CellData>
-      <Points>
-        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.4142135624"         offset="1100"                />
-      </Points>
-      <Cells>
-        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1232"                />
-        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1392"                />
-        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1484"                />
-      </Cells>
-    </Piece>
-  </UnstructuredGrid>
-  <AppendedData encoding="base64">
-   _AQAAAACAAAAoAAAALgAAAA==eF4z0zPWM9I1N9FNN0tJtkwyTDQ31UvJLCqp1DMyMDIwMDc2BGIzIxMA0NUKBw==AQAAAACAAADIAAAAkgAAAA==eF5jYgABAYdXN1Yf/yPA5WDS/iBvhzqzwx/WHdur3L/aM0ABE1Tdo5qdRqI8XA7OT2Y8uSPP7BDpKHjslhWmOluBFTte/Od0UN5+6H0GD7PDRY0dr9ZJY6qrfThL2uYzp8MLvzA/6x9MDoce/ZCt/P0FQ10VG+/Zy285HXxms2ktfc/kYD15zeGzbxHqADt6O24=AQAAAACAAACQAQAAeQEAAA==eF4L6d4QeKLlgT0DCFwps4mZfDP6cewD+1cf3gqtsVHd/6Xzwvy//+/bMz9Lbt3Jprff7qaPh6XLffsfKzlbGaxU9ydd/StT8u0eWL/A0+17imLet5U0Q8xzOL1sj20Gr9rnmAf2/cUXldfKG+23zeg8BTJv1oeQdY/nW+5v0H+6WdLtvn1S9jm/TFmj/VPL+GKlf0LMY7jet+fjtPQ0hwaIeQc6lu3ZfyI5fn3UA/uprsl2d4H6N5w6avAPaF6H19HuNFmn/RV5Fo4Lve7bPzwa3LhhjuX+JTZLLzb9h5onMMVmyeH5/Ty1UP8emb/ndVnWmeyIB/bfHPvV4oH2S63ZMRVknu7L3DUrgPqVhLTTNfzv299WMJmrKm20v1zBf+tL1vtg/RVTN9rIfJ7Lt7MaYl7DxI17GKz9TlWHP7A/38chK2Chur9CUWM/yDwV4dp2ZwY9YHgmZ3ME3rc/LLpJtdJUdf++a8UpEzgg5j1YccQGAKNXtWc=AQAAAACAAADIAAAAjwAAAA==eF5jYAADB+27k1+fvffbPtBMOIjv4nf7tbvmN5+799keIv0BSjM4PNZwuad0/7f9A++fOW1AdZfPLcxWvo+pzlkq7dl7oLr50n4BKy59t5+63CTqAxZ1YvwSd/Y8+G3fdeSU5KnL3+35n6w02/sAU51Fc8QewYe/7ese3ZByuvLd/kZVH4/QQ4Q6AInmSyc=AQAAAACAAABAAAAAEAAAAA==eF5jZGBgYMSDCQEAAdAACQ==AQAAAACAAABYAgAAUAAAAA==eF590LERwDAMQlFvlv27jEBJyQipaEh+6PzkO0465y/39e0CN3jAm+3pe13gBg94s3v037rADR7wZu/U3nWBGzzgO2/auy5wg+flD1SCLSk=AQAAAACAAAAAAgAAZAAAAA==eF5djTcOwFAMhX567/X+J80Qs+DlSQjhlP7LYuvYSjyPbeTBi9hWHryM7eTxh94Q24vTG+XB6U3y4Pyd5fGH3hq7iNPb5MHp7fLg/D3k8YfeFXuK07vlwek98uD8feV9Nx4DAQ==AQAAAACAAACAAAAAMwAAAA==eF5jYYAADijNA6UFoLQIlJaA0jJQWgFKq0BpDSitA6UNoLQJlLaA0jZQ2gFKAwBmgAIhAQAAAACAAAAQAAAACwAAAA==eF7j5EQFAATYAJE=
-  </AppendedData>
-</VTKFile>
diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_59_t_0.590000.vtu b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_59_t_0.590000.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..50053296d045d16350a7850ab93c6c7d89119bfa
--- /dev/null
+++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_59_t_0.590000.vtu
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="25" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="25"                   NumberOfCells="16"                  >
+      <PointData>
+        <DataArray type="Float64" Name="T" format="appended" RangeMin="0"                    RangeMax="5.9"                  offset="88"                  />
+        <DataArray type="Float64" Name="darcy_velocity" NumberOfComponents="2" format="appended" RangeMin="0.20720682863"        RangeMax="4.3192136285"         offset="328"                 />
+        <DataArray type="Float64" Name="p" format="appended" RangeMin="2"                    RangeMax="5.9"                  offset="884"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="1"                    offset="1124"                />
+        <DataArray type="UInt8" Name="T_active" format="appended" RangeMin="1"                    RangeMax="1"                    offset="1192"                />
+        <DataArray type="UInt8" Name="p_active" format="appended" RangeMin="1"                    RangeMax="1"                    offset="1252"                />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.4142135624"         offset="1312"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1464"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1644"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1756"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAAAAAAAAgAAAAAAAABkAAAAAAAAAIQAAAAAAAAA=eF4z0zPVM9Q1MTDWTTdKSjUzSEu11EvJLCqpBABNuwcOAQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAAkgAAAAAAAAA=eF6bORMExB1mdfRoHbf/Zf/GdgHPjM2P7KdcF3SWzTxuzwAFM6HqSi8tU3Kx/mX/84nh2wvzH9mLqcy6ZhKKqe6L4uUap/Bf9geELn190PjIPu2PuZegLqa6oMDE9bxnf9l/TPYXP7jwkf2KxBjz1daY6pgLDryol/xtbxF4taX0xCN77Ut3FnjFIdQBAMc4UCc=AQAAAAAAAAAAgAAAAAAAAJABAAAAAAAAgAEAAAAAAAA=eF7bkWZ350Drqf0MINCx0Mb/ZZTVG99H+z1EKxdmxbTuf5a6qsLL4Nf+stXHEwKC+/bfqJijsmM+14Hvne/El7W17mfh/fP+vpvgAbB+7/s2DD9C29pvn4aY57DKZmmFzO1JXY/2PzbvKSyPnbQ/9rbClhKgeXNr/p9eJjRrP7toTk3fBK4DlwRmPP/TOGn/IdEPc2RsoOZF7NxzuGThDjnZ8xDzJszbY/B0V0Gj3OP9J29FHFpkM2u/z9SmvjtA85SNgq68n79o/5NKluuTsrkOnNqbnWZdOGv/szs6324rQs27cHZPlHiZdITpRYh5axbuOTM78cbELY/3CxxKP+m5d9L+N2obxdwNge5jMnGSnj1rv80Zqb18blwHDtzzVVV7PGm/m52ymhU71Lzfj/as21Q71eIZ1LwDa208Ws94RX1+vD8m67MDv0zb/gO6n/4XA81bsLvE1DKlf/8DwYYFMWZcB7bY/Gr84dG2X8vx0UrRPwJQ953ZAwD/OLy4AQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAAkgAAAAAAAAA=eF5jYAADB7PPD9n0rjA4hOyaxlc9mcVBS83cOfgNr8NMMBB3YICqO7DeyObOPQYHTbnj25YsYnEokHWeJvYdU90y7qNfX/xgcPDZqRez4DiLg28Ym224IB+GurLE7Y2hwowOX9IkylTesji8+8LP+1MbU5327fDOZDlGhyDFzZOu/WFx4PkU0ClrjlAHAHk3Qyg=AQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAEAAAAAAAAAA=eF5jZGBgYMSDCQEAAdAACQ==AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF5jZEQFAACYABE=AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF5jZEQFAACYABE=AQAAAAAAAAAAgAAAAAAAAFgCAAAAAAAAUAAAAAAAAAA=eF590LERwDAMQlFvlv27jEBJyQipaEh+6PzkO0465y/39e0CN3jAm+3pe13gBg94s3v037rADR7wZu/U3nWBGzzgO2/auy5wg+flD1SCLSk=AQAAAAAAAAAAgAAAAAAAAAACAAAAAAAAZAAAAAAAAAA=eF5djTcOwFAMhX567/X+J80Qs+DlSQjhlP7LYuvYSjyPbeTBi9hWHryM7eTxh94Q24vTG+XB6U3y4Pyd5fGH3hq7iNPb5MHp7fLg/D3k8YfeFXuK07vlwek98uD8feV9Nx4DAQ==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAMwAAAAAAAAA=eF5jYYAADijNA6UFoLQIlJaA0jJQWgFKq0BpDSitA6UNoLQJlLaA0jZQ2gFKAwBmgAIhAQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF7j5EQFAATYAJE=
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_69_t_0.690000.vtu b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_69_t_0.690000.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..30f280c73570573bd3c17d4e8f70c594fb6ac258
--- /dev/null
+++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_69_t_0.690000.vtu
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="25" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="25"                   NumberOfCells="16"                  >
+      <PointData>
+        <DataArray type="Float64" Name="T" format="appended" RangeMin="0"                    RangeMax="6.9"                  offset="88"                  />
+        <DataArray type="Float64" Name="darcy_velocity" NumberOfComponents="2" format="appended" RangeMin="0.78676961392"        RangeMax="4.7383847985"         offset="236"                 />
+        <DataArray type="Float64" Name="p" format="appended" RangeMin="2"                    RangeMax="6.9"                  offset="792"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="1"                    offset="1028"                />
+        <DataArray type="UInt8" Name="T_active" format="appended" RangeMin="0"                    RangeMax="1"                    offset="1096"                />
+        <DataArray type="UInt8" Name="p_active" format="appended" RangeMin="1"                    RangeMax="1"                    offset="1160"                />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.4142135624"         offset="1220"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1372"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1552"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1664"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAAAAAAAAgAAAAAAAABkAAAAAAAAAIQAAAAAAAAA=eF4z0zPVM9Q1MTDWTTdKSjUzSEu11EvJLCqpBABNuwcOAQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAATgAAAAAAAAA=eF5jYACBD/YMdKZngoG0w8on61R/tjM6sJieftT2+Ik91/n9Xzour4eqY2CAqUsOu7Ch1oXVYRtXU2W6zTv7s1eyVmUqXoOrAwBYKjIqAQAAAAAAAAAAgAAAAAAAAJABAAAAAAAAgAEAAAAAAAA=eF5L1NKoMNd9uZ8BBF5utfFKSntixf9p/9ugTXE9OgX72d5pyBdKMh6YcPXq9LAnZfu5mBgOTtXmOzCnj/WThXHB/rv2rKrSX4QOgLQ7zLyzh6v/6YQJvlDzNvTbmPpu4l8r9Wl/3kXX2feXVe+/csj3VBHQPJn44KL+ic37p/JErb6jyndAMI75k++m6v01+06E8X2AmNfgdXfPWsep3y7Nhpq3b6cND6c3c5zZp/3HjT8+5pjRvP+MT8i1MqB5CV49ATW7u/evWtdryCLBd+Ddxp971Rc079e34/nn+Axi3oH/z/esk2C9EfAKat6eOXuOpwZzqAR92t9tG1A990j1/tDT6i+rgOYtWvHu4YJlzfu9Gjj1Fbn4Dqy6fp9V/UL1/hNHuPTz7kDMY7i6Ys+Cpqacp1yvIOZ9vrwn/hmf6+rYT/tff91i5+VVsH/aFMnZNUDzduszllfyle9nPLB6QiwL34H0fzdZhQIL9vv4db6KvAE178L5PQCH0rIAAQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAAjwAAAAAAAAA=eF5jYAADBx9W1vfLVJkdVA2Ni+ayczqs+inG3iMv5DATDKQdGKDqHm2UEdqkyewwW+1mexgvp0OMlWneJEVMdWYrLsVVGTM7tLUsZdSX5nRoqpo8q0INU53YYgZpL1tmh6ebNFmENDkdzMxFmpK0MdWFBkxYG+PI7GBQ3L7oqh6nQ9mnkCU5ugh1ANcIOx8=AQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAEAAAAAAAAAA=eF5jZGBgYMSDCQEAAdAACQ==AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAADgAAAAAAAAA=eF5jYIAARigAAAA0AAk=AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF5jZEQFAACYABE=AQAAAAAAAAAAgAAAAAAAAFgCAAAAAAAAUAAAAAAAAAA=eF590LERwDAMQlFvlv27jEBJyQipaEh+6PzkO0465y/39e0CN3jAm+3pe13gBg94s3v037rADR7wZu/U3nWBGzzgO2/auy5wg+flD1SCLSk=AQAAAAAAAAAAgAAAAAAAAAACAAAAAAAAZAAAAAAAAAA=eF5djTcOwFAMhX567/X+J80Qs+DlSQjhlP7LYuvYSjyPbeTBi9hWHryM7eTxh94Q24vTG+XB6U3y4Pyd5fGH3hq7iNPb5MHp7fLg/D3k8YfeFXuK07vlwek98uD8feV9Nx4DAQ==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAMwAAAAAAAAA=eF5jYYAADijNA6UFoLQIlJaA0jJQWgFKq0BpDSitA6UNoLQJlLaA0jZQ2gFKAwBmgAIhAQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF7j5EQFAATYAJE=
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_71_t_0.710000.vtu b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_71_t_0.710000.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..4aa1a4673bffb494e1394702c518d3f1c67d73db
--- /dev/null
+++ b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_71_t_0.710000.vtu
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="25" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="25"                   NumberOfCells="16"                  >
+      <PointData>
+        <DataArray type="Float64" Name="T" format="appended" RangeMin="0"                    RangeMax="7.1"                  offset="88"                  />
+        <DataArray type="Float64" Name="darcy_velocity" NumberOfComponents="2" format="appended" RangeMin="0.89756998772"        RangeMax="4.8275293241"         offset="332"                 />
+        <DataArray type="Float64" Name="p" format="appended" RangeMin="2"                    RangeMax="7.1"                  offset="888"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="1"                    offset="1128"                />
+        <DataArray type="UInt8" Name="T_active" format="appended" RangeMin="1"                    RangeMax="1"                    offset="1196"                />
+        <DataArray type="UInt8" Name="p_active" format="appended" RangeMin="1"                    RangeMax="1"                    offset="1256"                />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.4142135624"         offset="1316"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1468"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1648"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1760"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAAAAAAAAgAAAAAAAABkAAAAAAAAAIQAAAAAAAAA=eF4z0zPVM9Q1MTDWTTdKSjUzSEu11EvJLCqpBABNuwcOAQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAAlAAAAAAAAAA=eF5LSwMBGYeDf25Ez7N5bS+59WLfrMVv7D+ambaoP35szwAFaVB1EztCilz+vLKPSzV/b7/6jf2GHZ/vbPmJqW7LV1+Bgzlv7PmFhFcELXljP/2o15/KvZjqFji3CKudYXZgu9jUtOD5C/vHB30K5L+ewFAXnP1ZM3kdm0Mvy6JUz1kf7E+nvnHuirkKVwcAFvdM3g==AQAAAAAAAAAAgAAAAAAAAJABAAAAAAAAgAEAAAAAAAA=eF4rXf9k45Mdb/YzgMCT+TY2cw+9MDjxef/pEh5hiSlZ+wW0NsX6PGM8YHrbdzfvuaL9enXZEVte8B34VPjDWXpO1v5zPPduJPsLHwDrd5i559nu7ycrLkPNy+jYo+ey4P30i5/3i7WmXfq6tWx/t7tEnC/QvH/b9u9sFmzYv2nVnysMT/gOmE/vY764p2z/kd7SUAEfiHkNtqf3tHjqde4RfgsxT2HunlUyZh+CX3zef1L8yNYU0Yb9ovu8TvsDzVO6JugScKhtf8m+jVcW3eA7UP+ywdRJqmF/i2tMAasLxDyH8it7NtxZ+l45BGJew7SNNjfSNSbI/P+8v6b4edHJ42X7Y1hmWAcBzdvBbiimLNew/86MHS12Z/kOzEnx4994rmz/HR4H4W/WUPcVPtgT+vznutt5UPfdOmizuy7JbALHl/2X53GF7N+etb/no4R9MNA87QO6JT7Pi/bn9c7e2HKC78Afi5Lo2/uz9ofNuyI+zwIafmY3bQAex7zMAQAAAAAAAAAAgAAAAAAAAMgAAAAAAAAAkQAAAAAAAAA=eF5jYAADh/dTbabJTGd2mOeXWCLxhNPhf/z3yi37hBzSwEDGgQGqrva7nWT+LGYHcaUL30+/4HRonb/aOu4ApjrDk6oTyxcxO4TySf/Q/MLpsMTZYl3yEUx103d/qW1Zxezw1ljEo+8/p8Ov+GMx2Scw1b22uV96ey2zQ5y9obQHC5eDrXhNlPgphDoArh1BSA==AQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAEAAAAAAAAAA=eF5jZGBgYMSDCQEAAdAACQ==AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF5jZEQFAACYABE=AQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF5jZEQFAACYABE=AQAAAAAAAAAAgAAAAAAAAFgCAAAAAAAAUAAAAAAAAAA=eF590LERwDAMQlFvlv27jEBJyQipaEh+6PzkO0465y/39e0CN3jAm+3pe13gBg94s3v037rADR7wZu/U3nWBGzzgO2/auy5wg+flD1SCLSk=AQAAAAAAAAAAgAAAAAAAAAACAAAAAAAAZAAAAAAAAAA=eF5djTcOwFAMhX567/X+J80Qs+DlSQjhlP7LYuvYSjyPbeTBi9hWHryM7eTxh94Q24vTG+XB6U3y4Pyd5fGH3hq7iNPb5MHp7fLg/D3k8YfeFXuK07vlwek98uD8feV9Nx4DAQ==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAMwAAAAAAAAA=eF5jYYAADijNA6UFoLQIlJaA0jJQWgFKq0BpDSitA6UNoLQJlLaA0jZQ2gFKAwBmgAIhAQAAAAAAAAAAgAAAAAAAABAAAAAAAAAACwAAAAAAAAA=eF7j5EQFAATYAJE=
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_80_t_8.000000.vtu b/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_80_t_8.000000.vtu
deleted file mode 100644
index 15c315aa7863f7296a2a4840843f7b97e9896772..0000000000000000000000000000000000000000
--- a/Tests/Data/Parabolic/HT/SimpleSynthetics/deactivated_subdomain/Test_HT_DeactivatedSubdomain_square_1x1_quad_16_ts_80_t_8.000000.vtu
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
-  <UnstructuredGrid>
-    <FieldData>
-      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="40" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
-    </FieldData>
-    <Piece NumberOfPoints="25"                   NumberOfCells="16"                  >
-      <PointData>
-        <DataArray type="Float64" Name="T" format="appended" RangeMin="0"                    RangeMax="8"                    offset="88"                  />
-        <DataArray type="Float64" Name="darcy_velocity" NumberOfComponents="2" format="appended" RangeMin="0.49999997687"        RangeMax="0.50000002313"        offset="308"                 />
-        <DataArray type="Float64" Name="p" format="appended" RangeMin="1"                    RangeMax="2"                    offset="776"                 />
-      </PointData>
-      <CellData>
-        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="1"                    offset="936"                 />
-      </CellData>
-      <Points>
-        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1.4142135624"         offset="984"                 />
-      </Points>
-      <Cells>
-        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1116"                />
-        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1276"                />
-        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1368"                />
-      </Cells>
-    </Piece>
-  </UnstructuredGrid>
-  <AppendedData encoding="base64">
-   _AQAAAACAAAAoAAAALgAAAA==eF4z0zPWM9I1N9FNN0tJtkwyTDQ31UvJLCqp1DMyMDIwMDc2BGIzIxMA0NUKBw==AQAAAACAAADIAAAAkgAAAA==eF779B8E5B0Wh7zam3BD0qH/2mf1yRuEHJjm/dvPUcziwAAFn6DqnkqL/S+4LekgeS2hOnSrkIPT5+7s3CpMdat6nt/TeiTpEN2bn3Viv5CDfvyyXyu6MNWtrTi2++5zSYcdF5heLjoh5DDNdqpt1gxMdSdC5t5/+VLSwXJul+vF00IODv/426PnItQBAJy/V/I=AQAAAACAAACQAQAATAEAAA==eF7T/pzFw8DwwJ6BIa7oc8D2PWm3j3OA+HMOrAuMnsu4789/ELhvr/1YSsnoJcc+Nc+CdyB+xMtfxZFA+emSWs9BfAaGHdKScQtt9taqQM3jeDrx3+Y9bJzTwOZNdm0wzePm28fEAAIP7M8VtXqtthPd9/btZbB5ZRx8SgVA+RyW7VDzBN77qK222T69ihti3g2ZENuFNoLPZMHmeXBPdlSxEN33Feq+TWLzgs2Y5PZdMT7yHsRnrtlWApKfeoHrJcS8iN8GPIv3VPy+wAUxT0/0Ktcqm4jvS9lB/N1Ss/f8+sG77xfUPFmGeVpzDUX3uQtu+QDir/atcgfJ83LGvYKYJ++6temQzf3zXVDzGGr3Vs3foxZZAjbv/iVrnuddjPt+Qs2r2+bGJn6eY99SX/GPIL7D88TYp0B5s4RXUPMijjx9fdAGAP17vj8=AQAAAACAAADIAAAAZgAAAA==eF5jYAADBxPnp3/+//9t7yU05/f//9/tIfzP9hDpD1CawWHCg29gdTW/t4DV9YH5mOoEoxT/gtR94/kIVicM5mOqUzzoDVYXzKL7B6ROCczHVMfuEwtWl33ZFawOwkeoAwCJ01lzAQAAAACAAABAAAAAEAAAAA==eF5jZGBgYMSDCQEAAdAACQ==AQAAAACAAABYAgAAUAAAAA==eF590LERwDAMQlFvlv27jEBJyQipaEh+6PzkO0465y/39e0CN3jAm+3pe13gBg94s3v037rADR7wZu/U3nWBGzzgO2/auy5wg+flD1SCLSk=AQAAAACAAAAAAgAAZAAAAA==eF5djTcOwFAMhX567/X+J80Qs+DlSQjhlP7LYuvYSjyPbeTBi9hWHryM7eTxh94Q24vTG+XB6U3y4Pyd5fGH3hq7iNPb5MHp7fLg/D3k8YfeFXuK07vlwek98uD8feV9Nx4DAQ==AQAAAACAAACAAAAAMwAAAA==eF5jYYAADijNA6UFoLQIlJaA0jJQWgFKq0BpDSitA6UNoLQJlLaA0jZQ2gFKAwBmgAIhAQAAAACAAAAQAAAACwAAAA==eF7j5EQFAATYAJE=
-  </AppendedData>
-</VTKFile>