diff --git a/ProcessLib/ComponentTransport/ComponentTransportFEM.h b/ProcessLib/ComponentTransport/ComponentTransportFEM.h
index 235e8d0f147e63fe9538428492eddeed434d9ddb..2c3be73ac005880c96a87f2e22a33c24b879c52d 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportFEM.h
+++ b/ProcessLib/ComponentTransport/ComponentTransportFEM.h
@@ -85,16 +85,6 @@ template <typename ShapeFunction, typename IntegrationMethod,
           unsigned GlobalDim>
 class LocalAssemblerData : public ComponentTransportLocalAssemblerInterface
 {
-    // When staggered scheme is adopted, nodal pressure and nodal concentration
-    // are accessed by process id.
-    static const int hydraulic_process_id = 0;
-    // TODO (renchao-lu): This variable is used in the calculation of the
-    // fluid's density and flux, indicating the transport process id. For now it
-    // is assumed that these quantities depend on the first occurring transport
-    // process only. The density and flux calculations have to be extended to
-    // all processes.
-    static const int first_transport_process_id = 1;
-
     // When monolithic scheme is adopted, nodal pressure and nodal concentration
     // are accessed by vector index.
     static const int pressure_index = 0;
@@ -428,7 +418,7 @@ public:
         std::vector<double>& local_K_data, std::vector<double>& local_b_data,
         LocalCoupledSolutions const& coupled_xs) override
     {
-        if (process_id == hydraulic_process_id)
+        if (process_id == _process_data.hydraulic_process_id)
         {
             assembleHydraulicEquation(t, dt, local_x, local_M_data,
                                       local_K_data, local_b_data, coupled_xs);
diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcessData.h b/ProcessLib/ComponentTransport/ComponentTransportProcessData.h
index 79f5783686b136869b30d79295d21d82859f0e02..fcf8ac1d11cd58c21296c1ca42101d41ad4c4587 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportProcessData.h
+++ b/ProcessLib/ComponentTransport/ComponentTransportProcessData.h
@@ -27,26 +27,20 @@ namespace ComponentTransport
 {
 struct ComponentTransportProcessData
 {
-    ComponentTransportProcessData(
-        std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap>&&
-            media_map_,
-        Eigen::VectorXd const& specific_body_force_, bool const has_gravity_,
-        bool const non_advective_form_,
-        std::unique_ptr<ChemicalProcessData>&& chemical_process_data_)
-        : media_map(std::move(media_map_)),
-          specific_body_force(specific_body_force_),
-          has_gravity(has_gravity_),
-          non_advective_form(non_advective_form_),
-          chemical_process_data(std::move(chemical_process_data_))
-    {
-    }
-
     std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap>
         media_map;
     Eigen::VectorXd const specific_body_force;
     bool const has_gravity;
     bool const non_advective_form;
     std::unique_ptr<ChemicalProcessData> chemical_process_data;
+
+    const int hydraulic_process_id;
+    // TODO (renchao-lu): This variable is used in the calculation of the
+    // fluid's density and flux, indicating the transport process id. For now it
+    // is assumed that these quantities depend on the first occurring transport
+    // process only. The density and flux calculations have to be extended to
+    // all processes.
+    const int first_transport_process_id;
 };
 
 }  // namespace ComponentTransport
diff --git a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp
index a6e596ea2f2e2fc98ffbe8dda65928bfb2071811..a5ff1598748979ac6531d2ac2a687162b67c472e 100644
--- a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp
+++ b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp
@@ -131,6 +131,8 @@ std::unique_ptr<Process> createComponentTransportProcess(
             it->get().getName(),
             it->get().getNumberOfGlobalComponents());
     }
+    int const hydraulic_process_id = 0;
+    int const first_transport_process_id = use_monolithic_scheme ? 0 : 1;
 
     // Allocate the collected process variables into a two-dimensional vector,
     // depending on what scheme is adopted
@@ -225,9 +227,13 @@ std::unique_ptr<Process> createComponentTransportProcess(
     auto chemical_process_data =
         createChemicalProcessData(chemical_solver_interface);
 
-    ComponentTransportProcessData process_data{
-        std::move(media_map), specific_body_force, has_gravity,
-        non_advective_form, std::move(chemical_process_data)};
+    ComponentTransportProcessData process_data{std::move(media_map),
+                                               specific_body_force,
+                                               has_gravity,
+                                               non_advective_form,
+                                               std::move(chemical_process_data),
+                                               hydraulic_process_id,
+                                               first_transport_process_id};
 
     SecondaryVariableCollection secondary_variables;