diff --git a/Applications/ApplicationsLib/ProjectData.cpp b/Applications/ApplicationsLib/ProjectData.cpp
index 2408ccafed5d48a6753284401ef76d4b9a62a2ea..ce542f45ea2d19eb90e9b5b9e797d9fdb92cbc75 100644
--- a/Applications/ApplicationsLib/ProjectData.cpp
+++ b/Applications/ApplicationsLib/ProjectData.cpp
@@ -517,7 +517,7 @@ void ProjectData::parseProcesses(BaseLib::ConfigTree const& processes_config,
                 ProcessLib::ComponentTransport::createComponentTransportProcess(
                     *_mesh_vec[0], std::move(jacobian_assembler),
                     _process_variables, _parameters, integration_order,
-                    process_config, _mesh_vec, output_directory);
+                    process_config, _mesh_vec, output_directory, _media);
         }
         else
 #endif
diff --git a/Documentation/ProjectFile/prj/processes/process/ComponentTransport/t_molecular_diffusion_coefficient.md b/Documentation/ProjectFile/prj/processes/process/ComponentTransport/t_molecular_diffusion_coefficient.md
deleted file mode 100644
index ba1c95fe91099233c51072710d9817f7dfeac8e8..0000000000000000000000000000000000000000
--- a/Documentation/ProjectFile/prj/processes/process/ComponentTransport/t_molecular_diffusion_coefficient.md
+++ /dev/null
@@ -1,2 +0,0 @@
-Molecular diffusion coefficient \f$D_d\f$ used to compute the hydrodynamic
-dispersion tensor.
diff --git a/Documentation/ProjectFile/prj/processes/process/ComponentTransport/t_solute_dispersivity_longitudinal.md b/Documentation/ProjectFile/prj/processes/process/ComponentTransport/t_solute_dispersivity_longitudinal.md
deleted file mode 100644
index 31b59b61b5f888522149c2bb4c47b192d41b84df..0000000000000000000000000000000000000000
--- a/Documentation/ProjectFile/prj/processes/process/ComponentTransport/t_solute_dispersivity_longitudinal.md
+++ /dev/null
@@ -1,2 +0,0 @@
-The longitudinal dispersivity of chemical species \f$\beta_L\f$ used to compute
-the hydrodynamic dispersion tensor.
diff --git a/Documentation/ProjectFile/prj/processes/process/ComponentTransport/t_solute_dispersivity_transverse.md b/Documentation/ProjectFile/prj/processes/process/ComponentTransport/t_solute_dispersivity_transverse.md
deleted file mode 100644
index e4b2f6360e7d9053f5ce04455d4cc6ce022aab81..0000000000000000000000000000000000000000
--- a/Documentation/ProjectFile/prj/processes/process/ComponentTransport/t_solute_dispersivity_transverse.md
+++ /dev/null
@@ -1,2 +0,0 @@
-The transverse dispersivity of chemical species \f$\beta_T\f$ used to compute
-the hydrodynamic dispersion tensor.
diff --git a/MaterialLib/MPL/PropertyType.h b/MaterialLib/MPL/PropertyType.h
index 0ab8534019f071cb31d506261dc46031ef6c3cca..9ae58b64572a73ca30d73e4bea92a315dd7f7f8a 100644
--- a/MaterialLib/MPL/PropertyType.h
+++ b/MaterialLib/MPL/PropertyType.h
@@ -49,9 +49,11 @@ enum PropertyType : int
     entry_pressure,
     fredlund_parameters,
     heat_capacity,
+    /// used to compute the hydrodynamic dispersion tensor.
     longitudinal_dispersivity,
     molar_mass,
     mole_fraction,
+    /// used to compute the hydrodynamic dispersion tensor.
     molecular_diffusion,
     name,
     permeability,
@@ -67,6 +69,7 @@ enum PropertyType : int
     specific_heat_capacity,
     thermal_conductivity,
     thermal_expansivity,
+    /// used to compute the hydrodynamic dispersion tensor.
     transversal_dispersivity,
     viscosity,
     number_of_properties
diff --git a/ProcessLib/ComponentTransport/ComponentTransportFEM.h b/ProcessLib/ComponentTransport/ComponentTransportFEM.h
index f76ddb5615bf8ca36ac49755094bf437533edf1c..ccfacbe93ea393bd7cc53274f3cba859abd9c7b9 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportFEM.h
+++ b/ProcessLib/ComponentTransport/ComponentTransportFEM.h
@@ -14,6 +14,9 @@
 
 #include "ComponentTransportProcessData.h"
 #include "MaterialLib/Fluid/FluidProperties/FluidProperties.h"
+#include "MaterialLib/MPL/MaterialSpatialDistributionMap.h"
+#include "MaterialLib/MPL/Medium.h"
+#include "MaterialLib/MPL/Property.h"
 #include "MathLib/LinAlg/Eigen/EigenMapTools.h"
 #include "NumLib/DOF/DOFTableUtil.h"
 #include "NumLib/Extrapolation/ExtrapolatableElement.h"
@@ -22,6 +25,7 @@
 #include "NumLib/Function/Interpolation.h"
 #include "ProcessLib/LocalAssemblerInterface.h"
 #include "ProcessLib/Parameter/Parameter.h"
+#include "ProcessLib/ProcessVariable.h"
 #include "ProcessLib/Utils/InitShapeMatrices.h"
 
 namespace ProcessLib
@@ -44,8 +48,6 @@ struct IntegrationPointData final
     EIGEN_MAKE_ALIGNED_OPERATOR_NEW;
 };
 
-const unsigned NUM_NODAL_DOF = 2;
-
 class ComponentTransportLocalAssemblerInterface
     : public ProcessLib::LocalAssemblerInterface,
       public NumLib::ExtrapolatableElement
@@ -62,15 +64,24 @@ template <typename ShapeFunction, typename IntegrationMethod,
           unsigned GlobalDim>
 class LocalAssemblerData : public ComponentTransportLocalAssemblerInterface
 {
+    // Pressure always first
+    static const int pressure_index = 0;
+    static const int pressure_size = ShapeFunction::NPOINTS;
+    // Size of concentration to each component
+    static const int concentration_size = ShapeFunction::NPOINTS;
+
     using ShapeMatricesType = ShapeMatrixPolicyType<ShapeFunction, GlobalDim>;
     using ShapeMatrices = typename ShapeMatricesType::ShapeMatrices;
 
-    using LocalMatrixType = typename ShapeMatricesType::template MatrixType<
-        NUM_NODAL_DOF * ShapeFunction::NPOINTS,
-        NUM_NODAL_DOF * ShapeFunction::NPOINTS>;
-    using LocalVectorType =
-        typename ShapeMatricesType::template VectorType<NUM_NODAL_DOF *
-                                                        ShapeFunction::NPOINTS>;
+    using LocalBlockMatrixType =
+        typename ShapeMatricesType::template MatrixType<pressure_size,
+                                                        pressure_size>;
+    using LocalSegmentVectorType =
+        typename ShapeMatricesType::template VectorType<pressure_size>;
+
+    using LocalMatrixType =
+        Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>;
+    using LocalVectorType = Eigen::Matrix<double, Eigen::Dynamic, 1>;
 
     using NodalVectorType = typename ShapeMatricesType::NodalVectorType;
     using NodalRowVectorType = typename ShapeMatricesType::NodalRowVectorType;
@@ -81,18 +92,25 @@ class LocalAssemblerData : public ComponentTransportLocalAssemblerInterface
     using GlobalDimMatrixType = typename ShapeMatricesType::GlobalDimMatrixType;
 
 public:
-    LocalAssemblerData(MeshLib::Element const& element,
-                       std::size_t const local_matrix_size,
-                       bool is_axially_symmetric,
-                       unsigned const integration_order,
-                       ComponentTransportProcessData const& process_data)
+    LocalAssemblerData(
+        MeshLib::Element const& element,
+        std::size_t const local_matrix_size,
+        bool is_axially_symmetric,
+        unsigned const integration_order,
+        ComponentTransportProcessData const& process_data,
+        std::vector<std::reference_wrapper<ProcessVariable>> const&
+            per_process_variables)
         : _element(element),
           _process_data(process_data),
-          _integration_method(integration_order)
+          _integration_method(integration_order),
+          _per_process_variables(per_process_variables)
     {
         // This assertion is valid only if all nodal d.o.f. use the same shape
         // matrices.
-        assert(local_matrix_size == ShapeFunction::NPOINTS * NUM_NODAL_DOF);
+        // _per_process_variables.size() can represent number of nodal DOFs
+        // regardless of what scheme is adopted.
+        assert(local_matrix_size ==
+               ShapeFunction::NPOINTS * _per_process_variables.size());
         (void)local_matrix_size;
 
         unsigned const n_integration_points =
@@ -120,9 +138,12 @@ public:
                   std::vector<double>& local_b_data) override
     {
         auto const local_matrix_size = local_x.size();
+
+        int const num_nodal_dof = _per_process_variables.size();
+
         // This assertion is valid only if all nodal d.o.f. use the same shape
         // matrices.
-        assert(local_matrix_size == ShapeFunction::NPOINTS * NUM_NODAL_DOF);
+        assert(local_matrix_size == ShapeFunction::NPOINTS * num_nodal_dof);
 
         auto local_M = MathLib::createZeroedMatrix<LocalMatrixType>(
             local_M_data, local_matrix_size, local_matrix_size);
@@ -131,17 +152,75 @@ public:
         auto local_b = MathLib::createZeroedVector<LocalVectorType>(
             local_b_data, local_matrix_size);
 
+        // Get block matrices
+        auto Kpp = local_K.template block<pressure_size, pressure_size>(
+            pressure_index, pressure_index);
+        auto Mpp = local_M.template block<pressure_size, pressure_size>(
+            pressure_index, pressure_index);
+        auto Bp = local_b.template segment<pressure_size>(pressure_index);
+
+        auto local_p = Eigen::Map<const NodalVectorType>(
+            &local_x[pressure_index], pressure_size);
+
+        // Nodal DOFs include pressure
+        auto const number_of_components = num_nodal_dof - 1;
+        for (int component_id = 0; component_id < number_of_components;
+             ++component_id)
+        {
+            /*  Partitioned assembler matrix
+             *  |  pp | pc1 | pc2 | pc3 |
+             *  |-----|-----|-----|-----|
+             *  | c1p | c1c1|  0  |  0  |
+             *  |-----|-----|-----|-----|
+             *  | c2p |  0  | c2c2|  0  |
+             *  |-----|-----|-----|-----|
+             *  | c3p |  0  |  0  | c3c3|
+             */
+            auto concentration_index =
+                pressure_size + component_id * concentration_size;
+
+            auto KCC =
+                local_K.template block<concentration_size, concentration_size>(
+                    concentration_index, concentration_index);
+            auto MCC =
+                local_M.template block<concentration_size, concentration_size>(
+                    concentration_index, concentration_index);
+            auto MCp =
+                local_M.template block<concentration_size, pressure_size>(
+                    concentration_index, pressure_index);
+            auto MpC =
+                local_M.template block<pressure_size, concentration_size>(
+                    pressure_index, concentration_index);
+
+            auto local_C = Eigen::Map<const NodalVectorType>(
+                &local_x[concentration_index], concentration_size);
+
+            assembleBlockMatrices(component_id, t, local_C, local_p, KCC, MCC,
+                                  MCp, MpC, Kpp, Mpp, Bp);
+        }
+    }
+
+    void assembleBlockMatrices(
+        int const component_id, double const t,
+        Eigen::Ref<const NodalVectorType> const& C_nodal_values,
+        Eigen::Ref<const NodalVectorType> const& p_nodal_values,
+        Eigen::Ref<LocalBlockMatrixType> KCC,
+        Eigen::Ref<LocalBlockMatrixType> MCC,
+        Eigen::Ref<LocalBlockMatrixType> MCp,
+        Eigen::Ref<LocalBlockMatrixType> MpC,
+        Eigen::Ref<LocalBlockMatrixType> Kpp,
+        Eigen::Ref<LocalBlockMatrixType> Mpp,
+        Eigen::Ref<LocalSegmentVectorType> Bp)
+    {
+        assert(component_id <=
+               static_cast<int>(_per_process_variables.size() - 1));
+
         unsigned const n_integration_points =
             _integration_method.getNumberOfPoints();
 
         SpatialPosition pos;
         pos.setElementID(_element.getID());
 
-        auto const num_nodes = ShapeFunction::NPOINTS;
-        auto p_nodal_values =
-            Eigen::Map<const NodalVectorType>(&local_x[num_nodes], num_nodes);
-        auto C_nodal_values =
-            Eigen::Map<const NodalVectorType>(&local_x[0], num_nodes);
         auto const& b = _process_data.specific_body_force;
 
         MaterialLib::Fluid::FluidProperty::ArrayType vars;
@@ -149,21 +228,22 @@ public:
         GlobalDimMatrixType const& I(
             GlobalDimMatrixType::Identity(GlobalDim, GlobalDim));
 
-        auto KCC = local_K.template block<num_nodes, num_nodes>(0, 0);
-        auto MCC = local_M.template block<num_nodes, num_nodes>(0, 0);
-        auto MCp = local_M.template block<num_nodes, num_nodes>(0, num_nodes);
-        auto Kpp =
-            local_K.template block<num_nodes, num_nodes>(num_nodes, num_nodes);
-        auto Mpp =
-            local_M.template block<num_nodes, num_nodes>(num_nodes, num_nodes);
-        auto MpC = local_M.template block<num_nodes, num_nodes>(num_nodes, 0);
-        auto Bp = local_b.template block<num_nodes, 1>(num_nodes, 0);
+        // Get material properties
+        auto const& medium =
+            *_process_data.media_map->getMedium(_element.getID());
+        // Select the only valid for component transport liquid phase.
+        auto const& phase = medium.phase("AqueousLiquid");
+
+        // Assume that the component name is the same as the process variable
+        // name. Components are shifted by one because the first one is always
+        // pressure.
+        auto const& component = phase.component(
+            _per_process_variables[component_id + 1].get().getName());
 
         for (std::size_t ip(0); ip < n_integration_points; ++ip)
         {
             pos.setIntegrationPoint(ip);
 
-
             auto const& ip_data = _ip_data[ip];
             auto const& N = ip_data.N;
             auto const& dNdx = ip_data.dNdx;
@@ -171,8 +251,9 @@ public:
 
             double C_int_pt = 0.0;
             double p_int_pt = 0.0;
-            // Order matters: First C, then p!
-            NumLib::shapeFunctionInterpolate(local_x, N, C_int_pt, p_int_pt);
+
+            NumLib::shapeFunctionInterpolate(C_nodal_values, N, C_int_pt);
+            NumLib::shapeFunctionInterpolate(p_nodal_values, N, p_int_pt);
 
             // porosity model
             auto const porosity =
@@ -183,11 +264,16 @@ public:
                 _process_data.retardation_factor(t, pos)[0];
 
             auto const& solute_dispersivity_transverse =
-                _process_data.solute_dispersivity_transverse(t, pos)[0];
+                medium.template value<double>(
+                    MaterialPropertyLib::transversal_dispersivity);
+
             auto const& solute_dispersivity_longitudinal =
-                _process_data.solute_dispersivity_longitudinal(t, pos)[0];
+                medium.template value<double>(
+                    MaterialPropertyLib::longitudinal_dispersivity);
 
             // Use the fluid density model to compute the density
+            // TODO (renchao): concentration of which component as the argument
+            // for calculation of fluid density
             vars[static_cast<int>(
                 MaterialLib::Fluid::PropertyVariableType::C)] = C_int_pt;
             vars[static_cast<int>(
@@ -195,8 +281,10 @@ public:
             auto const density = _process_data.fluid_properties->getValue(
                 MaterialLib::Fluid::FluidPropertyType::Density, vars);
             auto const& decay_rate = _process_data.decay_rate(t, pos)[0];
+
             auto const& molecular_diffusion_coefficient =
-                _process_data.molecular_diffusion_coefficient(t, pos)[0];
+                component.template value<double>(
+                    MaterialPropertyLib::molecular_diffusion);
 
             auto const& K =
                 _process_data.porous_media_properties.getIntrinsicPermeability(
@@ -254,11 +342,19 @@ public:
                      density * N) *
                 w;
 
-            Mpp.noalias() += w * N.transpose() * porosity * drho_dp * N;
             MpC.noalias() += w * N.transpose() * porosity * drho_dC * N;
-            Kpp.noalias() += w * dNdx.transpose() * density * K_over_mu * dNdx;
-            if (_process_data.has_gravity)
-                Bp += w * density * density * dNdx.transpose() * K_over_mu * b;
+
+            // Calculate Mpp, Kpp, and bp in the first loop over components
+            if (component_id == 0)
+            {
+                Mpp.noalias() += w * N.transpose() * porosity * drho_dp * N;
+                Kpp.noalias() +=
+                    w * dNdx.transpose() * density * K_over_mu * dNdx;
+
+                if (_process_data.has_gravity)
+                    Bp += w * density * density * dNdx.transpose() * K_over_mu *
+                          b;
+            }
         }
     }
 
@@ -275,6 +371,15 @@ public:
         assert(!indices.empty());
         auto const local_x = current_solution.get(indices);
 
+        // Assuming that fluid density always depends on the concentration of
+        // the component placed at the first.
+        auto const concentration_index = 1 * ShapeFunction::NPOINTS;
+        // get local_C and local_p
+        auto const C_nodal_values = Eigen::Map<const NodalVectorType>(
+            &local_x[concentration_index], concentration_size);
+        auto const p_nodal_values = Eigen::Map<const NodalVectorType>(
+            &local_x[pressure_index], pressure_size);
+
         cache.clear();
         auto cache_mat = MathLib::createZeroedMatrix<
             Eigen::Matrix<double, GlobalDim, Eigen::Dynamic, Eigen::RowMajor>>(
@@ -284,9 +389,6 @@ public:
         pos.setElementID(_element.getID());
 
         MaterialLib::Fluid::FluidProperty::ArrayType vars;
-        auto const num_nodes = ShapeFunction::NPOINTS;
-        auto const p_nodal_values =
-            Eigen::Map<const NodalVectorType>(&local_x[num_nodes], num_nodes);
 
         for (unsigned ip = 0; ip < n_integration_points; ++ip)
         {
@@ -308,8 +410,10 @@ public:
             {
                 double C_int_pt = 0.0;
                 double p_int_pt = 0.0;
-                NumLib::shapeFunctionInterpolate(local_x, N, C_int_pt,
-                                                 p_int_pt);
+
+                NumLib::shapeFunctionInterpolate(C_nodal_values, N, C_int_pt);
+                NumLib::shapeFunctionInterpolate(p_nodal_values, N, p_int_pt);
+
                 vars[static_cast<int>(
                     MaterialLib::Fluid::PropertyVariableType::C)] = C_int_pt;
                 vars[static_cast<int>(
@@ -359,6 +463,12 @@ public:
             return shape_matrices;
         }();
 
+        auto const concentration_index = 1 * ShapeFunction::NPOINTS;
+        auto const C_nodal_values = Eigen::Map<const NodalVectorType>(
+            &local_x[concentration_index], concentration_size);
+        auto const p_nodal_values = Eigen::Map<const NodalVectorType>(
+            &local_x[pressure_index], pressure_size);
+
         SpatialPosition pos;
         pos.setElementID(_element.getID());
 
@@ -366,8 +476,11 @@ public:
 
         // local_x contains the local concentration and pressure values
         NumLib::shapeFunctionInterpolate(
-            local_x, shape_matrices.N,
-            vars[static_cast<int>(MaterialLib::Fluid::PropertyVariableType::C)],
+            C_nodal_values, shape_matrices.N,
+            vars[static_cast<int>(
+                MaterialLib::Fluid::PropertyVariableType::C)]);
+        NumLib::shapeFunctionInterpolate(
+            p_nodal_values, shape_matrices.N,
             vars[static_cast<int>(
                 MaterialLib::Fluid::PropertyVariableType::p)]);
 
@@ -382,8 +495,6 @@ public:
             MaterialLib::Fluid::FluidPropertyType::Viscosity, vars);
         GlobalDimMatrixType const K_over_mu = K / mu;
 
-        auto const p_nodal_values = Eigen::Map<const NodalVectorType>(
-            &local_x[local_x.size()/2], ShapeFunction::NPOINTS);
         GlobalDimVectorType q =
             -K_over_mu * shape_matrices.dNdx * p_nodal_values;
 
@@ -405,6 +516,9 @@ private:
     ComponentTransportProcessData const& _process_data;
 
     IntegrationMethod const _integration_method;
+    std::vector<std::reference_wrapper<ProcessVariable>> const&
+        _per_process_variables;
+
     std::vector<
         IntegrationPointData<NodalRowVectorType, GlobalDimNodalMatrixType>,
         Eigen::aligned_allocator<
diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp
index 9b2fe551770c92ac57743e18d99ce7a5ea14cbe4..b4a7f72badb08fc3c7505413a0c30861557edcf2 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp
+++ b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp
@@ -50,7 +50,8 @@ void ComponentTransportProcess::initializeConcreteProcess(
     ProcessLib::createLocalAssemblers<LocalAssemblerData>(
         mesh.getDimension(), mesh.getElements(), dof_table,
         pv.getShapeFunctionOrder(), _local_assemblers,
-        mesh.isAxiallySymmetric(), integration_order, _process_data);
+        mesh.isAxiallySymmetric(), integration_order, _process_data,
+        _process_variables[process_id]);
 
     _secondary_variables.addSecondaryVariable(
         "darcy_velocity",
@@ -144,4 +145,3 @@ void ComponentTransportProcess::postTimestepConcreteProcess(
 
 }  // namespace ComponentTransport
 }  // namespace ProcessLib
-
diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcessData.h b/ProcessLib/ComponentTransport/ComponentTransportProcessData.h
index 6989264390cff8b4d7ffe844d18ddcc8a84f6fb6..4ca9c3bf8e3d1bb86d82f2fc6fb73dc91dfe35f0 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportProcessData.h
+++ b/ProcessLib/ComponentTransport/ComponentTransportProcessData.h
@@ -12,10 +12,16 @@
 #include <memory>
 
 #include "MaterialLib/Fluid/FluidProperties/FluidProperties.h"
+#include "MaterialLib/MPL/CreateMaterialSpatialDistributionMap.h"
 #include "MaterialLib/PorousMedium/Porosity/Porosity.h"
 #include "MaterialLib/PorousMedium/Storage/Storage.h"
 #include "MaterialLib/PorousMedium/PorousMediaProperties.h"
 
+namespace MaterialPropertyLib
+{
+class Medium;
+}
+
 namespace ProcessLib
 {
 template <typename ReturnType>
@@ -31,9 +37,8 @@ struct ComponentTransportProcessData
         ProcessLib::Parameter<double> const& fluid_reference_density_,
         std::unique_ptr<MaterialLib::Fluid::FluidProperties>&&
             fluid_properties_,
-        ProcessLib::Parameter<double> const& molecular_diffusion_coefficient_,
-        ProcessLib::Parameter<double> const& solute_dispersivity_longitudinal_,
-        ProcessLib::Parameter<double> const& solute_dispersivity_transverse_,
+        std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap>&&
+            media_map_,
         ProcessLib::Parameter<double> const& retardation_factor_,
         ProcessLib::Parameter<double> const& decay_rate_,
         Eigen::VectorXd const& specific_body_force_,
@@ -41,9 +46,7 @@ struct ComponentTransportProcessData
         : porous_media_properties(std::move(porous_media_properties_)),
           fluid_reference_density(fluid_reference_density_),
           fluid_properties(std::move(fluid_properties_)),
-          molecular_diffusion_coefficient(molecular_diffusion_coefficient_),
-          solute_dispersivity_longitudinal(solute_dispersivity_longitudinal_),
-          solute_dispersivity_transverse(solute_dispersivity_transverse_),
+          media_map(std::move(media_map_)),
           retardation_factor(retardation_factor_),
           decay_rate(decay_rate_),
           specific_body_force(specific_body_force_),
@@ -51,21 +54,7 @@ struct ComponentTransportProcessData
     {
     }
 
-    ComponentTransportProcessData(ComponentTransportProcessData&& other)
-        : porous_media_properties(std::move(other.porous_media_properties)),
-          fluid_reference_density(other.fluid_reference_density),
-          fluid_properties(other.fluid_properties.release()),
-          molecular_diffusion_coefficient(
-              other.molecular_diffusion_coefficient),
-          solute_dispersivity_longitudinal(
-              other.solute_dispersivity_longitudinal),
-          solute_dispersivity_transverse(other.solute_dispersivity_transverse),
-          retardation_factor(other.retardation_factor),
-          decay_rate(other.decay_rate),
-          specific_body_force(other.specific_body_force),
-          has_gravity(other.has_gravity)
-    {
-    }
+    ComponentTransportProcessData(ComponentTransportProcessData&&) = default;
 
     //! Copies are forbidden.
     ComponentTransportProcessData(ComponentTransportProcessData const&) =
@@ -80,9 +69,8 @@ struct ComponentTransportProcessData
     MaterialLib::PorousMedium::PorousMediaProperties porous_media_properties;
     Parameter<double> const& fluid_reference_density;
     std::unique_ptr<MaterialLib::Fluid::FluidProperties> fluid_properties;
-    Parameter<double> const& molecular_diffusion_coefficient;
-    Parameter<double> const& solute_dispersivity_longitudinal;
-    Parameter<double> const& solute_dispersivity_transverse;
+    std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap>
+        media_map;
     Parameter<double> const& retardation_factor;
     Parameter<double> const& decay_rate;
     Eigen::VectorXd const specific_body_force;
diff --git a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp
index 74ce5045f201f31a88622ba82b4e212f1ca7ccd3..db2ecd3bca8c04cf174f35f96e1cdb7c36000463 100644
--- a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp
+++ b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp
@@ -10,6 +10,7 @@
 #include "CreateComponentTransportProcess.h"
 
 #include "MaterialLib/Fluid/FluidProperties/CreateFluidProperties.h"
+#include "MaterialLib/MPL/CreateMaterialSpatialDistributionMap.h"
 #include "MaterialLib/PorousMedium/CreatePorousMediaProperties.h"
 
 #include "MeshLib/IO/readMeshFromFile.h"
@@ -21,7 +22,6 @@
 
 #include "ComponentTransportProcess.h"
 #include "ComponentTransportProcessData.h"
-
 namespace ProcessLib
 {
 namespace ComponentTransport
@@ -34,7 +34,8 @@ std::unique_ptr<Process> createComponentTransportProcess(
     unsigned const integration_order,
     BaseLib::ConfigTree const& config,
     std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes,
-    std::string const& output_directory)
+    std::string const& output_directory,
+    std::map<int, std::unique_ptr<MaterialPropertyLib::Medium>> const& media)
 {
     //! \ogs_file_param{prj__processes__process__type}
     config.checkConfigParameter("type", "ComponentTransport");
@@ -53,28 +54,46 @@ std::unique_ptr<Process> createComponentTransportProcess(
 
     std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>
         process_variables;
+
+    // Collect all process variables in a vector before allocation
+    // pressure first, concentration then
+    auto const collected_process_variables = findProcessVariables(
+        variables, pv_config,
+        {//! \ogs_file_param_special{prj__processes__process__ComponentTransport__process_variables__pressure}
+         "pressure",
+         //! \ogs_file_param_special{prj__processes__process__ComponentTransport__process_variables__concentration}
+         "concentration"});
+
+    // Check number of components for each process variable
+    auto it = std::find_if(
+        collected_process_variables.cbegin(),
+        collected_process_variables.cend(),
+        [](std::reference_wrapper<ProcessLib::ProcessVariable> const& pv) {
+            return pv.get().getNumberOfComponents() != 1;
+        });
+
+    if (it != collected_process_variables.end())
+        OGS_FATAL(
+            "Number of components for process variable '%s' should be 1 rather "
+            "than %d.",
+            it->get().getName().c_str(),
+            it->get().getNumberOfComponents());
+
+    // Allocate the collected process variables into a two-dimensional vector,
+    // depending on what scheme is adopted
     if (use_monolithic_scheme)  // monolithic scheme.
     {
-        auto per_process_variables = findProcessVariables(
-            variables, pv_config,
-            {
-            //! \ogs_file_param_special{prj__processes__process__ComponentTransport__process_variables__concentration}
-             "concentration",
-             //! \ogs_file_param_special{prj__processes__process__ComponentTransport__process_variables__pressure}
-             "pressure"});
-        process_variables.push_back(std::move(per_process_variables));
+        process_variables.push_back(std::move(collected_process_variables));
     }
     else  // staggered scheme.
     {
-        std::array<std::string, 2> variable_names = {
-            {"concentration",
-             "pressure"}};  // double-braces required in C++11 (not in C++14)
+        std::vector<std::reference_wrapper<ProcessLib::ProcessVariable>>
+            per_process_variable;
 
-        for (int i = 0; i < 2; i++)
+        for (auto& pv : collected_process_variables)
         {
-            auto per_process_variables =
-                findProcessVariables(variables, pv_config, {variable_names[i]});
-            process_variables.push_back(std::move(per_process_variables));
+            per_process_variable.emplace_back(pv);
+            process_variables.push_back(std::move(per_process_variable));
         }
     }
 
@@ -96,30 +115,6 @@ std::unique_ptr<Process> createComponentTransportProcess(
     DBUG("Use '%s' as fluid_reference_density parameter.",
          fluid_reference_density.name.c_str());
 
-    // Parameter for the longitudinal molecular diffusion coefficient.
-    auto const& molecular_diffusion_coefficient = findParameter<double>(
-        config,
-        //! \ogs_file_param_special{prj__processes__process__ComponentTransport__molecular_diffusion_coefficient}
-        "molecular_diffusion_coefficient", parameters, 1);
-    DBUG("Use '%s' as molecular diffusion coefficient parameter.",
-         molecular_diffusion_coefficient.name.c_str());
-
-    // Parameter for the longitudinal solute dispersivity.
-    auto const& solute_dispersivity_longitudinal = findParameter<double>(
-        config,
-        //! \ogs_file_param_special{prj__processes__process__ComponentTransport__solute_dispersivity_longitudinal}
-        "solute_dispersivity_longitudinal", parameters, 1);
-    DBUG("Use '%s' as longitudinal solute dispersivity parameter.",
-         solute_dispersivity_longitudinal.name.c_str());
-
-    // Parameter for the transverse solute dispersivity.
-    auto const& solute_dispersivity_transverse = findParameter<double>(
-        config,
-        //! \ogs_file_param_special{prj__processes__process__ComponentTransport__solute_dispersivity_transverse}
-        "solute_dispersivity_transverse", parameters, 1);
-    DBUG("Use '%s' as transverse solute dispersivity parameter.",
-         solute_dispersivity_transverse.name.c_str());
-
     // Parameter for the retardation factor.
     auto const& retardation_factor =
         findParameter<double>(config,
@@ -150,13 +145,14 @@ std::unique_ptr<Process> createComponentTransportProcess(
         std::copy_n(b.data(), b.size(), specific_body_force.data());
     }
 
+    auto media_map =
+        MaterialPropertyLib::createMaterialSpatialDistributionMap(media, mesh);
+
     ComponentTransportProcessData process_data{
         std::move(porous_media_properties),
         fluid_reference_density,
         std::move(fluid_properties),
-        molecular_diffusion_coefficient,
-        solute_dispersivity_longitudinal,
-        solute_dispersivity_transverse,
+        std::move(media_map),
         retardation_factor,
         decay_rate,
         specific_body_force,
diff --git a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.h b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.h
index 4a198adba394f731de80eba1726d2916bacd9960..beb66dd3180dabd51de7c67001bcf4cfd51a1d23 100644
--- a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.h
+++ b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.h
@@ -12,6 +12,11 @@
 #include <memory>
 #include "ProcessLib/Process.h"
 
+namespace MaterialPropertyLib
+{
+class Medium;
+}
+
 namespace ProcessLib
 {
 namespace ComponentTransport
@@ -24,7 +29,8 @@ std::unique_ptr<Process> createComponentTransportProcess(
     unsigned const integration_order,
     BaseLib::ConfigTree const& config,
     std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes,
-    std::string const& output_directory);
+    std::string const& output_directory,
+    std::map<int, std::unique_ptr<MaterialPropertyLib::Medium>> const& media);
 
 }  // namespace ComponentTransport
 }  // namespace ProcessLib
diff --git a/ProcessLib/ComponentTransport/Tests.cmake b/ProcessLib/ComponentTransport/Tests.cmake
index bc2faebfba186b022ac00f973b3ba4a85fbf59c7..686af4ff81106087475df5192d6efc63d8321ddf 100644
--- a/ProcessLib/ComponentTransport/Tests.cmake
+++ b/ProcessLib/ComponentTransport/Tests.cmake
@@ -7,12 +7,29 @@ AddTest(
     TESTER vtkdiff
     REQUIREMENTS NOT OGS_USE_MPI
     DIFF_DATA
-    DiffusionOnly_pcs_0_ts_1_t_1.000000_expected.vtu DiffusionOnly_pcs_0_ts_1_t_1.000000.vtu linear_1_to_0 concentration 1e-7 1e-10
+    DiffusionOnly_pcs_0_ts_1_t_1.000000_expected.vtu DiffusionOnly_pcs_0_ts_1_t_1.000000.vtu linear_1_to_0 Si 1e-7 1e-10
     DiffusionOnly_pcs_0_ts_1_t_1.000000_expected.vtu DiffusionOnly_pcs_0_ts_1_t_1.000000.vtu zero pressure 1e-7 1e-10
     DiffusionOnly_pcs_0_ts_1_t_1.000000_expected.vtu DiffusionOnly_pcs_0_ts_1_t_1.000000.vtu zero_vector_2d darcy_velocity 1e-7 1e-10
     VIS DiffusionOnly_pcs_0_ts_1_t_1.000000.vtu
 )
 
+AddTest(
+    NAME 2D_MultiComponentTransport_ConcentrationDiffusionOnly
+    PATH Parabolic/ComponentTransport/SimpleSynthetics
+    EXECUTABLE ogs
+    EXECUTABLE_ARGS ConcentrationDiffusionOnly_3Components.prj
+    WRAPPER time
+    TESTER vtkdiff
+    REQUIREMENTS NOT OGS_USE_MPI
+    DIFF_DATA
+    DiffusionOnly_pcs_0_ts_1_t_1.000000_expected.vtu DiffusionOnly_3Components_pcs_0_ts_1_t_1.000000.vtu linear_1_to_0 Si 1e-7 1e-10
+    DiffusionOnly_pcs_0_ts_1_t_1.000000_expected.vtu DiffusionOnly_3Components_pcs_0_ts_1_t_1.000000.vtu linear_1_to_0 Al 1e-7 1e-10
+    DiffusionOnly_pcs_0_ts_1_t_1.000000_expected.vtu DiffusionOnly_3Components_pcs_0_ts_1_t_1.000000.vtu linear_1_to_0 Cl 1e-7 1e-10
+    DiffusionOnly_pcs_0_ts_1_t_1.000000_expected.vtu DiffusionOnly_3Components_pcs_0_ts_1_t_1.000000.vtu zero pressure 1e-7 1e-10
+    DiffusionOnly_pcs_0_ts_1_t_1.000000_expected.vtu DiffusionOnly_3Components_pcs_0_ts_1_t_1.000000.vtu zero_vector_2d darcy_velocity 1e-7 1e-10
+    VIS DiffusionOnly_pcs_0_ts_1_t_1.000000.vtu
+)
+
 AddTest(
     NAME 2D_ComponentTransport_ConcentrationDiffusionAndStorage
     PATH Parabolic/ComponentTransport/SimpleSynthetics
@@ -22,10 +39,10 @@ AddTest(
     TESTER vtkdiff
     REQUIREMENTS NOT OGS_USE_MPI
     DIFF_DATA
-    DiffusionAndStorage_pcs_0_ts_100_t_0.150000_expected.vtu DiffusionAndStorage_pcs_0_ts_100_t_0.150000.vtu concentration concentration 1e-7 1e-10
+    DiffusionAndStorage_pcs_0_ts_100_t_0.150000_expected.vtu DiffusionAndStorage_pcs_0_ts_100_t_0.150000.vtu concentration Si 1e-7 1e-10
     DiffusionAndStorage_pcs_0_ts_100_t_0.150000_expected.vtu DiffusionAndStorage_pcs_0_ts_100_t_0.150000.vtu pressure pressure 1e-7 1e-10
     DiffusionAndStorage_pcs_0_ts_100_t_0.150000_expected.vtu DiffusionAndStorage_pcs_0_ts_100_t_0.150000.vtu darcy_velocity darcy_velocity 1e-7 1e-10
-    DiffusionAndStorage_pcs_0_ts_134_t_1.500000_expected.vtu DiffusionAndStorage_pcs_0_ts_134_t_1.500000.vtu concentration concentration 1e-7 1e-10
+    DiffusionAndStorage_pcs_0_ts_134_t_1.500000_expected.vtu DiffusionAndStorage_pcs_0_ts_134_t_1.500000.vtu concentration Si 1e-7 1e-10
     DiffusionAndStorage_pcs_0_ts_134_t_1.500000_expected.vtu DiffusionAndStorage_pcs_0_ts_134_t_1.500000.vtu zero pressure 1e-7 1e-10
     DiffusionAndStorage_pcs_0_ts_134_t_1.500000_expected.vtu DiffusionAndStorage_pcs_0_ts_134_t_1.500000.vtu zero_vector_2d darcy_velocity 1e-7 1e-10
     VIS DiffusionAndStorage_pcs_0_ts_134_t_1.500000.vtu
@@ -41,13 +58,13 @@ AddTest(
     REQUIREMENTS NOT OGS_USE_MPI
     RUNTIME 23
     DIFF_DATA
-    DiffusionAndStorageAndAdvection_pcs_0_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_100_t_5.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvection_pcs_0_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_200_t_35.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvection_pcs_0_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_300_t_155.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvection_pcs_0_ts_400_t_315.700000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_400_t_315.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvection_pcs_0_ts_500_t_495.700000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_500_t_495.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvection_pcs_0_ts_600_t_720.700000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_600_t_720.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvection_pcs_0_ts_672_t_900.000000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_672_t_900.000000.vtu concentration concentration 1e-7 1e-10
+    DiffusionAndStorageAndAdvection_pcs_0_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_100_t_5.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvection_pcs_0_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_200_t_35.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvection_pcs_0_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_300_t_155.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvection_pcs_0_ts_400_t_315.700000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_400_t_315.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvection_pcs_0_ts_500_t_495.700000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_500_t_495.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvection_pcs_0_ts_600_t_720.700000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_600_t_720.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvection_pcs_0_ts_672_t_900.000000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_672_t_900.000000.vtu concentration Si 1e-7 1e-10
     DiffusionAndStorageAndAdvection_pcs_0_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_100_t_5.700000.vtu pressure pressure 1e-7 1e-10
     DiffusionAndStorageAndAdvection_pcs_0_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_200_t_35.700000.vtu pressure pressure 1e-7 1e-10
     DiffusionAndStorageAndAdvection_pcs_0_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvection_pcs_0_ts_300_t_155.700000.vtu pressure pressure 1e-7 1e-10
@@ -75,12 +92,12 @@ AddTest(
     REQUIREMENTS NOT OGS_USE_MPI
     RUNTIME 46
     DIFF_DATA
-    DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1000_t_2500.000000_expected.vtu DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1000_t_2500.000000.vtu concentration concentration 1e-5 1e-10
-    DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1100_t_5000.000000_expected.vtu DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1100_t_5000.000000.vtu concentration concentration 1e-5 1e-10
-    DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1200_t_7500.000000_expected.vtu DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1200_t_7500.000000.vtu concentration concentration 1e-5 1e-10
-    DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1300_t_10000.000000_expected.vtu DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1300_t_10000.000000.vtu concentration concentration 1e-5 1e-10
-    DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1400_t_12500.000000_expected.vtu DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1400_t_12500.000000.vtu concentration concentration 1e-5 1e-10
-    DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1500_t_15000.000000_expected.vtu DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1500_t_15000.000000.vtu concentration concentration 1e-5 1e-10
+    DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1000_t_2500.000000_expected.vtu DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1000_t_2500.000000.vtu concentration Si 1e-5 1e-10
+    DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1100_t_5000.000000_expected.vtu DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1100_t_5000.000000.vtu concentration Si 1e-5 1e-10
+    DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1200_t_7500.000000_expected.vtu DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1200_t_7500.000000.vtu concentration Si 1e-5 1e-10
+    DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1300_t_10000.000000_expected.vtu DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1300_t_10000.000000.vtu concentration Si 1e-5 1e-10
+    DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1400_t_12500.000000_expected.vtu DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1400_t_12500.000000.vtu concentration Si 1e-5 1e-10
+    DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1500_t_15000.000000_expected.vtu DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1500_t_15000.000000.vtu concentration Si 1e-5 1e-10
     DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1000_t_2500.000000_expected.vtu DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1000_t_2500.000000.vtu pressure pressure 1e-5 1e-10
     DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1100_t_5000.000000_expected.vtu DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1100_t_5000.000000.vtu pressure pressure 1e-5 1e-10
     DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1200_t_7500.000000_expected.vtu DiffusionAndStorageAndGravityAndDispersionHalf_pcs_0_ts_1200_t_7500.000000.vtu pressure pressure 1e-5 1e-10
@@ -106,20 +123,20 @@ AddTest(
     REQUIREMENTS NOT OGS_USE_MPI
     RUNTIME 26
     DIFF_DATA
-    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_100_t_5.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_200_t_35.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_300_t_155.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_400_t_315.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_400_t_315.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_500_t_495.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_500_t_495.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_600_t_720.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_600_t_720.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_672_t_900.000000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_672_t_900.000000.vtu concentration concentration 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_100_t_5.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_200_t_35.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_300_t_155.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_400_t_315.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_400_t_315.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_500_t_495.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_500_t_495.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_600_t_720.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_600_t_720.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_672_t_900.000000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_672_t_900.000000.vtu concentration Si 1e-7 1e-10
     DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_100_t_5.700000.vtu pressure pressure 1e-7 1e-10
     DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_200_t_35.700000.vtu pressure pressure 1e-7 1e-10
     DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_300_t_155.700000.vtu pressure pressure 1e-7 1e-10
     DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_400_t_315.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_400_t_315.700000.vtu pressure pressure 1e-7 1e-10
     DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_500_t_495.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_500_t_495.700000.vtu pressure pressure 1e-7 1e-10
     DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_600_t_720.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_600_t_720.700000.vtu pressure pressure 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_672_t_900.000000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_672_t_900.000000.vtu pressure pressure 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_672_t_900.000000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_672_t_900.000000.vtu pressure pressure 2e-7 1e-10
     DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_100_t_5.700000.vtu darcy_velocity darcy_velocity 1e-7 1e-10
     DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_200_t_35.700000.vtu darcy_velocity darcy_velocity 1e-7 1e-10
     DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_pcs_0_ts_300_t_155.700000.vtu darcy_velocity darcy_velocity 1e-7 1e-10
@@ -140,13 +157,13 @@ AddTest(
     REQUIREMENTS NOT OGS_USE_MPI
     RUNTIME 23
     DIFF_DATA
-    DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_100_t_5.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_200_t_35.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_300_t_155.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_400_t_315.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_400_t_315.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_500_t_495.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_500_t_495.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_600_t_720.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_600_t_720.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_672_t_900.000000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_672_t_900.000000.vtu concentration concentration 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_100_t_5.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_200_t_35.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_300_t_155.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_400_t_315.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_400_t_315.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_500_t_495.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_500_t_495.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_600_t_720.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_600_t_720.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_672_t_900.000000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_672_t_900.000000.vtu concentration Si 1e-7 1e-10
     DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_100_t_5.700000.vtu pressure pressure 1e-7 1e-10
     DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_200_t_35.700000.vtu pressure pressure 1e-7 1e-10
     DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDecay_pcs_0_ts_300_t_155.700000.vtu pressure pressure 1e-7 1e-10
@@ -174,13 +191,13 @@ AddTest(
     REQUIREMENTS NOT OGS_USE_MPI
     RUNTIME 25
     DIFF_DATA
-    DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_100_t_5.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_200_t_35.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_300_t_155.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_400_t_315.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_400_t_315.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_500_t_495.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_500_t_495.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_600_t_720.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_600_t_720.700000.vtu concentration concentration 1e-7 1e-10
-    DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_672_t_900.000000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_672_t_900.000000.vtu concentration concentration 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_100_t_5.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_200_t_35.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_300_t_155.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_400_t_315.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_400_t_315.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_500_t_495.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_500_t_495.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_600_t_720.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_600_t_720.700000.vtu concentration Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_672_t_900.000000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_672_t_900.000000.vtu concentration Si 1e-7 1e-10
     DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_100_t_5.700000.vtu pressure pressure 1e-7 1e-10
     DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_200_t_35.700000.vtu pressure pressure 1e-7 1e-10
     DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersionHalf_pcs_0_ts_300_t_155.700000.vtu pressure pressure 1e-7 1e-10
@@ -208,12 +225,12 @@ AddTest(
     REQUIREMENTS NOT OGS_USE_MPI
     DIFF_DATA
     cube_1x1x1_hex_1e3_complete_surface.vtu flux_1e3_t_1.000000.vtu flux flux 1e-10 1e-16
-    cube_1x1x1_hex_1e3_left_pcs_0_ts_0_t_0.000000.vtu cube_1x1x1_hex_1e3_left_pcs_0_ts_0_t_0.000000.vtu concentration concentration 1e-10 1e-16
-    cube_1x1x1_hex_1e3_left_pcs_0_ts_1_t_1.000000.vtu cube_1x1x1_hex_1e3_left_pcs_0_ts_1_t_1.000000.vtu concentration concentration 1e-10 1e-16
+    cube_1x1x1_hex_1e3_left_pcs_0_ts_0_t_0.000000.vtu cube_1x1x1_hex_1e3_left_pcs_0_ts_0_t_0.000000.vtu concentration Si 1e-10 1e-16
+    cube_1x1x1_hex_1e3_left_pcs_0_ts_1_t_1.000000.vtu cube_1x1x1_hex_1e3_left_pcs_0_ts_1_t_1.000000.vtu concentration Si 1e-10 1e-16
     cube_1x1x1_hex_1e3_left_pcs_0_ts_0_t_0.000000.vtu cube_1x1x1_hex_1e3_left_pcs_0_ts_0_t_0.000000.vtu pressure pressure 1e-10 1e-16
     cube_1x1x1_hex_1e3_left_pcs_0_ts_1_t_1.000000.vtu cube_1x1x1_hex_1e3_left_pcs_0_ts_1_t_1.000000.vtu pressure pressure 1e-10 1e-16
-    cube_1x1x1_hex_1e3_right_pcs_0_ts_0_t_0.000000.vtu cube_1x1x1_hex_1e3_right_pcs_0_ts_0_t_0.000000.vtu concentration concentration 1e-10 1e-16
-    cube_1x1x1_hex_1e3_right_pcs_0_ts_1_t_1.000000.vtu cube_1x1x1_hex_1e3_right_pcs_0_ts_1_t_1.000000.vtu concentration concentration 1e-10 1e-16
+    cube_1x1x1_hex_1e3_right_pcs_0_ts_0_t_0.000000.vtu cube_1x1x1_hex_1e3_right_pcs_0_ts_0_t_0.000000.vtu concentration Si 1e-10 1e-16
+    cube_1x1x1_hex_1e3_right_pcs_0_ts_1_t_1.000000.vtu cube_1x1x1_hex_1e3_right_pcs_0_ts_1_t_1.000000.vtu concentration Si 1e-10 1e-16
     cube_1x1x1_hex_1e3_right_pcs_0_ts_0_t_0.000000.vtu cube_1x1x1_hex_1e3_right_pcs_0_ts_0_t_0.000000.vtu pressure pressure 1e-10 1e-16
     cube_1x1x1_hex_1e3_right_pcs_0_ts_1_t_1.000000.vtu cube_1x1x1_hex_1e3_right_pcs_0_ts_1_t_1.000000.vtu pressure pressure 1e-10 1e-16
 )
@@ -227,14 +244,14 @@ AddTest(
     TESTER vtkdiff
     REQUIREMENTS NOT OGS_USE_MPI
     DIFF_DATA
-    Goswami_Component_Transport_pcs_0_ts_1185_t_600.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_1185_t_600.000000.vtu concentration concentration 1e-1 1e-5
-    Goswami_Component_Transport_pcs_0_ts_1785_t_1200.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_1785_t_1200.000000.vtu concentration concentration 1e-1 1e-5
-    Goswami_Component_Transport_pcs_0_ts_2385_t_1800.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_2385_t_1800.000000.vtu concentration concentration 1e-1 1e-5
-    Goswami_Component_Transport_pcs_0_ts_2985_t_2400.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_2985_t_2400.000000.vtu concentration concentration 1e-1 1e-5
-    Goswami_Component_Transport_pcs_0_ts_3585_t_3000.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_3585_t_3000.000000.vtu concentration concentration 1e-1 1e-5
-    Goswami_Component_Transport_pcs_0_ts_4185_t_3600.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_4185_t_3600.000000.vtu concentration concentration 1e-1 1e-5
-    Goswami_Component_Transport_pcs_0_ts_4785_t_4200.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_4785_t_4200.000000.vtu concentration concentration 1e-1 1e-5
-    Goswami_Component_Transport_pcs_0_ts_5385_t_4800.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_5385_t_4800.000000.vtu concentration concentration 1e-1 1e-5
+    Goswami_Component_Transport_pcs_0_ts_1185_t_600.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_1185_t_600.000000.vtu concentration Si 1e-1 1e-5
+    Goswami_Component_Transport_pcs_0_ts_1785_t_1200.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_1785_t_1200.000000.vtu concentration Si 1e-1 1e-5
+    Goswami_Component_Transport_pcs_0_ts_2385_t_1800.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_2385_t_1800.000000.vtu concentration Si 1e-1 1e-5
+    Goswami_Component_Transport_pcs_0_ts_2985_t_2400.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_2985_t_2400.000000.vtu concentration Si 1e-1 1e-5
+    Goswami_Component_Transport_pcs_0_ts_3585_t_3000.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_3585_t_3000.000000.vtu concentration Si 1e-1 1e-5
+    Goswami_Component_Transport_pcs_0_ts_4185_t_3600.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_4185_t_3600.000000.vtu concentration Si 1e-1 1e-5
+    Goswami_Component_Transport_pcs_0_ts_4785_t_4200.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_4785_t_4200.000000.vtu concentration Si 1e-1 1e-5
+    Goswami_Component_Transport_pcs_0_ts_5385_t_4800.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_5385_t_4800.000000.vtu concentration Si 1e-1 1e-5
     Goswami_Component_Transport_pcs_0_ts_1185_t_600.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_1185_t_600.000000.vtu pressure pressure 1e-1 1e-5
     Goswami_Component_Transport_pcs_0_ts_1785_t_1200.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_1785_t_1200.000000.vtu pressure pressure 1e-1 1e-5
     Goswami_Component_Transport_pcs_0_ts_2385_t_1800.000000_expected.vtu Goswami_Component_Transport_pcs_0_ts_2385_t_1800.000000.vtu pressure pressure 1e-1 1e-5
@@ -288,32 +305,32 @@ AddTest(
     elder_pcs_0_ts_500_t_131490000.000000_reference.vtu elder_pcs_0_ts_500_t_131490000.000000.vtu pressure pressure 1e-1 1e-5
     elder_pcs_0_ts_60_t_15778800.000000_reference.vtu elder_pcs_0_ts_60_t_15778800.000000.vtu pressure pressure 1e-1 1e-5
     elder_pcs_0_ts_80_t_21038400.000000_reference.vtu elder_pcs_0_ts_80_t_21038400.000000.vtu pressure pressure 1e-1 1e-5
-    elder_pcs_0_ts_0_t_0.000000_reference.vtu elder_pcs_0_ts_0_t_0.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_100_t_26298000.000000_reference.vtu elder_pcs_0_ts_100_t_26298000.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_120_t_31557600.000000_reference.vtu elder_pcs_0_ts_120_t_31557600.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_140_t_36817200.000000_reference.vtu elder_pcs_0_ts_140_t_36817200.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_160_t_42076800.000000_reference.vtu elder_pcs_0_ts_160_t_42076800.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_180_t_47336400.000000_reference.vtu elder_pcs_0_ts_180_t_47336400.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_200_t_52596000.000000_reference.vtu elder_pcs_0_ts_200_t_52596000.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_20_t_5259600.000000_reference.vtu elder_pcs_0_ts_20_t_5259600.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_220_t_57855600.000000_reference.vtu elder_pcs_0_ts_220_t_57855600.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_240_t_63115200.000000_reference.vtu elder_pcs_0_ts_240_t_63115200.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_260_t_68374800.000000_reference.vtu elder_pcs_0_ts_260_t_68374800.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_280_t_73634400.000000_reference.vtu elder_pcs_0_ts_280_t_73634400.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_300_t_78894000.000000_reference.vtu elder_pcs_0_ts_300_t_78894000.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_320_t_84153600.000000_reference.vtu elder_pcs_0_ts_320_t_84153600.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_340_t_89413200.000000_reference.vtu elder_pcs_0_ts_340_t_89413200.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_360_t_94672800.000000_reference.vtu elder_pcs_0_ts_360_t_94672800.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_380_t_99932400.000000_reference.vtu elder_pcs_0_ts_380_t_99932400.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_400_t_105192000.000000_reference.vtu elder_pcs_0_ts_400_t_105192000.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_40_t_10519200.000000_reference.vtu elder_pcs_0_ts_40_t_10519200.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_420_t_110451600.000000_reference.vtu elder_pcs_0_ts_420_t_110451600.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_440_t_115711200.000000_reference.vtu elder_pcs_0_ts_440_t_115711200.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_460_t_120970800.000000_reference.vtu elder_pcs_0_ts_460_t_120970800.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_480_t_126230400.000000_reference.vtu elder_pcs_0_ts_480_t_126230400.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_500_t_131490000.000000_reference.vtu elder_pcs_0_ts_500_t_131490000.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_60_t_15778800.000000_reference.vtu elder_pcs_0_ts_60_t_15778800.000000.vtu conc conc 1e-1 1e-5
-    elder_pcs_0_ts_80_t_21038400.000000_reference.vtu elder_pcs_0_ts_80_t_21038400.000000.vtu conc conc 1e-1 1e-5
+    elder_pcs_0_ts_0_t_0.000000_reference.vtu elder_pcs_0_ts_0_t_0.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_100_t_26298000.000000_reference.vtu elder_pcs_0_ts_100_t_26298000.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_120_t_31557600.000000_reference.vtu elder_pcs_0_ts_120_t_31557600.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_140_t_36817200.000000_reference.vtu elder_pcs_0_ts_140_t_36817200.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_160_t_42076800.000000_reference.vtu elder_pcs_0_ts_160_t_42076800.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_180_t_47336400.000000_reference.vtu elder_pcs_0_ts_180_t_47336400.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_200_t_52596000.000000_reference.vtu elder_pcs_0_ts_200_t_52596000.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_20_t_5259600.000000_reference.vtu elder_pcs_0_ts_20_t_5259600.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_220_t_57855600.000000_reference.vtu elder_pcs_0_ts_220_t_57855600.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_240_t_63115200.000000_reference.vtu elder_pcs_0_ts_240_t_63115200.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_260_t_68374800.000000_reference.vtu elder_pcs_0_ts_260_t_68374800.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_280_t_73634400.000000_reference.vtu elder_pcs_0_ts_280_t_73634400.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_300_t_78894000.000000_reference.vtu elder_pcs_0_ts_300_t_78894000.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_320_t_84153600.000000_reference.vtu elder_pcs_0_ts_320_t_84153600.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_340_t_89413200.000000_reference.vtu elder_pcs_0_ts_340_t_89413200.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_360_t_94672800.000000_reference.vtu elder_pcs_0_ts_360_t_94672800.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_380_t_99932400.000000_reference.vtu elder_pcs_0_ts_380_t_99932400.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_400_t_105192000.000000_reference.vtu elder_pcs_0_ts_400_t_105192000.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_40_t_10519200.000000_reference.vtu elder_pcs_0_ts_40_t_10519200.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_420_t_110451600.000000_reference.vtu elder_pcs_0_ts_420_t_110451600.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_440_t_115711200.000000_reference.vtu elder_pcs_0_ts_440_t_115711200.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_460_t_120970800.000000_reference.vtu elder_pcs_0_ts_460_t_120970800.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_480_t_126230400.000000_reference.vtu elder_pcs_0_ts_480_t_126230400.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_500_t_131490000.000000_reference.vtu elder_pcs_0_ts_500_t_131490000.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_60_t_15778800.000000_reference.vtu elder_pcs_0_ts_60_t_15778800.000000.vtu conc Si 1e-1 1e-5
+    elder_pcs_0_ts_80_t_21038400.000000_reference.vtu elder_pcs_0_ts_80_t_21038400.000000.vtu conc Si 1e-1 1e-5
 )
 
 AddTest(
@@ -351,32 +368,32 @@ AddTest(
     elder_pcs_0_ts_500_t_131490000.000000_reference.vtu  elder_python_pcs_0_ts_500_t_131490000.000000.vtu  pressure  pressure  1e-1  1e-5
     elder_pcs_0_ts_60_t_15778800.000000_reference.vtu    elder_python_pcs_0_ts_60_t_15778800.000000.vtu    pressure  pressure  1e-1  1e-5
     elder_pcs_0_ts_80_t_21038400.000000_reference.vtu    elder_python_pcs_0_ts_80_t_21038400.000000.vtu    pressure  pressure  1e-1  1e-5
-    elder_pcs_0_ts_0_t_0.000000_reference.vtu            elder_python_pcs_0_ts_0_t_0.000000.vtu            conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_100_t_26298000.000000_reference.vtu   elder_python_pcs_0_ts_100_t_26298000.000000.vtu   conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_120_t_31557600.000000_reference.vtu   elder_python_pcs_0_ts_120_t_31557600.000000.vtu   conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_140_t_36817200.000000_reference.vtu   elder_python_pcs_0_ts_140_t_36817200.000000.vtu   conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_160_t_42076800.000000_reference.vtu   elder_python_pcs_0_ts_160_t_42076800.000000.vtu   conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_180_t_47336400.000000_reference.vtu   elder_python_pcs_0_ts_180_t_47336400.000000.vtu   conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_200_t_52596000.000000_reference.vtu   elder_python_pcs_0_ts_200_t_52596000.000000.vtu   conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_20_t_5259600.000000_reference.vtu     elder_python_pcs_0_ts_20_t_5259600.000000.vtu     conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_220_t_57855600.000000_reference.vtu   elder_python_pcs_0_ts_220_t_57855600.000000.vtu   conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_240_t_63115200.000000_reference.vtu   elder_python_pcs_0_ts_240_t_63115200.000000.vtu   conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_260_t_68374800.000000_reference.vtu   elder_python_pcs_0_ts_260_t_68374800.000000.vtu   conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_280_t_73634400.000000_reference.vtu   elder_python_pcs_0_ts_280_t_73634400.000000.vtu   conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_300_t_78894000.000000_reference.vtu   elder_python_pcs_0_ts_300_t_78894000.000000.vtu   conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_320_t_84153600.000000_reference.vtu   elder_python_pcs_0_ts_320_t_84153600.000000.vtu   conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_340_t_89413200.000000_reference.vtu   elder_python_pcs_0_ts_340_t_89413200.000000.vtu   conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_360_t_94672800.000000_reference.vtu   elder_python_pcs_0_ts_360_t_94672800.000000.vtu   conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_380_t_99932400.000000_reference.vtu   elder_python_pcs_0_ts_380_t_99932400.000000.vtu   conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_400_t_105192000.000000_reference.vtu  elder_python_pcs_0_ts_400_t_105192000.000000.vtu  conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_40_t_10519200.000000_reference.vtu    elder_python_pcs_0_ts_40_t_10519200.000000.vtu    conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_420_t_110451600.000000_reference.vtu  elder_python_pcs_0_ts_420_t_110451600.000000.vtu  conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_440_t_115711200.000000_reference.vtu  elder_python_pcs_0_ts_440_t_115711200.000000.vtu  conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_460_t_120970800.000000_reference.vtu  elder_python_pcs_0_ts_460_t_120970800.000000.vtu  conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_480_t_126230400.000000_reference.vtu  elder_python_pcs_0_ts_480_t_126230400.000000.vtu  conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_500_t_131490000.000000_reference.vtu  elder_python_pcs_0_ts_500_t_131490000.000000.vtu  conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_60_t_15778800.000000_reference.vtu    elder_python_pcs_0_ts_60_t_15778800.000000.vtu    conc      conc      1e-1  1e-5
-    elder_pcs_0_ts_80_t_21038400.000000_reference.vtu    elder_python_pcs_0_ts_80_t_21038400.000000.vtu    conc      conc      1e-1  1e-5
+    elder_pcs_0_ts_0_t_0.000000_reference.vtu            elder_python_pcs_0_ts_0_t_0.000000.vtu            conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_100_t_26298000.000000_reference.vtu   elder_python_pcs_0_ts_100_t_26298000.000000.vtu   conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_120_t_31557600.000000_reference.vtu   elder_python_pcs_0_ts_120_t_31557600.000000.vtu   conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_140_t_36817200.000000_reference.vtu   elder_python_pcs_0_ts_140_t_36817200.000000.vtu   conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_160_t_42076800.000000_reference.vtu   elder_python_pcs_0_ts_160_t_42076800.000000.vtu   conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_180_t_47336400.000000_reference.vtu   elder_python_pcs_0_ts_180_t_47336400.000000.vtu   conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_200_t_52596000.000000_reference.vtu   elder_python_pcs_0_ts_200_t_52596000.000000.vtu   conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_20_t_5259600.000000_reference.vtu     elder_python_pcs_0_ts_20_t_5259600.000000.vtu     conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_220_t_57855600.000000_reference.vtu   elder_python_pcs_0_ts_220_t_57855600.000000.vtu   conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_240_t_63115200.000000_reference.vtu   elder_python_pcs_0_ts_240_t_63115200.000000.vtu   conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_260_t_68374800.000000_reference.vtu   elder_python_pcs_0_ts_260_t_68374800.000000.vtu   conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_280_t_73634400.000000_reference.vtu   elder_python_pcs_0_ts_280_t_73634400.000000.vtu   conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_300_t_78894000.000000_reference.vtu   elder_python_pcs_0_ts_300_t_78894000.000000.vtu   conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_320_t_84153600.000000_reference.vtu   elder_python_pcs_0_ts_320_t_84153600.000000.vtu   conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_340_t_89413200.000000_reference.vtu   elder_python_pcs_0_ts_340_t_89413200.000000.vtu   conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_360_t_94672800.000000_reference.vtu   elder_python_pcs_0_ts_360_t_94672800.000000.vtu   conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_380_t_99932400.000000_reference.vtu   elder_python_pcs_0_ts_380_t_99932400.000000.vtu   conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_400_t_105192000.000000_reference.vtu  elder_python_pcs_0_ts_400_t_105192000.000000.vtu  conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_40_t_10519200.000000_reference.vtu    elder_python_pcs_0_ts_40_t_10519200.000000.vtu    conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_420_t_110451600.000000_reference.vtu  elder_python_pcs_0_ts_420_t_110451600.000000.vtu  conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_440_t_115711200.000000_reference.vtu  elder_python_pcs_0_ts_440_t_115711200.000000.vtu  conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_460_t_120970800.000000_reference.vtu  elder_python_pcs_0_ts_460_t_120970800.000000.vtu  conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_480_t_126230400.000000_reference.vtu  elder_python_pcs_0_ts_480_t_126230400.000000.vtu  conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_500_t_131490000.000000_reference.vtu  elder_python_pcs_0_ts_500_t_131490000.000000.vtu  conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_60_t_15778800.000000_reference.vtu    elder_python_pcs_0_ts_60_t_15778800.000000.vtu    conc      Si      1e-1  1e-5
+    elder_pcs_0_ts_80_t_21038400.000000_reference.vtu    elder_python_pcs_0_ts_80_t_21038400.000000.vtu    conc      Si      1e-1  1e-5
 )
 
 AddTest(
@@ -388,7 +405,7 @@ AddTest(
     TESTER vtkdiff
     REQUIREMENTS NOT OGS_USE_MPI
     DIFF_DATA
-    square_100x100_quad_1e4_ComponentTransport_pcs_0_ts_1_t_1.000000.vtu square_100x100_quad_1e4_ComponentTransport_pcs_0_ts_1_t_1.000000.vtu pressure_expected pressure 1e-7 1e-10
+    square_100x100_quad_1e4_ComponentTransport_pcs_0_ts_1_t_1.000000.vtu square_100x100_quad_1e4_ComponentTransport_pcs_0_ts_1_t_1.000000.vtu pressure_expected pressure 2e-2 1e-10
     square_100x100_quad_1e4_ComponentTransport_pcs_0_ts_1_t_1.000000.vtu square_100x100_quad_1e4_ComponentTransport_pcs_0_ts_1_t_1.000000.vtu darcy_velocity_expected darcy_velocity 1e-7 1e-10
     VIS square_100x100_quad_1e4_ComponentTransport_pcs_0_ts_1_t_1.000000.vtu
 )
@@ -440,10 +457,10 @@ AddTest(
     vdbc_pcs_0_ts_21990_t_210000.000000_expected.vtu vdbc_pcs_0_ts_21990_t_210000.000000.vtu pressure pressure 1e-5 1e-4
     vdbc_pcs_0_ts_25990_t_250000.000000_expected.vtu vdbc_pcs_0_ts_25990_t_250000.000000.vtu pressure pressure 1e-5 1e-4
     vdbc_pcs_0_ts_0_t_0.000000_expected.vtu vdbc_pcs_0_ts_0_t_0.000000.vtu pressure pressure 1e-5 1e-4
-    vdbc_pcs_0_ts_1590_t_6000.000000_expected.vtu vdbc_pcs_0_ts_1590_t_6000.000000.vtu concentration concentration 1e-5 1e-4
-    vdbc_pcs_0_ts_3990_t_30000.000000_expected.vtu vdbc_pcs_0_ts_3990_t_30000.000000.vtu concentration concentration 1e-5 1e-4
-    vdbc_pcs_0_ts_9990_t_90000.000000_expected.vtu vdbc_pcs_0_ts_9990_t_90000.000000.vtu concentration concentration 1e-5 1e-4
-    vdbc_pcs_0_ts_15990_t_150000.000000_expected.vtu vdbc_pcs_0_ts_15990_t_150000.000000.vtu concentration concentration 1e-5 1e-4
-    vdbc_pcs_0_ts_21990_t_210000.000000_expected.vtu vdbc_pcs_0_ts_21990_t_210000.000000.vtu concentration concentration 1e-5 1e-4
-    vdbc_pcs_0_ts_25990_t_250000.000000_expected.vtu vdbc_pcs_0_ts_25990_t_250000.000000.vtu concentration concentration 1e-5 1e-4
+    vdbc_pcs_0_ts_1590_t_6000.000000_expected.vtu vdbc_pcs_0_ts_1590_t_6000.000000.vtu concentration Si 1e-5 1e-4
+    vdbc_pcs_0_ts_3990_t_30000.000000_expected.vtu vdbc_pcs_0_ts_3990_t_30000.000000.vtu concentration Si 1e-5 1e-4
+    vdbc_pcs_0_ts_9990_t_90000.000000_expected.vtu vdbc_pcs_0_ts_9990_t_90000.000000.vtu concentration Si 1e-5 1e-4
+    vdbc_pcs_0_ts_15990_t_150000.000000_expected.vtu vdbc_pcs_0_ts_15990_t_150000.000000.vtu concentration Si 1e-5 1e-4
+    vdbc_pcs_0_ts_21990_t_210000.000000_expected.vtu vdbc_pcs_0_ts_21990_t_210000.000000.vtu concentration Si 1e-5 1e-4
+    vdbc_pcs_0_ts_25990_t_250000.000000_expected.vtu vdbc_pcs_0_ts_25990_t_250000.000000.vtu concentration Si 1e-5 1e-4
 )
diff --git a/ProcessLib/Utils/ProcessUtils.cpp b/ProcessLib/Utils/ProcessUtils.cpp
index ce4f3f8188a1ee84b4e9fb63f4ec9db634309e37..a2c36ae98862ad903f11facc6b95924b07c25fb4 100644
--- a/ProcessLib/Utils/ProcessUtils.cpp
+++ b/ProcessLib/Utils/ProcessUtils.cpp
@@ -8,22 +8,20 @@
  */
 
 #include "ProcessUtils.h"
+#include <iterator>
 #include "ProcessLib/ProcessVariable.h"
 
-namespace ProcessLib
+namespace
 {
-ProcessVariable& findProcessVariable(
-    std::vector<ProcessVariable> const& variables,
-    BaseLib::ConfigTree const& pv_config, std::string const& tag)
+ProcessLib::ProcessVariable& findVariableByName(
+    std::vector<ProcessLib::ProcessVariable> const& variables,
+    std::string const& name, std::string const& tag)
 {
-    // Find process variable name in process config.
-    //! \ogs_file_special
-    std::string const name = pv_config.getConfigParameter<std::string>(tag);
-
     // Find corresponding variable by name.
-    auto variable = std::find_if(
-        variables.cbegin(), variables.cend(),
-        [&name](ProcessVariable const& v) { return v.getName() == name; });
+    auto variable = std::find_if(variables.cbegin(), variables.cend(),
+                                 [&name](ProcessLib::ProcessVariable const& v) {
+                                     return v.getName() == name;
+                                 });
 
     if (variable == variables.end())
     {
@@ -36,24 +34,70 @@ ProcessVariable& findProcessVariable(
          variable->getName().c_str(), tag.c_str());
 
     // Const cast is needed because of variables argument constness.
-    return const_cast<ProcessVariable&>(*variable);
+    return const_cast<ProcessLib::ProcessVariable&>(*variable);
+}
+}  // namespace
+
+namespace ProcessLib
+{
+ProcessVariable& findProcessVariable(
+    std::vector<ProcessVariable> const& variables,
+    BaseLib::ConfigTree const& pv_config, std::string const& tag)
+{
+    // Find process variable name in process config.
+    //! \ogs_file_special
+    std::string const name = pv_config.getConfigParameter<std::string>(tag);
+    return findVariableByName(variables, name, tag);
 }
 
 std::vector<std::reference_wrapper<ProcessVariable>> findProcessVariables(
     std::vector<ProcessVariable> const& variables,
     BaseLib::ConfigTree const& pv_config,
     std::initializer_list<std::string>
-        tag_names)
+        tags)
 {
     std::vector<std::reference_wrapper<ProcessVariable>> vars;
-    vars.reserve(tag_names.size());
+    vars.reserve(variables.size());
 
-    for (auto const& tag : tag_names)
+    if (variables.size() > tags.size())
+        DBUG("Found multiple process variables with a same tag.");
+
+    for (auto& tag : tags)
     {
-        vars.emplace_back(findProcessVariable(variables, pv_config, tag));
+        auto vars_per_tag = findProcessVariables(variables, pv_config, tag);
+        vars.insert(vars.end(), vars_per_tag.begin(), vars_per_tag.end());
     }
 
     return vars;
 }
 
-}  // ProcessLib
+std::vector<std::reference_wrapper<ProcessVariable>> findProcessVariables(
+    std::vector<ProcessVariable> const& variables,
+    BaseLib::ConfigTree const& pv_config,
+    std::string const& tag)
+{
+    std::vector<std::reference_wrapper<ProcessVariable>> vars;
+
+    //! \ogs_file_special
+    auto var_names = pv_config.getConfigParameterList<std::string>(tag);
+
+    if (var_names.empty())
+        OGS_FATAL("No entity is found with config tag <%s>.", tag.c_str());
+
+    std::vector<std::string> cached_var_names;
+
+    for (std::string const& var_name : var_names)
+    {
+        vars.push_back(findVariableByName(variables, var_name, tag));
+        cached_var_names.push_back(var_name);
+    }
+
+    // Eliminate duplicates in the set of variable names
+    BaseLib::makeVectorUnique(cached_var_names);
+
+    if (cached_var_names.size() != var_names.size())
+        OGS_FATAL("Found duplicates with config tag <%s>.", tag.c_str());
+
+    return vars;
+}
+}  // namespace ProcessLib
diff --git a/ProcessLib/Utils/ProcessUtils.h b/ProcessLib/Utils/ProcessUtils.h
index 4c38569e5395f1be33e333475183d57a8f5ad058..11199ccc7e66cc91a602a4ad755d2fa32c8bd724 100644
--- a/ProcessLib/Utils/ProcessUtils.h
+++ b/ProcessLib/Utils/ProcessUtils.h
@@ -40,7 +40,12 @@ std::vector<std::reference_wrapper<ProcessVariable>> findProcessVariables(
     std::vector<ProcessVariable> const& variables,
     BaseLib::ConfigTree const& process_config,
     std::initializer_list<std::string>
-        tag_names);
+        tags);
+
+std::vector<std::reference_wrapper<ProcessVariable>> findProcessVariables(
+    std::vector<ProcessVariable> const& variables,
+    BaseLib::ConfigTree const& pv_config,
+    std::string const& tag);
 
 /// Find a parameter of specific type for a given name.
 ///
diff --git a/Tests/Data/Elliptic/square_100x100_ComponentTransport/square_1e4_heterogeneity.prj b/Tests/Data/Elliptic/square_100x100_ComponentTransport/square_1e4_heterogeneity.prj
index 1ee6eeade5d307a8ff546733040a2dbc26ebd491..e0e8bdd92595f69e978294787b007a73486de338 100644
--- a/Tests/Data/Elliptic/square_100x100_ComponentTransport/square_1e4_heterogeneity.prj
+++ b/Tests/Data/Elliptic/square_100x100_ComponentTransport/square_1e4_heterogeneity.prj
@@ -8,7 +8,7 @@
             <type>ComponentTransport</type>
             <integration_order>2</integration_order>
             <process_variables>
-                <concentration>concentration</concentration>
+                <concentration>Si</concentration>
                 <pressure>pressure</pressure>
             </process_variables>
             <fluid>
@@ -38,9 +38,6 @@
                 </porous_medium>
             </porous_medium>
             <fluid_reference_density>rho_fluid</fluid_reference_density>
-            <solute_dispersivity_longitudinal>beta_l</solute_dispersivity_longitudinal>
-            <solute_dispersivity_transverse>beta_t</solute_dispersivity_transverse>
-            <molecular_diffusion_coefficient>Dm</molecular_diffusion_coefficient>
             <retardation_factor>retardation</retardation_factor>
             <decay_rate>decay</decay_rate>
             <specific_body_force>0 0</specific_body_force>
@@ -49,6 +46,39 @@
             </secondary_variables>
         </process>
     </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>1e-5</value>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>1</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0.1</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
     <time_loop>
         <processes>
             <process ref="hc">
@@ -56,7 +86,7 @@
                 <convergence_criterion>
                     <type>PerComponentDeltaX</type>
                     <norm_type>NORM2</norm_type>
-                    <reltols>5e-3 5e-3</reltols>
+                    <reltols>1e-15 1e-15</reltols>
                 </convergence_criterion>
                 <time_discretization>
                     <type>BackwardEuler</type>
@@ -84,7 +114,7 @@
                 </pair>
             </timesteps>
             <variables>
-                <variable>concentration</variable>
+                <variable>Si</variable>
                 <variable>pressure</variable>
                 <variable>darcy_velocity</variable>
             </variables>
@@ -96,11 +126,6 @@
             <type>Constant</type>
             <value>1000</value>
         </parameter>
-        <parameter>
-            <name>Dm</name>
-            <type>Constant</type>
-            <value>1e-5</value>
-        </parameter>
         <parameter>
             <name>retardation</name>
             <type>Constant</type>
@@ -111,16 +136,6 @@
             <type>Constant</type>
             <value>0</value>
         </parameter>
-        <parameter>
-            <name>beta_l</name>
-            <type>Constant</type>
-            <value>1</value>
-        </parameter>
-        <parameter>
-            <name>beta_t</name>
-            <type>Constant</type>
-            <value>0.1</value>
-        </parameter>
         <parameter>
             <name>c0</name>
             <type>Constant</type>
@@ -156,7 +171,7 @@
     </parameters>
     <process_variables>
         <process_variable>
-            <name>concentration</name>
+            <name>Si</name>
             <components>1</components>
             <order>1</order>
             <initial_condition>c0</initial_condition>
@@ -201,16 +216,16 @@
     <linear_solvers>
         <linear_solver>
             <name>general_linear_solver</name>
-            <lis>-i bicgstab -p ilut -tol 1e-8 -maxiter 20000</lis>
+            <lis>-i bicgstab -p ilut -tol 1e-16 -maxiter 20000</lis>
             <eigen>
                 <solver_type>BiCGSTAB</solver_type>
-                <precon_type>ILUT</precon_type>
+                <precon_type>DIAGONAL</precon_type>
                 <max_iteration_step>20000</max_iteration_step>
-                <error_tolerance>1e-8</error_tolerance>
+                <error_tolerance>1e-16</error_tolerance>
             </eigen>
             <petsc>
                 <prefix>hc</prefix>
-                <parameters>-hc_ksp_type bcgs -hc_pc_type bjacobi -hc_ksp_rtol 1e-8 -hc_ksp_max_it 20000</parameters>
+                <parameters>-hc_ksp_type bcgs -hc_pc_type bjacobi -hc_ksp_rtol 1e-16 -hc_ksp_max_it 20000</parameters>
             </petsc>
         </linear_solver>
     </linear_solvers>
diff --git a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/ConcentrationDiffusionAndStorage.prj b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/ConcentrationDiffusionAndStorage.prj
index f47b12e03357742227847910d2506c465279cf18..9318140c605db1430541377b1fd2c081265ee09e 100644
--- a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/ConcentrationDiffusionAndStorage.prj
+++ b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/ConcentrationDiffusionAndStorage.prj
@@ -8,7 +8,7 @@
             <type>ComponentTransport</type>
             <integration_order>2</integration_order>
             <process_variables>
-                <concentration>concentration</concentration>
+                <concentration>Si</concentration>
                 <pressure>pressure</pressure>
             </process_variables>
             <fluid>
@@ -56,9 +56,6 @@
                 </porous_medium>
             </porous_medium>
             <fluid_reference_density>rho_fluid</fluid_reference_density>
-            <solute_dispersivity_longitudinal>beta_l</solute_dispersivity_longitudinal>
-            <solute_dispersivity_transverse>beta_t</solute_dispersivity_transverse>
-            <molecular_diffusion_coefficient>Dm</molecular_diffusion_coefficient>
             <retardation_factor>retardation</retardation_factor>
             <decay_rate>decay</decay_rate>
             <specific_body_force>0 0</specific_body_force>
@@ -67,6 +64,39 @@
             </secondary_variables>
         </process>
     </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <value>1</value>
+                                    <type>Constant</type>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>1</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
     <time_loop>
         <processes>
             <process ref="hc">
@@ -110,7 +140,7 @@
                 </pair>
             </timesteps>
             <variables>
-                <variable>concentration</variable>
+                <variable>Si</variable>
                 <variable>pressure</variable>
                 <variable>darcy_velocity</variable>
             </variables>
@@ -127,11 +157,6 @@
             <type>Constant</type>
             <value>1000</value>
         </parameter>
-        <parameter>
-            <name>Dm</name>
-            <type>Constant</type>
-            <value>1</value>
-        </parameter>
         <parameter>
             <name>retardation</name>
             <type>Constant</type>
@@ -142,16 +167,6 @@
             <type>Constant</type>
             <value>0</value>
         </parameter>
-        <parameter>
-            <name>beta_l</name>
-            <type>Constant</type>
-            <value>0</value>
-        </parameter>
-        <parameter>
-            <name>beta_t</name>
-            <type>Constant</type>
-            <value>1</value>
-        </parameter>
         <parameter>
             <name>c0</name>
             <type>Constant</type>
@@ -195,7 +210,7 @@
     </parameters>
     <process_variables>
         <process_variable>
-            <name>concentration</name>
+            <name>Si</name>
             <components>1</components>
             <order>1</order>
             <initial_condition>c0</initial_condition>
diff --git a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/ConcentrationDiffusionOnly.prj b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/ConcentrationDiffusionOnly.prj
index 211598560094fedbb99517b4c5adbe106fe9cab2..b1b520744c8cc85e8a400b32141d4b3a5261f102 100644
--- a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/ConcentrationDiffusionOnly.prj
+++ b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/ConcentrationDiffusionOnly.prj
@@ -8,7 +8,7 @@
             <type>ComponentTransport</type>
             <integration_order>2</integration_order>
             <process_variables>
-                <concentration>concentration</concentration>
+                <concentration>Si</concentration>
                 <pressure>pressure</pressure>
             </process_variables>
             <fluid>
@@ -54,9 +54,6 @@
                 </porous_medium>
             </porous_medium>
             <fluid_reference_density>rho_fluid</fluid_reference_density>
-            <solute_dispersivity_longitudinal>beta_l</solute_dispersivity_longitudinal>
-            <solute_dispersivity_transverse>beta_t</solute_dispersivity_transverse>
-            <molecular_diffusion_coefficient>Dm</molecular_diffusion_coefficient>
             <retardation_factor>retardation</retardation_factor>
             <decay_rate>decay</decay_rate>
             <specific_body_force>0 0</specific_body_force>
@@ -65,6 +62,39 @@
             </secondary_variables>
         </process>
     </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>1</value>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>1</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
     <time_loop>
         <processes>
             <process ref="hc">
@@ -100,7 +130,7 @@
                 </pair>
             </timesteps>
             <variables>
-                <variable>concentration</variable>
+                <variable>Si</variable>
                 <variable>pressure</variable>
                 <variable>darcy_velocity</variable>
             </variables>
@@ -127,11 +157,6 @@
             <type>Constant</type>
             <value>1000</value>
         </parameter>
-        <parameter>
-            <name>Dm</name>
-            <type>Constant</type>
-            <value>1</value>
-        </parameter>
         <parameter>
             <name>retardation</name>
             <type>Constant</type>
@@ -142,16 +167,6 @@
             <type>Constant</type>
             <value>0</value>
         </parameter>
-        <parameter>
-            <name>beta_l</name>
-            <type>Constant</type>
-            <value>0</value>
-        </parameter>
-        <parameter>
-            <name>beta_t</name>
-            <type>Constant</type>
-            <value>1</value>
-        </parameter>
         <parameter>
             <name>c0</name>
             <type>Constant</type>
@@ -185,7 +200,8 @@
     </parameters>
     <process_variables>
         <process_variable>
-            <name>concentration</name>
+            <name>Si</name>
+            <!--keep conformity with component name-->
             <components>1</components>
             <order>1</order>
             <initial_condition>c0</initial_condition>
diff --git a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/ConcentrationDiffusionOnly_3Components.prj b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/ConcentrationDiffusionOnly_3Components.prj
new file mode 100644
index 0000000000000000000000000000000000000000..0627e7414f075586c42aef5168de0e3b64fd5b34
--- /dev/null
+++ b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/ConcentrationDiffusionOnly_3Components.prj
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<OpenGeoSysProject>
+    <mesh>square_1x1_quad_1e3.vtu</mesh>
+    <geometry>square_1x1.gml</geometry>
+    <processes>
+        <process>
+            <name>hc</name>
+            <type>ComponentTransport</type>
+            <integration_order>2</integration_order>
+            <process_variables>
+                <concentration>Si</concentration>
+                <concentration>Al</concentration>
+                <concentration>Cl</concentration>
+                <pressure>pressure</pressure>
+            </process_variables>
+            <fluid>
+                <density>
+                    <type>ConcentrationDependent</type>
+                    <reference_density>1</reference_density>
+                    <reference_concentration>0</reference_concentration>
+                    <fluid_density_difference_ratio>0.0</fluid_density_difference_ratio>
+                </density>
+                <viscosity>
+                    <type>Constant</type>
+                    <value>1.0e-3</value>
+                </viscosity>
+            </fluid>
+            <porous_medium>
+                <porous_medium id="0">
+                    <permeability>
+                        <type>Constant</type>
+                        <permeability_tensor_entries>kappa1</permeability_tensor_entries>
+                    </permeability>
+                    <porosity>
+                        <type>Constant</type>
+                        <porosity_parameter>constant_porosity_parameter</porosity_parameter>
+                    </porosity>
+                    <storage>
+                        <type>Constant</type>
+                        <value>1e-5</value>
+                    </storage>
+                </porous_medium>
+                <porous_medium id="1">
+                    <permeability>
+                        <type>Constant</type>
+                        <permeability_tensor_entries>kappa2</permeability_tensor_entries>
+                    </permeability>
+                    <porosity>
+                        <type>Constant</type>
+                        <porosity_parameter>constant_porosity_parameter</porosity_parameter>
+                    </porosity>
+                    <storage>
+                        <type>Constant</type>
+                        <value>0</value>
+                    </storage>
+                </porous_medium>
+            </porous_medium>
+            <fluid_reference_density>rho_fluid</fluid_reference_density>
+            <retardation_factor>retardation</retardation_factor>
+            <decay_rate>decay</decay_rate>
+            <specific_body_force>0 0</specific_body_force>
+            <secondary_variables>
+                <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/>
+            </secondary_variables>
+        </process>
+    </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>1</value>
+                                </property>
+                            </properties>
+                        </component>
+                        <component>
+                            <name>Al</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>1</value>
+                                </property>
+                            </properties>
+                        </component>
+                        <component>
+                            <name>Cl</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>1</value>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>1</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
+    <time_loop>
+        <processes>
+            <process ref="hc">
+                <nonlinear_solver>basic_picard</nonlinear_solver>
+                <convergence_criterion>
+                    <type>DeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <reltol>1e-1</reltol>
+                </convergence_criterion>
+                <time_discretization>
+                    <type>BackwardEuler</type>
+                </time_discretization>
+                <time_stepping>
+                    <type>FixedTimeStepping</type>
+                    <t_initial>0.0</t_initial>
+                    <t_end>1</t_end>
+                    <timesteps>
+                        <pair>
+                            <repeat>1</repeat>
+                            <delta_t>1</delta_t>
+                        </pair>
+                    </timesteps>
+                </time_stepping>
+            </process>
+        </processes>
+        <output>
+            <type>VTK</type>
+            <prefix>DiffusionOnly_3Components</prefix>
+            <timesteps>
+                <pair>
+                    <repeat>1</repeat>
+                    <each_steps>1</each_steps>
+                </pair>
+            </timesteps>
+            <variables>
+                <variable>Si</variable>
+                <variable>Al</variable>
+                <variable>Cl</variable>
+                <variable>pressure</variable>
+                <variable>darcy_velocity</variable>
+            </variables>
+        </output>
+    </time_loop>
+    <parameters>
+        <parameter>
+            <name>kappa1</name>
+            <type>Constant</type>
+            <values>1.239e-7 0 0 1.239e-7</values>
+        </parameter>
+        <parameter>
+            <name>kappa2</name>
+            <type>Constant</type>
+            <values>1e-3 0 0 1e-3</values>
+        </parameter>
+        <parameter>
+            <name>constant_porosity_parameter</name>
+            <type>Constant</type>
+            <value>0.2</value>
+        </parameter>
+        <parameter>
+            <name>rho_fluid</name>
+            <type>Constant</type>
+            <value>1000</value>
+        </parameter>
+        <parameter>
+            <name>retardation</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>decay</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>c0</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>p0</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>p_Dirichlet_left</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>p_Dirichlet_right</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>c_Dirichlet_left</name>
+            <type>Constant</type>
+            <value>1</value>
+        </parameter>
+        <parameter>
+            <name>c_Dirichlet_right</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+    </parameters>
+    <process_variables>
+        <process_variable>
+            <name>Si</name>
+            <!--keep conformity with component name-->
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>c0</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Dirichlet</type>
+                    <parameter>c_Dirichlet_left</parameter>
+                </boundary_condition>
+                <boundary_condition>
+                    <geometrical_set>geometry</geometrical_set>
+                    <geometry>right</geometry>
+                    <type>Dirichlet</type>
+                    <parameter>c_Dirichlet_right</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+        <process_variable>
+            <name>Al</name>
+            <!--keep conformity with component name-->
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>c0</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Dirichlet</type>
+                    <parameter>c_Dirichlet_left</parameter>
+                </boundary_condition>
+                <boundary_condition>
+                    <geometrical_set>geometry</geometrical_set>
+                    <geometry>right</geometry>
+                    <type>Dirichlet</type>
+                    <parameter>c_Dirichlet_right</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+        <process_variable>
+            <name>Cl</name>
+            <!--keep conformity with component name-->
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>c0</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Dirichlet</type>
+                    <parameter>c_Dirichlet_left</parameter>
+                </boundary_condition>
+                <boundary_condition>
+                    <geometrical_set>geometry</geometrical_set>
+                    <geometry>right</geometry>
+                    <type>Dirichlet</type>
+                    <parameter>c_Dirichlet_right</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+        <process_variable>
+            <name>pressure</name>
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>p0</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Dirichlet</type>
+                    <parameter>p_Dirichlet_left</parameter>
+                </boundary_condition>
+                <boundary_condition>
+                    <geometrical_set>geometry</geometrical_set>
+                    <geometry>right</geometry>
+                    <type>Dirichlet</type>
+                    <parameter>p_Dirichlet_right</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+    </process_variables>
+    <nonlinear_solvers>
+        <nonlinear_solver>
+            <name>basic_picard</name>
+            <type>Picard</type>
+            <max_iter>2</max_iter>
+            <linear_solver>general_linear_solver</linear_solver>
+        </nonlinear_solver>
+    </nonlinear_solvers>
+    <linear_solvers>
+        <linear_solver>
+            <name>general_linear_solver</name>
+            <lis>-i cg -p jacobi -tol 1e-16 -maxiter 20000</lis>
+            <eigen>
+                <solver_type>BiCGSTAB</solver_type>
+                <precon_type>ILUT</precon_type>
+                <max_iteration_step>20000</max_iteration_step>
+                <error_tolerance>1e-8</error_tolerance>
+            </eigen>
+            <petsc>
+                <prefix>hc</prefix>
+                <parameters>-hc_ksp_type bcgs -hc_pc_type bjacobi -hc_ksp_rtol 1e-8 -hc_ksp_max_it 20000</parameters>
+            </petsc>
+        </linear_solver>
+    </linear_solvers>
+</OpenGeoSysProject>
diff --git a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvection.prj b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvection.prj
index ae6e1d4948dc675a4f5c9ac7834fc92c8d171e15..f5e85df57daad994913f218deaa4af1675b6cc51 100644
--- a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvection.prj
+++ b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvection.prj
@@ -8,7 +8,7 @@
             <type>ComponentTransport</type>
             <integration_order>2</integration_order>
             <process_variables>
-                <concentration>concentration</concentration>
+                <concentration>Si</concentration>
                 <pressure>pressure</pressure>
             </process_variables>
             <fluid>
@@ -56,9 +56,6 @@
                 </porous_medium>
             </porous_medium>
             <fluid_reference_density>rho_fluid</fluid_reference_density>
-            <solute_dispersivity_longitudinal>beta_l</solute_dispersivity_longitudinal>
-            <solute_dispersivity_transverse>beta_t</solute_dispersivity_transverse>
-            <molecular_diffusion_coefficient>Dm</molecular_diffusion_coefficient>
             <retardation_factor>retardation</retardation_factor>
             <decay_rate>decay</decay_rate>
             <specific_body_force>0 0</specific_body_force>
@@ -67,6 +64,39 @@
             </secondary_variables>
         </process>
     </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>1e-5</value>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
     <time_loop>
         <processes>
             <process ref="hc">
@@ -134,7 +164,7 @@
                 </pair>
             </timesteps>
             <variables>
-                <variable>concentration</variable>
+                <variable>Si</variable>
                 <variable>pressure</variable>
                 <variable>darcy_velocity</variable>
             </variables>
@@ -146,11 +176,6 @@
             <type>Constant</type>
             <value>1000</value>
         </parameter>
-        <parameter>
-            <name>Dm</name>
-            <type>Constant</type>
-            <value>1e-5</value>
-        </parameter>
         <parameter>
             <name>retardation</name>
             <type>Constant</type>
@@ -161,16 +186,6 @@
             <type>Constant</type>
             <value>0</value>
         </parameter>
-        <parameter>
-            <name>beta_l</name>
-            <type>Constant</type>
-            <value>0</value>
-        </parameter>
-        <parameter>
-            <name>beta_t</name>
-            <type>Constant</type>
-            <value>0</value>
-        </parameter>
         <parameter>
             <name>c0</name>
             <type>Constant</type>
@@ -219,7 +234,7 @@
     </parameters>
     <process_variables>
         <process_variable>
-            <name>concentration</name>
+            <name>Si</name>
             <components>1</components>
             <order>1</order>
             <initial_condition>c0</initial_condition>
diff --git a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvectionAndDecay.prj b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvectionAndDecay.prj
index 0c45f0c78cece1fcb1cbc51b1813b5b3ba123f79..de229bb8047a5104f3bab72129703ac2d125852b 100644
--- a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvectionAndDecay.prj
+++ b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvectionAndDecay.prj
@@ -8,7 +8,7 @@
             <type>ComponentTransport</type>
             <integration_order>2</integration_order>
             <process_variables>
-                <concentration>concentration</concentration>
+                <concentration>Si</concentration>
                 <pressure>pressure</pressure>
             </process_variables>
             <fluid>
@@ -56,9 +56,6 @@
                 </porous_medium>
             </porous_medium>
             <fluid_reference_density>rho_fluid</fluid_reference_density>
-            <solute_dispersivity_longitudinal>beta_l</solute_dispersivity_longitudinal>
-            <solute_dispersivity_transverse>beta_t</solute_dispersivity_transverse>
-            <molecular_diffusion_coefficient>Dm</molecular_diffusion_coefficient>
             <retardation_factor>retardation</retardation_factor>
             <decay_rate>decay</decay_rate>
             <specific_body_force>0 0</specific_body_force>
@@ -67,6 +64,39 @@
             </secondary_variables>
         </process>
     </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>1e-5</value>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
     <time_loop>
         <processes>
             <process ref="hc">
@@ -134,7 +164,7 @@
                 </pair>
             </timesteps>
             <variables>
-                <variable>concentration</variable>
+                <variable>Si</variable>
                 <variable>pressure</variable>
                 <variable>darcy_velocity</variable>
             </variables>
@@ -146,11 +176,6 @@
             <type>Constant</type>
             <value>1000</value>
         </parameter>
-        <parameter>
-            <name>Dm</name>
-            <type>Constant</type>
-            <value>1e-5</value>
-        </parameter>
         <parameter>
             <name>retardation</name>
             <type>Constant</type>
@@ -161,16 +186,6 @@
             <type>Constant</type>
             <value>0.001</value>
         </parameter>
-        <parameter>
-            <name>beta_l</name>
-            <type>Constant</type>
-            <value>0</value>
-        </parameter>
-        <parameter>
-            <name>beta_t</name>
-            <type>Constant</type>
-            <value>0</value>
-        </parameter>
         <parameter>
             <name>c0</name>
             <type>Constant</type>
@@ -219,7 +234,7 @@
     </parameters>
     <process_variables>
         <process_variable>
-            <name>concentration</name>
+            <name>Si</name>
             <components>1</components>
             <order>1</order>
             <initial_condition>c0</initial_condition>
diff --git a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvectionAndDispersion.prj b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvectionAndDispersion.prj
index b3f00d394d9ffc8ebe4583fd52d48c343bea89b4..b02e2d7f1961a9253584c386993401f4fb0ed668 100644
--- a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvectionAndDispersion.prj
+++ b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvectionAndDispersion.prj
@@ -8,7 +8,7 @@
             <type>ComponentTransport</type>
             <integration_order>2</integration_order>
             <process_variables>
-                <concentration>concentration</concentration>
+                <concentration>Si</concentration>
                 <pressure>pressure</pressure>
             </process_variables>
             <fluid>
@@ -56,9 +56,6 @@
                 </porous_medium>
             </porous_medium>
             <fluid_reference_density>rho_fluid</fluid_reference_density>
-            <solute_dispersivity_longitudinal>beta_l</solute_dispersivity_longitudinal>
-            <solute_dispersivity_transverse>beta_t</solute_dispersivity_transverse>
-            <molecular_diffusion_coefficient>Dm</molecular_diffusion_coefficient>
             <retardation_factor>retardation</retardation_factor>
             <decay_rate>decay</decay_rate>
             <specific_body_force>0 0</specific_body_force>
@@ -67,6 +64,39 @@
             </secondary_variables>
         </process>
     </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>1e-5</value>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>1</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>1</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
     <time_loop>
         <processes>
             <process ref="hc">
@@ -134,7 +164,7 @@
                 </pair>
             </timesteps>
             <variables>
-                <variable>concentration</variable>
+                <variable>Si</variable>
                 <variable>pressure</variable>
                 <variable>darcy_velocity</variable>
             </variables>
@@ -146,11 +176,6 @@
             <type>Constant</type>
             <value>1000</value>
         </parameter>
-        <parameter>
-            <name>Dm</name>
-            <type>Constant</type>
-            <value>1e-5</value>
-        </parameter>
         <parameter>
             <name>retardation</name>
             <type>Constant</type>
@@ -161,16 +186,6 @@
             <type>Constant</type>
             <value>0</value>
         </parameter>
-        <parameter>
-            <name>beta_l</name>
-            <type>Constant</type>
-            <value>1</value>
-        </parameter>
-        <parameter>
-            <name>beta_t</name>
-            <type>Constant</type>
-            <value>1</value>
-        </parameter>
         <parameter>
             <name>c0</name>
             <type>Constant</type>
@@ -219,7 +234,7 @@
     </parameters>
     <process_variables>
         <process_variable>
-            <name>concentration</name>
+            <name>Si</name>
             <components>1</components>
             <order>1</order>
             <initial_condition>c0</initial_condition>
diff --git a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvectionAndDispersionHalf.prj b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvectionAndDispersionHalf.prj
index 7e090bb728f0e8a2e61bc4a4dcd8112cdb1cdff7..31f562fd86c6035328142d902dc0508fc16c32a6 100644
--- a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvectionAndDispersionHalf.prj
+++ b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndAdvectionAndDispersionHalf.prj
@@ -8,7 +8,7 @@
             <type>ComponentTransport</type>
             <integration_order>2</integration_order>
             <process_variables>
-                <concentration>concentration</concentration>
+                <concentration>Si</concentration>
                 <pressure>pressure</pressure>
             </process_variables>
             <fluid>
@@ -56,9 +56,6 @@
                 </porous_medium>
             </porous_medium>
             <fluid_reference_density>rho_fluid</fluid_reference_density>
-            <solute_dispersivity_longitudinal>beta_l</solute_dispersivity_longitudinal>
-            <solute_dispersivity_transverse>beta_t</solute_dispersivity_transverse>
-            <molecular_diffusion_coefficient>Dm</molecular_diffusion_coefficient>
             <retardation_factor>retardation</retardation_factor>
             <decay_rate>decay</decay_rate>
             <specific_body_force>0 0</specific_body_force>
@@ -67,6 +64,39 @@
             </secondary_variables>
         </process>
     </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>1e-5</value>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>1</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0.1</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
     <time_loop>
         <processes>
             <process ref="hc">
@@ -134,7 +164,7 @@
                 </pair>
             </timesteps>
             <variables>
-                <variable>concentration</variable>
+                <variable>Si</variable>
                 <variable>pressure</variable>
                 <variable>darcy_velocity</variable>
             </variables>
@@ -146,11 +176,6 @@
             <type>Constant</type>
             <value>1000</value>
         </parameter>
-        <parameter>
-            <name>Dm</name>
-            <type>Constant</type>
-            <value>1e-5</value>
-        </parameter>
         <parameter>
             <name>retardation</name>
             <type>Constant</type>
@@ -161,16 +186,6 @@
             <type>Constant</type>
             <value>0</value>
         </parameter>
-        <parameter>
-            <name>beta_l</name>
-            <type>Constant</type>
-            <value>1</value>
-        </parameter>
-        <parameter>
-            <name>beta_t</name>
-            <type>Constant</type>
-            <value>0.1</value>
-        </parameter>
         <parameter>
             <name>c0</name>
             <type>Constant</type>
@@ -219,7 +234,7 @@
     </parameters>
     <process_variables>
         <process_variable>
-            <name>concentration</name>
+            <name>Si</name>
             <components>1</components>
             <order>1</order>
             <initial_condition>c0</initial_condition>
diff --git a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndGravityAndDispersionHalf.prj b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndGravityAndDispersionHalf.prj
index 21a1a987b8fbd655916a69d17573af48bc07f050..ea803b6ac5fa0538b3164ea34ce838fe3a3f3148 100644
--- a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndGravityAndDispersionHalf.prj
+++ b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/DiffusionAndStorageAndGravityAndDispersionHalf.prj
@@ -8,7 +8,7 @@
             <type>ComponentTransport</type>
             <integration_order>2</integration_order>
             <process_variables>
-                <concentration>concentration</concentration>
+                <concentration>Si</concentration>
                 <pressure>pressure</pressure>
             </process_variables>
             <fluid>
@@ -56,9 +56,6 @@
                 </porous_medium>
             </porous_medium>
             <fluid_reference_density>rho_fluid</fluid_reference_density>
-            <solute_dispersivity_longitudinal>beta_l</solute_dispersivity_longitudinal>
-            <solute_dispersivity_transverse>beta_t</solute_dispersivity_transverse>
-            <molecular_diffusion_coefficient>Dm</molecular_diffusion_coefficient>
             <retardation_factor>retardation</retardation_factor>
             <decay_rate>decay</decay_rate>
             <specific_body_force>0 -1</specific_body_force>
@@ -67,6 +64,39 @@
             </secondary_variables>
         </process>
     </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>1e-5</value>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>1</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0.1</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
     <time_loop>
         <processes>
             <process ref="hc">
@@ -110,7 +140,7 @@
                 </pair>
             </timesteps>
             <variables>
-                <variable>concentration</variable>
+                <variable>Si</variable>
                 <variable>pressure</variable>
                 <variable>darcy_velocity</variable>
             </variables>
@@ -122,11 +152,6 @@
             <type>Constant</type>
             <value>1000</value>
         </parameter>
-        <parameter>
-            <name>Dm</name>
-            <type>Constant</type>
-            <value>1e-5</value>
-        </parameter>
         <parameter>
             <name>retardation</name>
             <type>Constant</type>
@@ -137,16 +162,6 @@
             <type>Constant</type>
             <value>0</value>
         </parameter>
-        <parameter>
-            <name>beta_l</name>
-            <type>Constant</type>
-            <value>1</value>
-        </parameter>
-        <parameter>
-            <name>beta_t</name>
-            <type>Constant</type>
-            <value>0.1</value>
-        </parameter>
         <parameter>
             <name>c0</name>
             <type>Constant</type>
@@ -195,7 +210,7 @@
     </parameters>
     <process_variables>
         <process_variable>
-            <name>concentration</name>
+            <name>Si</name>
             <components>1</components>
             <order>1</order>
             <initial_condition>c0</initial_condition>
diff --git a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/surfaceflux_component-transport_cube_1e3.prj b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/surfaceflux_component-transport_cube_1e3.prj
index 505b3b96bc609728f38e4b6aa780ee9475176610..822958182eea598d250d12b775b95c2d8224a882 100644
--- a/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/surfaceflux_component-transport_cube_1e3.prj
+++ b/Tests/Data/Parabolic/ComponentTransport/SimpleSynthetics/surfaceflux_component-transport_cube_1e3.prj
@@ -12,7 +12,7 @@
             <type>ComponentTransport</type>
             <integration_order>2</integration_order>
             <process_variables>
-                <concentration>concentration</concentration>
+                <concentration>Si</concentration>
                 <pressure>pressure</pressure>
             </process_variables>
             <fluid>
@@ -44,9 +44,6 @@
                 </porous_medium>
             </porous_medium>
             <fluid_reference_density>rho_fluid</fluid_reference_density>
-            <solute_dispersivity_longitudinal>beta_l</solute_dispersivity_longitudinal>
-            <solute_dispersivity_transverse>beta_t</solute_dispersivity_transverse>
-            <molecular_diffusion_coefficient>Dm</molecular_diffusion_coefficient>
             <retardation_factor>retardation</retardation_factor>
             <decay_rate>decay</decay_rate>
             <specific_body_force>0 0 0</specific_body_force>
@@ -60,6 +57,39 @@
             </calculatesurfaceflux>
         </process>
     </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>1</value>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>1</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
     <time_loop>
         <processes>
             <process ref="hc">
@@ -100,7 +130,7 @@
                 <mesh>cube_1x1x1_hex_1e3_right</mesh>
             </meshes>
             <variables>
-                <variable>concentration</variable>
+                <variable>Si</variable>
                 <variable>pressure</variable>
                 <variable>darcy_velocity</variable>
             </variables>
@@ -122,11 +152,6 @@
             <type>Constant</type>
             <value>1000</value>
         </parameter>
-        <parameter>
-            <name>Dm</name>
-            <type>Constant</type>
-            <value>1</value>
-        </parameter>
         <parameter>
             <name>retardation</name>
             <type>Constant</type>
@@ -137,16 +162,6 @@
             <type>Constant</type>
             <value>0</value>
         </parameter>
-        <parameter>
-            <name>beta_l</name>
-            <type>Constant</type>
-            <value>0</value>
-        </parameter>
-        <parameter>
-            <name>beta_t</name>
-            <type>Constant</type>
-            <value>1</value>
-        </parameter>
         <parameter>
             <name>c0</name>
             <type>Constant</type>
@@ -180,7 +195,7 @@
     </parameters>
     <process_variables>
         <process_variable>
-            <name>concentration</name>
+            <name>Si</name>
             <components>1</components>
             <order>1</order>
             <initial_condition>c0</initial_condition>
diff --git a/Tests/Data/Parabolic/ComponentTransport/VariableNeumannBoundary/vdbc_input.prj b/Tests/Data/Parabolic/ComponentTransport/VariableNeumannBoundary/vdbc_input.prj
index ab9271e504ccc7badf911c68386330679fccc682..46fed65132efb7234954f831e6df2b798610f1b6 100644
--- a/Tests/Data/Parabolic/ComponentTransport/VariableNeumannBoundary/vdbc_input.prj
+++ b/Tests/Data/Parabolic/ComponentTransport/VariableNeumannBoundary/vdbc_input.prj
@@ -11,7 +11,7 @@
             <type>ComponentTransport</type>
             <integration_order>2</integration_order>
             <process_variables>
-                <concentration>concentration</concentration>
+                <concentration>Si</concentration>
                 <pressure>pressure</pressure>
             </process_variables>
             <fluid>
@@ -41,9 +41,6 @@
                 </porous_medium>
             </porous_medium>
             <fluid_reference_density>rho_fluid</fluid_reference_density>
-            <solute_dispersivity_longitudinal>beta_l</solute_dispersivity_longitudinal>
-            <solute_dispersivity_transverse>beta_t</solute_dispersivity_transverse>
-            <molecular_diffusion_coefficient>Dm</molecular_diffusion_coefficient>
             <retardation_factor>retardation</retardation_factor>
             <decay_rate>decay</decay_rate>
             <specific_body_force>0 0</specific_body_force>
@@ -52,6 +49,39 @@
             </secondary_variables>
         </process>
     </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>0</value>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
     <time_loop>
         <processes>
             <process ref="hc">
@@ -107,7 +137,7 @@
                 </pair>
             </timesteps>
             <variables>
-                <variable>concentration</variable>
+                <variable>Si</variable>
                 <variable>pressure</variable>
                 <variable>darcy_velocity</variable>
             </variables>
@@ -119,11 +149,6 @@
             <type>Constant</type>
             <value>1000</value>
         </parameter>
-        <parameter>
-            <name>Dm</name>
-            <type>Constant</type>
-            <value>0</value>
-        </parameter>
         <parameter>
             <name>retardation</name>
             <type>Constant</type>
@@ -134,16 +159,6 @@
             <type>Constant</type>
             <value>0</value>
         </parameter>
-        <parameter>
-            <name>beta_l</name>
-            <type>Constant</type>
-            <value>0</value>
-        </parameter>
-        <parameter>
-            <name>beta_t</name>
-            <type>Constant</type>
-            <value>0</value>
-        </parameter>
         <parameter>
             <name>c_ini</name>
             <type>MeshNode</type>
@@ -167,7 +182,7 @@
     </parameters>
     <process_variables>
         <process_variable>
-            <name>concentration</name>
+            <name>Si</name>
             <components>1</components>
             <order>1</order>
             <initial_condition>c_ini</initial_condition>
diff --git a/Tests/Data/Parabolic/ComponentTransport/elder/elder-python.prj b/Tests/Data/Parabolic/ComponentTransport/elder/elder-python.prj
index 9431fff6f579447ec3d00cc0f2893ed0c703166b..58293fa3bc36ec3f8d03d1da70a285204d8e7e14 100644
--- a/Tests/Data/Parabolic/ComponentTransport/elder/elder-python.prj
+++ b/Tests/Data/Parabolic/ComponentTransport/elder/elder-python.prj
@@ -11,7 +11,7 @@
             <type>ComponentTransport</type>
             <integration_order>2</integration_order>
             <process_variables>
-                <concentration>conc</concentration>
+                <concentration>Si</concentration>
                 <pressure>pressure</pressure>
             </process_variables>
             <fluid>
@@ -45,15 +45,45 @@
             <decay_rate>decay_rate</decay_rate>
             <fluid_reference_density>rho_fluid</fluid_reference_density>
             <retardation_factor>retardation_factor</retardation_factor>
-            <solute_dispersivity_longitudinal>alpha_l</solute_dispersivity_longitudinal>
-            <solute_dispersivity_transverse>alpha_t</solute_dispersivity_transverse>
-            <molecular_diffusion_coefficient>Dm</molecular_diffusion_coefficient>
             <specific_body_force>0 0 -9.81</specific_body_force>
             <secondary_variables>
                 <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/>
             </secondary_variables>
         </process>
     </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>3.57e-6</value>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
     <time_loop>
         <processes>
             <process ref="HC">
@@ -89,7 +119,7 @@
                 </pair>
             </timesteps>
             <variables>
-                <variable>conc</variable>
+                <variable>Si</variable>
                 <variable>pressure</variable>
                 <variable>darcy_velocity</variable>
             </variables>
@@ -101,21 +131,6 @@
             <type>Constant</type>
             <value>1000.0</value>
         </parameter>
-        <parameter>
-            <name>alpha_l</name>
-            <type>Constant</type>
-            <value>0</value>
-        </parameter>
-        <parameter>
-            <name>alpha_t</name>
-            <type>Constant</type>
-            <value>0</value>
-        </parameter>
-        <parameter>
-            <name>Dm</name>
-            <type>Constant</type>
-            <value>3.57e-6</value>
-        </parameter>
         <parameter>
             <name>decay_rate</name>
             <type>Constant</type>
@@ -149,7 +164,7 @@
     </parameters>
     <process_variables>
         <process_variable>
-            <name>conc</name>
+            <name>Si</name>
             <components>1</components>
             <order>1</order>
             <initial_condition>c_ini</initial_condition>
diff --git a/Tests/Data/Parabolic/ComponentTransport/elder/elder.prj b/Tests/Data/Parabolic/ComponentTransport/elder/elder.prj
index 8b6d7c0b7d254ac7ea2e91fea9198dbc65d1ebdc..c26dc32965698184c59672ee93a32426045eaea9 100644
--- a/Tests/Data/Parabolic/ComponentTransport/elder/elder.prj
+++ b/Tests/Data/Parabolic/ComponentTransport/elder/elder.prj
@@ -8,7 +8,7 @@
             <type>ComponentTransport</type>
             <integration_order>2</integration_order>
             <process_variables>
-                <concentration>conc</concentration>
+                <concentration>Si</concentration>
                 <pressure>pressure</pressure>
             </process_variables>
             <fluid>
@@ -46,15 +46,45 @@
             <decay_rate>decay_rate</decay_rate>
             <fluid_reference_density>rho_fluid</fluid_reference_density>
             <retardation_factor>retardation_factor</retardation_factor>
-            <solute_dispersivity_longitudinal>alpha_l</solute_dispersivity_longitudinal>
-            <solute_dispersivity_transverse>alpha_t</solute_dispersivity_transverse>
-            <molecular_diffusion_coefficient>Dm</molecular_diffusion_coefficient>
             <specific_body_force>0 0 -9.81</specific_body_force>
             <secondary_variables>
                 <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/>
             </secondary_variables>
         </process>
     </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>3.57e-6</value>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
     <time_loop>
         <processes>
             <process ref="HC">
@@ -93,7 +123,7 @@
                 </pair>
             </timesteps>
             <variables>
-                <variable>conc</variable>
+                <variable>Si</variable>
                 <variable>pressure</variable>
                 <variable>darcy_velocity</variable>
             </variables>
@@ -105,21 +135,6 @@
             <type>Constant</type>
             <value>1000.0</value>
         </parameter>
-        <parameter>
-            <name>alpha_l</name>
-            <type>Constant</type>
-            <value>0</value>
-        </parameter>
-        <parameter>
-            <name>alpha_t</name>
-            <type>Constant</type>
-            <value>0</value>
-        </parameter>
-        <parameter>
-            <name>Dm</name>
-            <type>Constant</type>
-            <value>3.57e-6</value>
-        </parameter>
         <parameter>
             <name>decay_rate</name>
             <type>Constant</type>
@@ -176,7 +191,7 @@
     </parameters>
     <process_variables>
         <process_variable>
-            <name>conc</name>
+            <name>Si</name>
             <components>1</components>
             <order>1</order>
             <initial_condition>c_ini</initial_condition>
diff --git a/Tests/Data/Parabolic/ComponentTransport/goswami/goswami_input.prj b/Tests/Data/Parabolic/ComponentTransport/goswami/goswami_input.prj
index 1d36fa6fee6e0264987321269a8899322c092f90..0609c824eeab40229b7963e2d2d044d5b86b75a6 100644
--- a/Tests/Data/Parabolic/ComponentTransport/goswami/goswami_input.prj
+++ b/Tests/Data/Parabolic/ComponentTransport/goswami/goswami_input.prj
@@ -11,7 +11,7 @@
             <type>ComponentTransport</type>
             <integration_order>2</integration_order>
             <process_variables>
-                <concentration>concentration</concentration>
+                <concentration>Si</concentration>
                 <pressure>pressure</pressure>
             </process_variables>
             <fluid>
@@ -43,9 +43,6 @@
                 </porous_medium>
             </porous_medium>
             <fluid_reference_density>rho_fluid</fluid_reference_density>
-            <solute_dispersivity_longitudinal>beta_l</solute_dispersivity_longitudinal>
-            <solute_dispersivity_transverse>beta_t</solute_dispersivity_transverse>
-            <molecular_diffusion_coefficient>Dm</molecular_diffusion_coefficient>
             <retardation_factor>retardation</retardation_factor>
             <decay_rate>decay</decay_rate>
             <specific_body_force>0 -9.81</specific_body_force>
@@ -54,6 +51,39 @@
             </secondary_variables>
         </process>
     </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>0</value>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>5e-3</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0.0005</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
     <time_loop>
         <processes>
             <process ref="ComponentTransport">
@@ -109,7 +139,7 @@
                 </pair>
             </timesteps>
             <variables>
-                <variable>concentration</variable>
+                <variable>Si</variable>
                 <variable>pressure</variable>
                 <variable>darcy_velocity</variable>
             </variables>
@@ -121,11 +151,6 @@
             <type>Constant</type>
             <value>1000</value>
         </parameter>
-        <parameter>
-            <name>Dm</name>
-            <type>Constant</type>
-            <value>0</value>
-        </parameter>
         <parameter>
             <name>retardation</name>
             <type>Constant</type>
@@ -136,16 +161,6 @@
             <type>Constant</type>
             <value>0</value>
         </parameter>
-        <parameter>
-            <name>beta_l</name>
-            <type>Constant</type>
-            <value>5e-3</value>
-        </parameter>
-        <parameter>
-            <name>beta_t</name>
-            <type>Constant</type>
-            <value>0.0005</value>
-        </parameter>
         <parameter>
             <name>c_ini</name>
             <type>MeshNode</type>
@@ -169,7 +184,7 @@
     </parameters>
     <process_variables>
         <process_variable>
-            <name>concentration</name>
+            <name>Si</name>
             <components>1</components>
             <order>1</order>
             <initial_condition>c_ini</initial_condition>
diff --git a/Tests/Data/Parabolic/ComponentTransport/heterogeneous/ogs5_H_2D/ogs5_H_2d.prj b/Tests/Data/Parabolic/ComponentTransport/heterogeneous/ogs5_H_2D/ogs5_H_2d.prj
index e326e799b1473fa03acc1b708189294c49ccb8e7..856588da760591d5bc4ccb804776d8e90a5c7ff4 100644
--- a/Tests/Data/Parabolic/ComponentTransport/heterogeneous/ogs5_H_2D/ogs5_H_2d.prj
+++ b/Tests/Data/Parabolic/ComponentTransport/heterogeneous/ogs5_H_2D/ogs5_H_2d.prj
@@ -8,7 +8,7 @@
             <type>ComponentTransport</type>
             <integration_order>2</integration_order>
             <process_variables>
-                <concentration>concentration</concentration>
+                <concentration>Si</concentration>
                 <pressure>pressure</pressure>
             </process_variables>
             <fluid>
@@ -38,9 +38,6 @@
                 </porous_medium>
             </porous_medium>
             <fluid_reference_density>rho_fluid</fluid_reference_density>
-            <solute_dispersivity_longitudinal>beta_l</solute_dispersivity_longitudinal>
-            <solute_dispersivity_transverse>beta_t</solute_dispersivity_transverse>
-            <molecular_diffusion_coefficient>Dm</molecular_diffusion_coefficient>
             <retardation_factor>retardation</retardation_factor>
             <decay_rate>decay</decay_rate>
             <specific_body_force>0 0</specific_body_force>
@@ -49,6 +46,39 @@
             </secondary_variables>
         </process>
     </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>2e-9</value>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>1</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0.1</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
     <time_loop>
         <processes>
             <process ref="hc">
@@ -84,7 +114,7 @@
                 </pair>
             </timesteps>
             <variables>
-                <variable>concentration</variable>
+                <variable>Si</variable>
                 <variable>pressure</variable>
                 <variable>darcy_velocity</variable>
             </variables>
@@ -96,11 +126,6 @@
             <type>Constant</type>
             <value>1000</value>
         </parameter>
-        <parameter>
-            <name>Dm</name>
-            <type>Constant</type>
-            <value>2e-9</value>
-        </parameter>
         <parameter>
             <name>retardation</name>
             <type>Constant</type>
@@ -111,16 +136,6 @@
             <type>Constant</type>
             <value>0</value>
         </parameter>
-        <parameter>
-            <name>beta_l</name>
-            <type>Constant</type>
-            <value>1</value>
-        </parameter>
-        <parameter>
-            <name>beta_t</name>
-            <type>Constant</type>
-            <value>0.1</value>
-        </parameter>
         <parameter>
             <name>c1</name>
             <type>Constant</type>
@@ -161,7 +176,7 @@
     </parameters>
     <process_variables>
         <process_variable>
-            <name>concentration</name>
+            <name>Si</name>
             <components>1</components>
             <order>1</order>
             <initial_condition>c0</initial_condition>
diff --git a/Tests/Data/Parabolic/ComponentTransport/heterogeneous/ogs5_H_3D/ogs5_H_3d.prj b/Tests/Data/Parabolic/ComponentTransport/heterogeneous/ogs5_H_3D/ogs5_H_3d.prj
index 0c7c08e1c3a746ae03e6082f69a73d8f3782a0f4..2e84856f6cefaca1a00d8de681d94d44750783fd 100644
--- a/Tests/Data/Parabolic/ComponentTransport/heterogeneous/ogs5_H_3D/ogs5_H_3d.prj
+++ b/Tests/Data/Parabolic/ComponentTransport/heterogeneous/ogs5_H_3D/ogs5_H_3d.prj
@@ -11,7 +11,7 @@
             <type>ComponentTransport</type>
             <integration_order>2</integration_order>
             <process_variables>
-                <concentration>concentration</concentration>
+                <concentration>Si</concentration>
                 <pressure>pressure</pressure>
             </process_variables>
             <fluid>
@@ -41,9 +41,6 @@
                 </porous_medium>
             </porous_medium>
             <fluid_reference_density>rho_fluid</fluid_reference_density>
-            <solute_dispersivity_longitudinal>beta_l</solute_dispersivity_longitudinal>
-            <solute_dispersivity_transverse>beta_t</solute_dispersivity_transverse>
-            <molecular_diffusion_coefficient>Dm</molecular_diffusion_coefficient>
             <retardation_factor>retardation</retardation_factor>
             <decay_rate>decay</decay_rate>
             <specific_body_force>0 0 -9.81</specific_body_force>
@@ -52,6 +49,39 @@
             </secondary_variables>
         </process>
     </processes>
+    <media>
+        <medium id="0">
+            <phases>
+                <phase>
+                    <type>AqueousLiquid</type>
+                    <components>
+                        <component>
+                            <name>Si</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>2e-9</value>
+                                </property>
+                            </properties>
+                        </component>
+                    </components>
+                </phase>
+            </phases>
+            <properties>
+                <property>
+                    <name>longitudinal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>1</value>
+                </property>
+                <property>
+                    <name>transversal_dispersivity</name>
+                    <type>Constant</type>
+                    <value>0.1</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
     <time_loop>
         <processes>
             <process ref="hc">
@@ -87,7 +117,7 @@
                 </pair>
             </timesteps>
             <variables>
-                <variable>concentration</variable>
+                <variable>Si</variable>
                 <variable>pressure</variable>
                 <variable>darcy_velocity</variable>
             </variables>
@@ -99,11 +129,6 @@
             <type>Constant</type>
             <value>1000</value>
         </parameter>
-        <parameter>
-            <name>Dm</name>
-            <type>Constant</type>
-            <value>2e-9</value>
-        </parameter>
         <parameter>
             <name>retardation</name>
             <type>Constant</type>
@@ -114,16 +139,6 @@
             <type>Constant</type>
             <value>0</value>
         </parameter>
-        <parameter>
-            <name>beta_l</name>
-            <type>Constant</type>
-            <value>1</value>
-        </parameter>
-        <parameter>
-            <name>beta_t</name>
-            <type>Constant</type>
-            <value>0.1</value>
-        </parameter>
         <parameter>
             <name>c1</name>
             <type>Constant</type>
@@ -169,7 +184,7 @@
     </parameters>
     <process_variables>
         <process_variable>
-            <name>concentration</name>
+            <name>Si</name>
             <components>1</components>
             <order>1</order>
             <initial_condition>c0</initial_condition>