From f47f4d4f5c0dd4e73902c0982a2497860bd575c9 Mon Sep 17 00:00:00 2001
From: renchao_lu <renchao.lu@gmail.com>
Date: Wed, 13 Feb 2019 14:10:20 +0100
Subject: [PATCH] [T] Added a benchmark for testing.

---
 ProcessLib/ComponentTransport/Tests.cmake     |  48 ++
 ...eAndAdvectionAndDispersion_3Components.prj | 542 ++++++++++++++++++
 ...nents_pcs_3_ts_100_t_5.700000_expected.vtu |   3 +
 ...ents_pcs_3_ts_200_t_35.700000_expected.vtu |   3 +
 ...nts_pcs_3_ts_300_t_155.700000_expected.vtu |   3 +
 ...nts_pcs_3_ts_400_t_315.700000_expected.vtu |   3 +
 ...nts_pcs_3_ts_500_t_495.700000_expected.vtu |   3 +
 ...nts_pcs_3_ts_600_t_720.700000_expected.vtu |   3 +
 ...nts_pcs_3_ts_672_t_900.000000_expected.vtu |   3 +
 9 files changed, 611 insertions(+)
 create mode 100644 Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components.prj
 create mode 100644 Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_100_t_5.700000_expected.vtu
 create mode 100644 Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_200_t_35.700000_expected.vtu
 create mode 100644 Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_300_t_155.700000_expected.vtu
 create mode 100644 Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_400_t_315.700000_expected.vtu
 create mode 100644 Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_500_t_495.700000_expected.vtu
 create mode 100644 Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_600_t_720.700000_expected.vtu
 create mode 100644 Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_672_t_900.000000_expected.vtu

diff --git a/ProcessLib/ComponentTransport/Tests.cmake b/ProcessLib/ComponentTransport/Tests.cmake
index 5b718214f4d..cff0da3aa58 100644
--- a/ProcessLib/ComponentTransport/Tests.cmake
+++ b/ProcessLib/ComponentTransport/Tests.cmake
@@ -279,6 +279,54 @@ AddTest(
     VIS DiffusionAndStorageAndAdvectionAndDispersion_pcs_1_ts_672_t_900.000000.vtu
 )
 
+AddTest(
+    NAME 2D_MultiComponentTransport_StaggeredScheme_DiffusionAndStorageAndAdvectionAndDispersion
+    PATH Parabolic/ComponentTransport/StaggeredScheme
+    EXECUTABLE ogs
+    EXECUTABLE_ARGS DiffusionAndStorageAndAdvectionAndDispersion_3Components.prj
+    WRAPPER time
+    TESTER vtkdiff
+    REQUIREMENTS NOT OGS_USE_MPI
+    RUNTIME 26
+    DIFF_DATA
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_100_t_5.700000.vtu Si Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_200_t_35.700000.vtu Si Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_300_t_155.700000.vtu Si Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_400_t_315.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_400_t_315.700000.vtu Si Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_500_t_495.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_500_t_495.700000.vtu Si Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_600_t_720.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_600_t_720.700000.vtu Si Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_672_t_900.000000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_672_t_900.000000.vtu Si Si 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_100_t_5.700000.vtu Al Al 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_200_t_35.700000.vtu Al Al 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_300_t_155.700000.vtu Al Al 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_400_t_315.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_400_t_315.700000.vtu Al Al 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_500_t_495.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_500_t_495.700000.vtu Al Al 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_600_t_720.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_600_t_720.700000.vtu Al Al 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_672_t_900.000000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_672_t_900.000000.vtu Al Al 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_100_t_5.700000.vtu Cl Cl 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_200_t_35.700000.vtu Cl Cl 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_300_t_155.700000.vtu Cl Cl 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_400_t_315.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_400_t_315.700000.vtu Cl Cl 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_500_t_495.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_500_t_495.700000.vtu Cl Cl 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_600_t_720.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_600_t_720.700000.vtu Cl Cl 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_672_t_900.000000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_672_t_900.000000.vtu Cl Cl 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_100_t_5.700000.vtu pressure pressure 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_200_t_35.700000.vtu pressure pressure 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_300_t_155.700000.vtu pressure pressure 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_400_t_315.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_400_t_315.700000.vtu pressure pressure 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_500_t_495.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_500_t_495.700000.vtu pressure pressure 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_600_t_720.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_600_t_720.700000.vtu pressure pressure 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_672_t_900.000000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_672_t_900.000000.vtu pressure pressure 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_100_t_5.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_100_t_5.700000.vtu darcy_velocity darcy_velocity 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_200_t_35.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_200_t_35.700000.vtu darcy_velocity darcy_velocity 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_300_t_155.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_300_t_155.700000.vtu darcy_velocity darcy_velocity 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_400_t_315.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_400_t_315.700000.vtu darcy_velocity darcy_velocity 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_500_t_495.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_500_t_495.700000.vtu darcy_velocity darcy_velocity 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_600_t_720.700000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_600_t_720.700000.vtu darcy_velocity darcy_velocity 1e-7 1e-10
+    DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_672_t_900.000000_expected.vtu DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_672_t_900.000000.vtu darcy_velocity darcy_velocity 1e-7 1e-10
+    VIS DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_672_t_900.000000.vtu
+)
+
 AddTest(
     NAME 2D_ComponentTransport_DiffusionAndStorageAndAdvectionAndDecay
     PATH Parabolic/ComponentTransport/SimpleSynthetics
diff --git a/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components.prj b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components.prj
new file mode 100644
index 00000000000..a81b5635bba
--- /dev/null
+++ b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components.prj
@@ -0,0 +1,542 @@
+<?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>
+            <coupling_scheme>staggered</coupling_scheme>
+            <process_variables>
+                <concentration>Si</concentration>
+                <concentration>Al</concentration>
+                <concentration>Cl</concentration>
+                <pressure>pressure</pressure>
+            </process_variables>
+            <fluid>
+                <density>
+                    <type>ConcentrationAndPressureDependent</type>
+                    <reference_density>1</reference_density>
+                    <reference_concentration>0</reference_concentration>
+                    <fluid_density_concentration_difference_ratio>0.026</fluid_density_concentration_difference_ratio>
+                    <reference_pressure>0.5</reference_pressure>
+                    <fluid_density_pressure_difference_ratio>2e-5</fluid_density_pressure_difference_ratio>
+                </density>
+                <viscosity>
+                    <type>Constant</type>
+                    <value>1.0e-3</value>
+                </viscosity>
+            </fluid>
+            <porous_medium>
+                <porous_medium id="0">
+                    <permeability>
+                        <permeability_tensor_entries>kappa1</permeability_tensor_entries>
+                        <type>Constant</type>
+                    </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>
+            <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>1e-5</value>
+                                </property>
+                            </properties>
+                        </component>
+                        <component>
+                            <name>Al</name>
+                            <properties>
+                                <property>
+                                    <name>molecular_diffusion</name>
+                                    <type>Constant</type>
+                                    <value>1e-5</value>
+                                </property>
+                            </properties>
+                        </component>
+                        <component>
+                            <name>Cl</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>
+        <global_process_coupling>
+            <max_iter>6</max_iter>
+            <convergence_criteria>
+                <!-- convergence criterion for the first process (p) -->
+                <convergence_criterion>
+                    <type>DeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <reltol>5e-3</reltol>
+                </convergence_criterion>
+                <!-- convergence criterion for the second process (Si) -->
+                <convergence_criterion>
+                    <type>DeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <reltol>5e-3</reltol>
+                </convergence_criterion>
+                <!-- convergence criterion for the second process (Al) -->
+                <convergence_criterion>
+                    <type>DeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <reltol>5e-3</reltol>
+                </convergence_criterion>
+                <!-- convergence criterion for the second process (Cl) -->
+                <convergence_criterion>
+                    <type>DeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <reltol>5e-3</reltol>
+                </convergence_criterion>
+            </convergence_criteria>
+        </global_process_coupling>
+        <processes>
+            <!-- convergence criterion for hydraulic equation -->
+             <process ref="hc">
+                <nonlinear_solver>basic_picard</nonlinear_solver>
+                <convergence_criterion>
+                    <type>DeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <reltol>5e-3</reltol>
+                </convergence_criterion>
+                <time_discretization>
+                    <type>BackwardEuler</type>
+                </time_discretization>
+                <time_stepping>
+                    <type>FixedTimeStepping</type>
+                    <t_initial>0.0</t_initial>
+                    <t_end>9e2</t_end>
+                    <timesteps>
+                        <pair>
+                            <repeat>10</repeat>
+                            <delta_t>1e-2</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>40</repeat>
+                            <delta_t>4e-2</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>8e-2</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>2e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>4e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>8e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>200</repeat>
+                            <delta_t>16e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>100</repeat>
+                            <delta_t>20e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>500</repeat>
+                            <delta_t>25e-1</delta_t>
+                        </pair>
+                    </timesteps>
+                </time_stepping>
+            </process>
+           <!-- convergence criterion for component transport equation (Si) -->
+             <process ref="hc">
+                <nonlinear_solver>basic_picard</nonlinear_solver>
+                <convergence_criterion>
+                    <type>DeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <reltol>5e-3</reltol>
+                </convergence_criterion>
+                <time_discretization>
+                    <type>BackwardEuler</type>
+                </time_discretization>
+                <time_stepping>
+                    <type>FixedTimeStepping</type>
+                    <t_initial>0.0</t_initial>
+                    <t_end>9e2</t_end>
+                    <timesteps>
+                        <pair>
+                            <repeat>10</repeat>
+                            <delta_t>1e-2</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>40</repeat>
+                            <delta_t>4e-2</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>8e-2</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>2e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>4e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>8e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>200</repeat>
+                            <delta_t>16e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>100</repeat>
+                            <delta_t>20e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>500</repeat>
+                            <delta_t>25e-1</delta_t>
+                        </pair>
+                    </timesteps>
+                </time_stepping>
+            </process>
+           <!-- convergence criterion for component transport equation (Al) -->
+             <process ref="hc">
+                <nonlinear_solver>basic_picard</nonlinear_solver>
+                <convergence_criterion>
+                    <type>DeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <reltol>5e-3</reltol>
+                </convergence_criterion>
+                <time_discretization>
+                    <type>BackwardEuler</type>
+                </time_discretization>
+                <time_stepping>
+                    <type>FixedTimeStepping</type>
+                    <t_initial>0.0</t_initial>
+                    <t_end>9e2</t_end>
+                    <timesteps>
+                        <pair>
+                            <repeat>10</repeat>
+                            <delta_t>1e-2</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>40</repeat>
+                            <delta_t>4e-2</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>8e-2</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>2e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>4e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>8e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>200</repeat>
+                            <delta_t>16e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>100</repeat>
+                            <delta_t>20e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>500</repeat>
+                            <delta_t>25e-1</delta_t>
+                        </pair>
+                    </timesteps>
+                </time_stepping>
+            </process>
+           <!-- convergence criterion for component transport equation (Cl) -->
+             <process ref="hc">
+                <nonlinear_solver>basic_picard</nonlinear_solver>
+                <convergence_criterion>
+                    <type>DeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <reltol>5e-3</reltol>
+                </convergence_criterion>
+                <time_discretization>
+                    <type>BackwardEuler</type>
+                </time_discretization>
+                <time_stepping>
+                    <type>FixedTimeStepping</type>
+                    <t_initial>0.0</t_initial>
+                    <t_end>9e2</t_end>
+                    <timesteps>
+                        <pair>
+                            <repeat>10</repeat>
+                            <delta_t>1e-2</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>40</repeat>
+                            <delta_t>4e-2</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>8e-2</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>2e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>4e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>50</repeat>
+                            <delta_t>8e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>200</repeat>
+                            <delta_t>16e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>100</repeat>
+                            <delta_t>20e-1</delta_t>
+                        </pair>
+                        <pair>
+                            <repeat>500</repeat>
+                            <delta_t>25e-1</delta_t>
+                        </pair>
+                    </timesteps>
+                </time_stepping>
+            </process>
+        </processes>
+        <output>
+            <type>VTK</type>
+            <prefix>DiffusionAndStorageAndAdvectionAndDispersion_3Components</prefix>
+            <timesteps>
+                <pair>
+                    <repeat>1</repeat>
+                    <each_steps>100</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>rho_fluid</name>
+            <type>Constant</type>
+            <value>1000</value>
+        </parameter>
+        <parameter>
+            <name>retardation</name>
+            <type>Constant</type>
+            <value>1</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>1</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>
+        <parameter>
+            <name>constant_porosity_parameter</name>
+            <type>Constant</type>
+            <value>0.2</value>
+        </parameter>
+        <parameter>
+            <name>kappa1</name>
+            <type>Constant</type>
+            <values>1.239e-7 0 0 1.239e-7</values>
+        </parameter>
+    </parameters>
+    <process_variables>
+        <process_variable>
+            <name>Si</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>
+            <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>
+            <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>10</max_iter>
+            <linear_solver>general_linear_solver</linear_solver>
+        </nonlinear_solver>
+    </nonlinear_solvers>
+    <linear_solvers>
+        <linear_solver>
+            <name>general_linear_solver</name>
+            <lis>-i bicgstab -p ilut -tol 1e-8 -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/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_100_t_5.700000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_100_t_5.700000_expected.vtu
new file mode 100644
index 00000000000..668d714294b
--- /dev/null
+++ b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_100_t_5.700000_expected.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:110321c2008e9f34f00dd6c9c0019d8dfa871ee8dac1a1b990ab71f744ee5543
+size 76439
diff --git a/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_200_t_35.700000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_200_t_35.700000_expected.vtu
new file mode 100644
index 00000000000..6dcdbfca0de
--- /dev/null
+++ b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_200_t_35.700000_expected.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8afb69f6537a2cd5c8750c493e332e1d68003cb899f03fe18da0893383c8bf46
+size 70271
diff --git a/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_300_t_155.700000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_300_t_155.700000_expected.vtu
new file mode 100644
index 00000000000..940df7c6ec8
--- /dev/null
+++ b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_300_t_155.700000_expected.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bce7a2daec50872921d6aacf1c93e14ba4df2095fd95443965f24db087461932
+size 68508
diff --git a/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_400_t_315.700000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_400_t_315.700000_expected.vtu
new file mode 100644
index 00000000000..7120afc427f
--- /dev/null
+++ b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_400_t_315.700000_expected.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8c1c1fe86d7259c92e9b546c114249c22f964a266f398b8557edf15c66b8f24c
+size 67604
diff --git a/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_500_t_495.700000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_500_t_495.700000_expected.vtu
new file mode 100644
index 00000000000..35648ad7648
--- /dev/null
+++ b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_500_t_495.700000_expected.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1f0a07545ee33706a59a8eccc8f0561336823b1347829731142e07e43fddbd1b
+size 72684
diff --git a/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_600_t_720.700000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_600_t_720.700000_expected.vtu
new file mode 100644
index 00000000000..fdd7d7f7b9f
--- /dev/null
+++ b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_600_t_720.700000_expected.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ea21f4d447dc3e730446842e8547765ab096c74661ea5b869a96a788cedc5a6f
+size 71124
diff --git a/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_672_t_900.000000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_672_t_900.000000_expected.vtu
new file mode 100644
index 00000000000..99f9a385de7
--- /dev/null
+++ b/Tests/Data/Parabolic/ComponentTransport/StaggeredScheme/DiffusionAndStorageAndAdvectionAndDispersion_3Components_pcs_3_ts_672_t_900.000000_expected.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a733a980aef2f290b8725302e9ddec8ad9836c0df02cde8e89bba6d20c123667
+size 69186
-- 
GitLab