diff --git a/ProcessLib/ComponentTransport/Tests.cmake b/ProcessLib/ComponentTransport/Tests.cmake index 0167df0511de1b83ff6a2ff6d8b0035be9ddf8ad..3d95092f9c42841bc5344f92005d017669ec69b1 100644 --- a/ProcessLib/ComponentTransport/Tests.cmake +++ b/ProcessLib/ComponentTransport/Tests.cmake @@ -998,3 +998,80 @@ AddTest( 1d_isofrac_pcs_3_ts_210_t_21000.000000_expected.vtu 1d_isofrac_flag_formula_pcs_3_ts_210_t_21000.000000.vtu H H 1e-10 1e-16 RUNTIME 85 ) + +AddTest( + NAME 1D_ReactiveMassTransport_KineticReactantBlockTest_AllAsComponents + PATH Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents + EXECUTABLE ogs + EXECUTABLE_ARGS KineticReactant2.prj + WRAPPER time + TESTER vtkdiff + REQUIREMENTS NOT OGS_USE_MPI + DIFF_DATA + KineticReactant2_pcs_4_ts_42_t_4200.000000_expected.vtu KineticReactant2_pcs_4_ts_42_t_4200.000000.vtu pressure pressure 1e-6 1e-10 + KineticReactant2_pcs_4_ts_84_t_8400.000000_expected.vtu KineticReactant2_pcs_4_ts_84_t_8400.000000.vtu pressure pressure 1e-6 1e-10 + KineticReactant2_pcs_4_ts_126_t_12600.000000_expected.vtu KineticReactant2_pcs_4_ts_126_t_12600.000000.vtu pressure pressure 1e-6 1e-10 +KineticReactant2_pcs_4_ts_168_t_16800.000000_expected.vtu KineticReactant2_pcs_4_ts_168_t_16800.000000.vtu pressure pressure 1e-6 1e-10 + KineticReactant2_pcs_4_ts_210_t_21000.000000_expected.vtu KineticReactant2_pcs_4_ts_210_t_21000.000000.vtu pressure pressure 1e-6 1e-10 + KineticReactant2_pcs_4_ts_42_t_4200.000000_expected.vtu KineticReactant2_pcs_4_ts_42_t_4200.000000.vtu Synthetica Synthetica 1e-10 1e-16 + KineticReactant2_pcs_4_ts_84_t_8400.000000_expected.vtu KineticReactant2_pcs_4_ts_84_t_8400.000000.vtu Synthetica Synthetica 1e-10 1e-16 + KineticReactant2_pcs_4_ts_126_t_12600.000000_expected.vtu KineticReactant2_pcs_4_ts_126_t_12600.000000.vtu Synthetica Synthetica 1e-10 1e-16 + KineticReactant2_pcs_4_ts_168_t_16800.000000_expected.vtu KineticReactant2_pcs_4_ts_168_t_16800.000000.vtu Synthetica Synthetica 1e-10 1e-16 + KineticReactant2_pcs_4_ts_210_t_21000.000000_expected.vtu KineticReactant2_pcs_4_ts_210_t_21000.000000.vtu Synthetica Synthetica 1e-10 1e-16 + KineticReactant2_pcs_4_ts_42_t_4200.000000_expected.vtu KineticReactant2_pcs_4_ts_42_t_4200.000000.vtu Syntheticb Syntheticb 1e-10 1e-16 + KineticReactant2_pcs_4_ts_84_t_8400.000000_expected.vtu KineticReactant2_pcs_4_ts_84_t_8400.000000.vtu Syntheticb Syntheticb 1e-10 1e-16 + KineticReactant2_pcs_4_ts_126_t_12600.000000_expected.vtu KineticReactant2_pcs_4_ts_126_t_12600.000000.vtu Syntheticb Syntheticb 1e-10 1e-16 + KineticReactant2_pcs_4_ts_168_t_16800.000000_expected.vtu KineticReactant2_pcs_4_ts_168_t_16800.000000.vtu Syntheticb Syntheticb 1e-10 1e-16 + KineticReactant2_pcs_4_ts_210_t_21000.000000_expected.vtu KineticReactant2_pcs_4_ts_210_t_21000.000000.vtu Syntheticb Syntheticb 1e-10 1e-16 + KineticReactant2_pcs_4_ts_42_t_4200.000000_expected.vtu KineticReactant2_pcs_4_ts_42_t_4200.000000.vtu Productd Productd 1e-10 1e-16 + KineticReactant2_pcs_4_ts_84_t_8400.000000_expected.vtu KineticReactant2_pcs_4_ts_84_t_8400.000000.vtu Productd Productd 1e-10 1e-16 + KineticReactant2_pcs_4_ts_126_t_12600.000000_expected.vtu KineticReactant2_pcs_4_ts_126_t_12600.000000.vtu Productd Productd 1e-10 1e-16 + KineticReactant2_pcs_4_ts_168_t_16800.000000_expected.vtu KineticReactant2_pcs_4_ts_168_t_16800.000000.vtu Productd Productd 1e-10 1e-16 + KineticReactant2_pcs_4_ts_210_t_21000.000000_expected.vtu KineticReactant2_pcs_4_ts_210_t_21000.000000.vtu Productd Productd 1e-10 1e-16 + KineticReactant2_pcs_4_ts_42_t_4200.000000_expected.vtu KineticReactant2_pcs_4_ts_42_t_4200.000000.vtu H H 1e-10 1e-16 + KineticReactant2_pcs_4_ts_84_t_8400.000000_expected.vtu KineticReactant2_pcs_4_ts_84_t_8400.000000.vtu H H 1e-10 1e-16 + KineticReactant2_pcs_4_ts_126_t_12600.000000_expected.vtu KineticReactant2_pcs_4_ts_126_t_12600.000000.vtu H H 1e-10 1e-16 + KineticReactant2_pcs_4_ts_168_t_16800.000000_expected.vtu KineticReactant2_pcs_4_ts_168_t_16800.000000.vtu H H 1e-10 1e-16 + KineticReactant2_pcs_4_ts_210_t_21000.000000_expected.vtu KineticReactant2_pcs_4_ts_210_t_21000.000000.vtu H H 1e-10 1e-16 +) + +AddTest( + NAME 2D_ReactiveMassTransport_KineticReactantBlockTest_AllAsComponents + PATH Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents + EXECUTABLE ogs + EXECUTABLE_ARGS KineticReactant2_2d.prj + WRAPPER time + TESTER vtkdiff + REQUIREMENTS NOT OGS_USE_MPI + DIFF_DATA + KineticReactant2_2d_pcs_4_ts_4_t_400.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_4_t_400.000000.vtu pressure pressure 1e-6 1e-10 + KineticReactant2_2d_pcs_4_ts_8_t_800.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_8_t_800.000000.vtu pressure pressure 1e-6 1e-10 + KineticReactant2_2d_pcs_4_ts_12_t_1200.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_12_t_1200.000000.vtu pressure pressure 1e-6 1e-10 + KineticReactant2_2d_pcs_4_ts_16_t_1600.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_16_t_1600.000000.vtu pressure pressure 1e-6 1e-10 + KineticReactant2_2d_pcs_4_ts_20_t_2000.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_20_t_2000.000000.vtu pressure pressure 1e-6 1e-10 + KineticReactant2_2d_pcs_4_ts_4_t_400.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_4_t_400.000000.vtu pressure pressure 1e-6 1e-10 + KineticReactant2_2d_pcs_4_ts_8_t_800.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_8_t_800.000000.vtu pressure pressure 1e-6 1e-10 + KineticReactant2_2d_pcs_4_ts_12_t_1200.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_12_t_1200.000000.vtu pressure pressure 1e-6 1e-10 + KineticReactant2_2d_pcs_4_ts_16_t_1600.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_16_t_1600.000000.vtu pressure pressure 1e-6 1e-10 + KineticReactant2_2d_pcs_4_ts_20_t_2000.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_20_t_2000.000000.vtu pressure pressure 1e-6 1e-10 + KineticReactant2_2d_pcs_4_ts_4_t_400.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_4_t_400.000000.vtu Synthetica Synthetica 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_8_t_800.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_8_t_800.000000.vtu Synthetica Synthetica 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_12_t_1200.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_12_t_1200.000000.vtu Synthetica Synthetica 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_16_t_1600.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_16_t_1600.000000.vtu Synthetica Synthetica 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_20_t_2000.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_20_t_2000.000000.vtu Synthetica Synthetica 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_4_t_400.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_4_t_400.000000.vtu Syntheticb Syntheticb 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_8_t_800.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_8_t_800.000000.vtu Syntheticb Syntheticb 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_12_t_1200.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_12_t_1200.000000.vtu Syntheticb Syntheticb 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_16_t_1600.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_16_t_1600.000000.vtu Syntheticb Syntheticb 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_20_t_2000.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_20_t_2000.000000.vtu Syntheticb Syntheticb 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_4_t_400.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_4_t_400.000000.vtu Productd Productd 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_8_t_800.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_8_t_800.000000.vtu Productd Productd 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_12_t_1200.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_12_t_1200.000000.vtu Productd Productd 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_16_t_1600.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_16_t_1600.000000.vtu Productd Productd 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_20_t_2000.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_20_t_2000.000000.vtu Productd Productd 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_4_t_400.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_4_t_400.000000.vtu H H 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_8_t_800.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_8_t_800.000000.vtu H H 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_12_t_1200.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_12_t_1200.000000.vtu H H 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_16_t_1600.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_16_t_1600.000000.vtu H H 1e-10 1e-16 + KineticReactant2_2d_pcs_4_ts_20_t_2000.000000_expected.vtu KineticReactant2_2d_pcs_4_ts_20_t_2000.000000.vtu H H 1e-10 1e-16 +) diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/1d_isofrac.vtu b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/1d_isofrac.vtu new file mode 100644 index 0000000000000000000000000000000000000000..ea2d746aaabe867ef555d756f561bae3f8374658 --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/1d_isofrac.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20c34baaa7dca4b331a8c4a8a1f9b4f04c47e7fe7b39118ff6be612edba3d78d +size 15212 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2.gml b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2.gml new file mode 100644 index 0000000000000000000000000000000000000000..84fdc946f1e1268c8c14562b41c1609aa90b7246 --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2.gml @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdbdd63e2c98e475116dfc68a9ec47e772427ca10478200a772e0829e9bf6d76 +size 402 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2.prj b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2.prj new file mode 100644 index 0000000000000000000000000000000000000000..49b98a3b51c2f9a82a43a7a74a1bbcac51aaa180 --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2.prj @@ -0,0 +1,527 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <mesh>1d_isofrac.vtu</mesh> + <geometry>KineticReactant2.gml</geometry> + <processes> + <process> + <name>hc</name> + <type>ComponentTransport</type> + <integration_order>2</integration_order> + <coupling_scheme>staggered</coupling_scheme> + <process_variables> + <concentration>H</concentration> + <concentration>Synthetica</concentration> + <concentration>Syntheticb</concentration> + <concentration>Productd</concentration> + <pressure>pressure</pressure> + </process_variables> + <fluid> + <density> + <type>Constant</type> + <value>1e3</value> + </density> + <viscosity> + <type>Constant</type> + <value>1e-3</value> + </viscosity> + </fluid> + <porous_medium> + <porous_medium id="0"> + <permeability> + <type>Constant</type> + <permeability_tensor_entries>kappa</permeability_tensor_entries> + </permeability> + <porosity> + <type>Constant</type> + <porosity_parameter>porosity</porosity_parameter> + </porosity> + <storage> + <type>Constant</type> + <value>0.0</value> + </storage> + </porous_medium> + </porous_medium> + <fluid_reference_density>rho_fluid</fluid_reference_density> + <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>H</name> + <properties> + <property> + <name>molecular_diffusion</name> + <type>Constant</type> + <value>1e-7</value> + </property> + <property> + <name>retardation_factor</name> + <type>Constant</type> + <value>1</value> + </property> + </properties> + </component> + <component> + <name>Synthetica</name> + <properties> + <property> + <name>molecular_diffusion</name> + <type>Constant</type> + <value>1e-12</value> + </property> + <property> + <name>retardation_factor</name> + <type>Constant</type> + <value>1</value> + </property> + </properties> + </component> + <component> + <name>Syntheticb</name> + <properties> + <property> + <name>molecular_diffusion</name> + <type>Constant</type> + <value>1e-12</value> + </property> + <property> + <name>retardation_factor</name> + <type>Constant</type> + <value>1</value> + </property> + </properties> + </component> + <component> + <name>Productd</name> + <properties> + <property> + <name>molecular_diffusion</name> + <type>Constant</type> + <value>1e-12</value> + </property> + <property> + <name>retardation_factor</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>0</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>1e-14</reltol> + </convergence_criterion> + <!-- convergence criterion for the second process (H) --> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</reltol> + </convergence_criterion> + <!-- convergence criterion for the second process (Synthetica) --> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</reltol> + </convergence_criterion> + <!-- convergence criterion for the second process (Syntheticb) --> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</reltol> + </convergence_criterion> + <!-- convergence criterion for the second process (Productd) --> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</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>1e-14</reltol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0.0</t_initial> + <t_end>21000</t_end> + <timesteps> + <pair> + <repeat>210</repeat> + <delta_t>100</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + <!-- convergence criterion for component transport equation (H) --> + <process ref="hc"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</reltol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0.0</t_initial> + <t_end>21000</t_end> + <timesteps> + <pair> + <repeat>210</repeat> + <delta_t>100</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + <!-- convergence criterion for component transport equation (Synthetica) --> + <process ref="hc"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</reltol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0.0</t_initial> + <t_end>21000</t_end> + <timesteps> + <pair> + <repeat>210</repeat> + <delta_t>100</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + <!-- convergence criterion for component transport equation (Syntheticb) --> + <process ref="hc"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</reltol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0.0</t_initial> + <t_end>21000</t_end> + <timesteps> + <pair> + <repeat>210</repeat> + <delta_t>100</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + <!-- convergence criterion for component transport equation (Productd) --> + <process ref="hc"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</reltol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0.0</t_initial> + <t_end>21000</t_end> + <timesteps> + <pair> + <repeat>210</repeat> + <delta_t>100</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>KineticReactant2</prefix> + <timesteps> + <pair> + <repeat>24</repeat> + <each_steps>42</each_steps> + </pair> + </timesteps> + <variables> + <variable>H</variable> + <variable>Synthetica</variable> + <variable>Syntheticb</variable> + <variable>Productd</variable> + <variable>pressure</variable> + <variable>darcy_velocity</variable> + </variables> + </output> + </time_loop> + <chemical_system chemical_solver="Phreeqc"> + <database>test.dat</database> + <solution> + <temperature>25</temperature> + <pressure>1</pressure> + <pe>4</pe> + <components> + <component>Synthetica</component> + <component>Syntheticb</component> + <component>Productd</component> + </components> + </solution> + <kinetic_reactants> + <kinetic_reactant> + <name>Synthetics_to_Productd</name> + <chemical_formula>Productd 1 Synthetica -1 Syntheticb -0.5</chemical_formula> + <initial_amount>1.0</initial_amount> + </kinetic_reactant> + </kinetic_reactants> + <rates> + <rate> + <kinetic_reactant>Synthetics_to_Productd</kinetic_reactant> + <expression> + <statement>Km = 10</statement> + <statement>U = 1e-4</statement> + <statement>rate = U * TOT("Synthetica") / (Km + TOT("Syntheticb"))</statement> + <statement>moles = rate * TIME</statement> + <statement>save moles</statement> + </expression> + </rate> + </rates> + </chemical_system> + <parameters> + <parameter> + <name>kappa</name> + <type>Constant</type> + <values>1.157e-12</values> + </parameter> + <parameter> + <name>porosity</name> + <type>Constant</type> + <value>1</value> + </parameter> + <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>p0</name> + <type>Constant</type> + <value>1e5</value> + </parameter> + <parameter> + <name>p_upstream</name> + <type>Constant</type> + <value>1e5</value> + </parameter> + <parameter> + <name>p_downstream_Neumann</name> + <type>Constant</type> + <value>-1.685e-2</value> + </parameter> + <parameter> + <name>c0_H</name> + <type>Constant</type> + <!--pH=7--> + <value>1e-7</value> + </parameter> + <parameter> + <name>c0_Synthetica</name> + <type>Constant</type> + <value>0.5</value> + </parameter> + <parameter> + <name>c0_Syntheticb</name> + <type>Constant</type> + <value>0.5</value> + </parameter> + <parameter> + <name>c0_Productd</name> + <type>Constant</type> + <value>0.0</value> + <!--type>Function</type> + <expression>1*x</expression--> + </parameter> + <parameter> + <name>c_H</name> + <type>Constant</type> + <!--pH=7--> + <value>1e-7</value> + </parameter> + <parameter> + <name>c_Synthetica</name> + <type>Constant</type> + <value>0.5</value> + </parameter> + <parameter> + <name>c_Syntheticb</name> + <type>Constant</type> + <value>0.5</value> + </parameter> + <parameter> + <name>c_Productd</name> + <type>Constant</type> + <value>0.00</value> + </parameter> + </parameters> + <process_variables> + <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>upstream</geometry> + <type>Dirichlet</type> + <parameter>p_upstream</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>geometry</geometrical_set> + <geometry>downstream</geometry> + <type>Neumann</type> + <parameter>p_downstream_Neumann</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>H</name> + <components>1</components> + <order>1</order> + <initial_condition>c0_H</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>geometry</geometrical_set> + <geometry>upstream</geometry> + <type>Dirichlet</type> + <parameter>c_H</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>Synthetica</name> + <components>1</components> + <order>1</order> + <initial_condition>c0_Synthetica</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>geometry</geometrical_set> + <geometry>upstream</geometry> + <type>Dirichlet</type> + <parameter>c_Synthetica</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>Syntheticb</name> + <components>1</components> + <order>1</order> + <initial_condition>c0_Syntheticb</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>geometry</geometrical_set> + <geometry>upstream</geometry> + <type>Dirichlet</type> + <parameter>c_Syntheticb</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>Productd</name> + <components>1</components> + <order>1</order> + <initial_condition>c0_Productd</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>geometry</geometrical_set> + <geometry>upstream</geometry> + <type>Dirichlet</type> + <parameter>c_Productd</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 cg -p jacobi -tol 1e-16 -maxiter 20000</lis--> + <eigen> + <solver_type>BiCGSTAB</solver_type> + <precon_type>ILUT</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-14</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/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d.gml b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d.gml new file mode 100644 index 0000000000000000000000000000000000000000..b22889ea64b9579d54a82615b4f7af0756e76bc0 --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d.gml @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbbab1bc2495fca2ba28adf2b243002873448fd5a59afcbe12919e1fa64b60f2 +size 778 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d.prj b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d.prj new file mode 100644 index 0000000000000000000000000000000000000000..a5e8d3ac4509248e6557e9afc4179f69df990abf --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d.prj @@ -0,0 +1,527 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <mesh>KineticReactant2_2d.vtu</mesh> + <geometry>KineticReactant2_2d.gml</geometry> + <processes> + <process> + <name>hc</name> + <type>ComponentTransport</type> + <integration_order>2</integration_order> + <coupling_scheme>staggered</coupling_scheme> + <process_variables> + <concentration>H</concentration> + <concentration>Synthetica</concentration> + <concentration>Syntheticb</concentration> + <concentration>Productd</concentration> + <pressure>pressure</pressure> + </process_variables> + <fluid> + <density> + <type>Constant</type> + <value>1e3</value> + </density> + <viscosity> + <type>Constant</type> + <value>1e-3</value> + </viscosity> + </fluid> + <porous_medium> + <porous_medium id="0"> + <permeability> + <type>Constant</type> + <permeability_tensor_entries>kappa</permeability_tensor_entries> + </permeability> + <porosity> + <type>Constant</type> + <porosity_parameter>porosity</porosity_parameter> + </porosity> + <storage> + <type>Constant</type> + <value>0.0</value> + </storage> + </porous_medium> + </porous_medium> + <fluid_reference_density>rho_fluid</fluid_reference_density> + <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>H</name> + <properties> + <property> + <name>molecular_diffusion</name> + <type>Constant</type> + <value>1e-7</value> + </property> + <property> + <name>retardation_factor</name> + <type>Constant</type> + <value>1</value> + </property> + </properties> + </component> + <component> + <name>Synthetica</name> + <properties> + <property> + <name>molecular_diffusion</name> + <type>Constant</type> + <value>1e-12</value> + </property> + <property> + <name>retardation_factor</name> + <type>Constant</type> + <value>1</value> + </property> + </properties> + </component> + <component> + <name>Syntheticb</name> + <properties> + <property> + <name>molecular_diffusion</name> + <type>Constant</type> + <value>1e-12</value> + </property> + <property> + <name>retardation_factor</name> + <type>Constant</type> + <value>1</value> + </property> + </properties> + </component> + <component> + <name>Productd</name> + <properties> + <property> + <name>molecular_diffusion</name> + <type>Constant</type> + <value>1e-12</value> + </property> + <property> + <name>retardation_factor</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>0</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>1e-14</reltol> + </convergence_criterion> + <!-- convergence criterion for the second process (H) --> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</reltol> + </convergence_criterion> + <!-- convergence criterion for the second process (Synthetica) --> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</reltol> + </convergence_criterion> + <!-- convergence criterion for the second process (Syntheticb) --> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</reltol> + </convergence_criterion> + <!-- convergence criterion for the second process (Productd) --> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</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>1e-14</reltol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0.0</t_initial> + <t_end>2000</t_end> + <timesteps> + <pair> + <repeat>20</repeat> + <delta_t>100</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + <!-- convergence criterion for component transport equation (H) --> + <process ref="hc"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</reltol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0.0</t_initial> + <t_end>2000</t_end> + <timesteps> + <pair> + <repeat>20</repeat> + <delta_t>100</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + <!-- convergence criterion for component transport equation (Synthetica) --> + <process ref="hc"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</reltol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0.0</t_initial> + <t_end>2000</t_end> + <timesteps> + <pair> + <repeat>20</repeat> + <delta_t>100</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + <!-- convergence criterion for component transport equation (Syntheticb) --> + <process ref="hc"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</reltol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0.0</t_initial> + <t_end>2000</t_end> + <timesteps> + <pair> + <repeat>20</repeat> + <delta_t>100</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + <!-- convergence criterion for component transport equation (Productd) --> + <process ref="hc"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1e-14</reltol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0.0</t_initial> + <t_end>2000</t_end> + <timesteps> + <pair> + <repeat>20</repeat> + <delta_t>100</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>KineticReactant2_2d</prefix> + <timesteps> + <pair> + <repeat>5</repeat> + <each_steps>4</each_steps> + </pair> + </timesteps> + <variables> + <variable>H</variable> + <variable>Synthetica</variable> + <variable>Syntheticb</variable> + <variable>Productd</variable> + <variable>pressure</variable> + <variable>darcy_velocity</variable> + </variables> + </output> + </time_loop> + <chemical_system chemical_solver="Phreeqc"> + <database>test.dat</database> + <solution> + <temperature>25</temperature> + <pressure>1</pressure> + <pe>4</pe> + <components> + <component>Synthetica</component> + <component>Syntheticb</component> + <component>Productd</component> + </components> + </solution> + <kinetic_reactants> + <kinetic_reactant> + <name>Synthetics_to_Productd</name> + <chemical_formula>Productd 1 Synthetica -1 Syntheticb -0.5</chemical_formula> + <initial_amount>1.0</initial_amount> + </kinetic_reactant> + </kinetic_reactants> + <rates> + <rate> + <kinetic_reactant>Synthetics_to_Productd</kinetic_reactant> + <expression> + <statement>Km = 10</statement> + <statement>U = 1e-4</statement> + <statement>rate = U * TOT("Synthetica") / (Km + TOT("Syntheticb"))</statement> + <statement>moles = rate * TIME</statement> + <statement>save moles</statement> + </expression> + </rate> + </rates> + </chemical_system> + <parameters> + <parameter> + <name>kappa</name> + <type>Constant</type> + <values>1.157e-12 0 0 1.157e-12</values> + </parameter> + <parameter> + <name>porosity</name> + <type>Constant</type> + <value>1</value> + </parameter> + <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>p0</name> + <type>Constant</type> + <value>1e5</value> + </parameter> + <parameter> + <name>p_upstream</name> + <type>Constant</type> + <value>1e5</value> + </parameter> + <parameter> + <name>p_downstream_Neumann</name> + <type>Constant</type> + <value>-1.685e-2</value> + </parameter> + <parameter> + <name>c0_H</name> + <type>Constant</type> + <!--pH=7--> + <value>1e-7</value> + </parameter> + <parameter> + <name>c0_Synthetica</name> + <type>Constant</type> + <value>0.5</value> + </parameter> + <parameter> + <name>c0_Syntheticb</name> + <type>Constant</type> + <value>0.5</value> + </parameter> + <parameter> + <name>c0_Productd</name> + <type>Constant</type> + <value>0.0</value> + <!--type>Function</type> + <expression>1*x</expression--> + </parameter> + <parameter> + <name>c_H</name> + <type>Constant</type> + <!--pH=7--> + <value>1e-7</value> + </parameter> + <parameter> + <name>c_Synthetica</name> + <type>Constant</type> + <value>0.5</value> + </parameter> + <parameter> + <name>c_Syntheticb</name> + <type>Constant</type> + <value>0.5</value> + </parameter> + <parameter> + <name>c_Productd</name> + <type>Constant</type> + <value>0.00</value> + </parameter> + </parameters> + <process_variables> + <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>upstream</geometry> + <type>Dirichlet</type> + <parameter>p_upstream</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>geometry</geometrical_set> + <geometry>downstream</geometry> + <type>Neumann</type> + <parameter>p_downstream_Neumann</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>H</name> + <components>1</components> + <order>1</order> + <initial_condition>c0_H</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>geometry</geometrical_set> + <geometry>upstream</geometry> + <type>Dirichlet</type> + <parameter>c_H</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>Synthetica</name> + <components>1</components> + <order>1</order> + <initial_condition>c0_Synthetica</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>geometry</geometrical_set> + <geometry>upstream</geometry> + <type>Dirichlet</type> + <parameter>c_Synthetica</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>Syntheticb</name> + <components>1</components> + <order>1</order> + <initial_condition>c0_Syntheticb</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>geometry</geometrical_set> + <geometry>upstream</geometry> + <type>Dirichlet</type> + <parameter>c_Syntheticb</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>Productd</name> + <components>1</components> + <order>1</order> + <initial_condition>c0_Productd</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>geometry</geometrical_set> + <geometry>upstream</geometry> + <type>Dirichlet</type> + <parameter>c_Productd</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 cg -p jacobi -tol 1e-16 -maxiter 20000</lis--> + <eigen> + <solver_type>BiCGSTAB</solver_type> + <precon_type>ILUT</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-14</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/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d.vtu b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d.vtu new file mode 100644 index 0000000000000000000000000000000000000000..ab59db436355e4f539e19830e44502145de25cfd --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fa9327faefb9cce1930ed2ad9c041a3cba3af2de427a91e1704d18213a98cef +size 547703 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_0_t_0.000000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_0_t_0.000000_expected.vtu new file mode 100644 index 0000000000000000000000000000000000000000..5e8e7296a44c1294c180327a15d432ab055a88d8 --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_0_t_0.000000_expected.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d83671b47447691cb5dd531720c8e7b6b13aa8d1dd8c5bf923c52573594d37f +size 236501 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_12_t_1200.000000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_12_t_1200.000000_expected.vtu new file mode 100644 index 0000000000000000000000000000000000000000..e33a077bdf130a944b40c543c75183eece64a574 --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_12_t_1200.000000_expected.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab4676af774ceff3d697e13af919bc48074e196f5dea4828834366a6d23d90c9 +size 325673 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_16_t_1600.000000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_16_t_1600.000000_expected.vtu new file mode 100644 index 0000000000000000000000000000000000000000..2917eb902a170e85afc41ba0b08df356f55cc5a6 --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_16_t_1600.000000_expected.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c0213b40e84adf44ce62ad6ff7a2563b7d1e685b9f00f6f6681d271d5505907 +size 329681 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_20_t_2000.000000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_20_t_2000.000000_expected.vtu new file mode 100644 index 0000000000000000000000000000000000000000..a758dbb053ac34554dc008315edc7afcb6f64435 --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_20_t_2000.000000_expected.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c203b312e1166d0a0de87880f0c73e896f08e823a2fa4310e440a82ce62b0c7c +size 334129 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_4_t_400.000000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_4_t_400.000000_expected.vtu new file mode 100644 index 0000000000000000000000000000000000000000..b38842763be520d27786508132f7c5753c0e8711 --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_4_t_400.000000_expected.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:130abc5acee658d93190b0553ef0c5a45242c347232bb9456d9c224853f9c2d1 +size 316273 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_8_t_800.000000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_8_t_800.000000_expected.vtu new file mode 100644 index 0000000000000000000000000000000000000000..9277a7182aa1bfdf9139560acc2384360bca3412 --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_2d_pcs_4_ts_8_t_800.000000_expected.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7aa233330c17589b3c7a686b3f2d728f74a1054c60bca8d0cac51e5cd231beb9 +size 321073 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_0_t_0.000000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_0_t_0.000000_expected.vtu new file mode 100644 index 0000000000000000000000000000000000000000..7cc13047d5a7b4f428854f6a53b6cd095067ec56 --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_0_t_0.000000_expected.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcabe9abacc032c9a2554cc8553bf3099117e727eff23f3e8c4166f796ec6378 +size 5642 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_126_t_12600.000000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_126_t_12600.000000_expected.vtu new file mode 100644 index 0000000000000000000000000000000000000000..ee2d641b33e903b25fe3ce87c9c2289c1853b7fc --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_126_t_12600.000000_expected.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33580ef562a6631368eca07f07a0f02b49e149bb1a3e76b80909b6ce9486332a +size 12290 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_168_t_16800.000000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_168_t_16800.000000_expected.vtu new file mode 100644 index 0000000000000000000000000000000000000000..d1750e92c1a8e0b33805e07421bd46ce8033abb9 --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_168_t_16800.000000_expected.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a73a0897ea1a65aca9fd08063e2ff5b084285ea01409c945814e2f4574c66291 +size 13434 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_210_t_21000.000000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_210_t_21000.000000_expected.vtu new file mode 100644 index 0000000000000000000000000000000000000000..bce98001e82f38728bdb5ef25a3bf3e319d1f309 --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_210_t_21000.000000_expected.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae051bd6ef1249bcd109082cd773096f2d9c91438e3d6ed8bf7f1569a74ce1a4 +size 14490 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_42_t_4200.000000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_42_t_4200.000000_expected.vtu new file mode 100644 index 0000000000000000000000000000000000000000..8dbe1a760d486a75cc5cea6dc716398d9c188263 --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_42_t_4200.000000_expected.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d30039e2d508d3321004019f8e162074ae0626619465a8ad3b36c95f7e8b8024 +size 9790 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_84_t_8400.000000_expected.vtu b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_84_t_8400.000000_expected.vtu new file mode 100644 index 0000000000000000000000000000000000000000..7c21180b3b0c759851f090e414f36d25cbc141cf --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/KineticReactant2_pcs_4_ts_84_t_8400.000000_expected.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4e5a6fa21d1231bb6bbebdad5048aeb3a7d57ff64008fb019eca19682f11fd3 +size 11066 diff --git a/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/test.dat b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/test.dat new file mode 100644 index 0000000000000000000000000000000000000000..d2b2f4c09ff818edbed7ea60300ea6d02b1205af --- /dev/null +++ b/Tests/Data/Parabolic/ComponentTransport/ReactiveTransport/KineticReactant_AllAsComponents/test.dat @@ -0,0 +1,52 @@ +# name: test data base +# date: 11.07.2019 +# author: Johanns Boog, Vanessa Montoya + +SOLUTION_MASTER_SPECIES + +#element species alk gfw_formula element_gfw + +E e- 0.0 0.0 0.0 +H H+ -1.0 H 1.008 +H(0) H2 0 H +H(1) H+ -1.0 0 +O H2O 0 O 16.0 +O(-2) H2O 0 0 +O(0) O2 0 O +Synthetica Synthetica 0 1 1 +Syntheticb Syntheticb 0 1 1 +Productd Productd 0 1 1 + +SOLUTION_SPECIES + +### Primary Master Species +e- = e- + -log_k 0 + +H+ = H+ + -log_k 0 + +H2O = H2O + -log_k 0 + +Synthetica = Synthetica + -log_k 0.0 + +Syntheticb = Syntheticb + -log_k 0.0 + +Productd = Productd + -log_k 0.0 + +### Secondary Master Species + +2 H+ + 2 e- = H2 + -log_k -3.15 + +2 H2O - 4 H+ - 4 e- = O2 + -log_k -86.08 + +### Aquaeous Species + +H2O - H+ = OH- + -log_k -13.9951 diff --git a/web/content/docs/benchmarks/reactive-transport/kineticreactant_allascomponents/KineticReactant2.gif b/web/content/docs/benchmarks/reactive-transport/kineticreactant_allascomponents/KineticReactant2.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0a3d2f2ca3eaafc52ec41e33a591205fc10ceda --- /dev/null +++ b/web/content/docs/benchmarks/reactive-transport/kineticreactant_allascomponents/KineticReactant2.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f263490a1e4be96f5c5dc50ba6afaeb962c89d97ecb37a4ba9e3acbb778bc041 +size 284182 diff --git a/web/content/docs/benchmarks/reactive-transport/kineticreactant_allascomponents/KineticReactant2.pandoc b/web/content/docs/benchmarks/reactive-transport/kineticreactant_allascomponents/KineticReactant2.pandoc new file mode 100644 index 0000000000000000000000000000000000000000..29bda8d48ff24e846843a5a19e087034ec4d8eb9 --- /dev/null +++ b/web/content/docs/benchmarks/reactive-transport/kineticreactant_allascomponents/KineticReactant2.pandoc @@ -0,0 +1,93 @@ ++++ +author = "Johannes Boog" +weight = 143 +project = "Parabolic/ReactiveTransport/KineticReactant_AllAsComponents/" +date = "2010-06-25T14:41:09+01:00" +title = "Solute transport including kinetic reaction" + +[menu] + [menu.benchmarks] + parent = "Reactive transport" + ++++ + +{{< data-link >}} + + + + +## Overview + +This scenario describes the transport of two solutes (Snythetica and Syntheticb) through a saturated media. +Both solutes react to Productd according to $\text{Productd}=\text{Synthetica}+0.5~\text{Syntheticb}$. +The speed of the reaction is described with a first--order relationship $\frac{dc}{dt}=U(\frac{c_{\text{Synthetica}}}{K_m+c_{\text{Syntheticb}}})$. +The coupling of OGS-6 and IPhreeqc used for simulation requires to simulate the transport of H^+^--ions, additionally. +This is required to adjust the compulsory charge balance computation executed by Phreeqc. +The solution by OGS-6--IPhreeqc will be compared to the solution by a coupling of OGS-5--IPhreeqc. + + +## Problem Description + +**1d scenario:** +The 1d--model domain is 0.5 m long and discretized into 200 line elements. +The domain is saturated at start--up ($p(t=0)=$ 1.0e-5 Pa). +A constant pressure is defined at the left side boundary ($g_{D,\text{upstream}}^p$) and a Neumann BC for the water mass out-flux at the right side ($g_{N,\text{downstream}}^p$). +Both solutes, Synthetica and Syntheticb are present at simulation start--up at concentrations of $c_{\text{Synthetica}}(t=0)=c_{\text{Syntheticb}}(t=0)= 0.5$ mol kg^-1^~water~, the influent concentration is 0.5 mol kg^-1^~water~ as well. +Productd is not present at start--up ($c_{\text{Productd}}(t=0)=0$); neither in the influent. +The initial concentration of $\text{H}^+$--ions is 1.0e-7 mol kg^-1^~water~; the concentration at the influent point is the same. +Respective material properties, initial and boundary conditions are listed in the tables below. + +**2d scenario:** +The 2d--scenario only differs in the domain geometry and assignement of the boundary conditions. +The horizontal domain is 0.5 m in x and 0.5 m in y direction, and, discretized into 10374 quadratic elemtents with an edge size of 0.0025 m. + + + +----------------------------------------- + +|Parameter | Description | Value | Unit | +|:-------- | :---------- | :---- | :--- | +| $\phi$ | Porosity | 1.0 | | +| $\kappa$ | Permeability | 1.157e-12 | m^2^ | +| $S$ | Storage | 0.0 | | +| $a_L$ | long. Dispersion length | 0.0 | m | +| $a_T$ | transv. Dispersion length | 0.0 | m | +| $\rho_w$ | Fluid density | 1.0e+3 | kg m^-3^ | +| $\mu_w$ | Fluid viscosity | 1.0e-3 | Pa s | +| $D_{\text{H}^+}$ | Diffusion coef. for $\text{H}^+$ | 1.0e-7 | m^2^ s | +| $D_{solutes}$ | Diffusion coef. for Synthetica, Syntheticb and Productd | 1.0e-12 | m^2^ s | +| $U$ | Reaction speed constant | 1.0e-3 | h^-1^ | +| $K_m$ | Half--saturation constant | 10 | mol kg^-1^~water~ | + +Table: Media, material and component properties + + +----------------------------------------- + +| Parameter | Description | Value | Unit | +|:--------- | :---------- | :---- | :--- | +| $p(t=0)$ | Initial pressure | 1.0e+5 | Pa | +| $g_{N,downstream}^p$ | Water outflow mass flux | -1.685e-02 | mol kg^-1^~water~ | +| $g_{D,upstream}^p$ | Pressure at inlet | 1.0e+5 | Pa | +| $c_{Synthetica}(t=0)$ | Initial concentration of Synthetica | 0.5 | mol kg^-1^~water~ | +| $c_{Syntheticb}(t=0)$ | Initial concentration of Syntheticb | 0.5 | mol kg^-1^~water~ | +| $c_{Productd}(t=0)$ | Initial concentration of Productd | 0 | mol kg^-1^~water~ | +| $c_{\text{H}^+}(t=0)$ | Initial concentration of $\text{H}^+$ | 1.0e-7 | mol kg^-1^~water~ | +| $g_{D,upstream}^{Synthetica_c}$ | Concentration of Synthetica | 0.5 | mol kg^-1^~water~ | +| $g_{D,upstream}^{Syntheticb_c}$ | Concentration of Syntheticb | 0.5 | mol kg^-1^~water~ | +| $g_{D,upstream}^{Productd}$ | Concentration of Productd | 0.0 | mol kg^-1^~water~ | +| $g_{D,upstream}^{\text{H}^+}$ | Concentration of $\text{H}^+$ | 1.0e-7 | mol kg^-1^~water~ | + +Table: Initial and boundary conditions + + + +## Results + +The kinetic reaction results in the expected decline of the concentration of Synthetica and Syntheticb, which is super-positioned by the influx of these two educts through the left side. +By contrast, the concentration of Productd increases in the domain. +Over time, opposed concentration fronts for educts and Productd evolve. +Both, OGS-6 and OGS-5 simulations yield the same results in the 1d as well as 2d scenario. +For instance, the difference between the OGS-6 and the OGS-5 computation for the concentration of Productd expressed as root mean squared error is 1.76e-7 mol kg^-1^~water~ (over all time steps and mesh nodes, 1d scenario); the corresponding median absolute error is 1.0e-7 mol kg^-1^~water~. +This verifies the implementation of OGS-6--IPhreeqc. +{{< img src="../KineticReactant2.gif" title="Simulated component concentrations over domain length for different time steps (1d scenario) .">}} diff --git a/web/content/docs/benchmarks/reactive-transport/kineticreactant_allascomponents/KineticReactant2_domain.png b/web/content/docs/benchmarks/reactive-transport/kineticreactant_allascomponents/KineticReactant2_domain.png new file mode 100644 index 0000000000000000000000000000000000000000..0d1596bcf9739218280a8bc35700876bbde212c4 --- /dev/null +++ b/web/content/docs/benchmarks/reactive-transport/kineticreactant_allascomponents/KineticReactant2_domain.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9f0c8ccf0428419ae0cc900c1644570e78e41d6d2a7c1b096189b0003fda8fe +size 15328