OGS
|
<OpenGeoSysProject>
<meshes>
<mesh>cl_bulk.vtu</mesh>
<mesh>cl_ReactiveDomain.vtu</mesh>
</meshes>
<processes>
<process>
<name>hc</name>
<type>ComponentTransport</type>
<integration_order>2</integration_order>
<coupling_scheme>staggered</coupling_scheme>
<process_variables>
<concentration>C(4)</concentration>
<concentration>Ca</concentration>
<concentration>Mg</concentration>
<concentration>Cl</concentration>
<concentration>K</concentration>
<concentration>Na</concentration>
<concentration>S(6)</concentration>
<concentration>Al</concentration>
<concentration>Si</concentration>
<concentration>Sr</concentration>
<concentration>H</concentration>
<pressure>pressure</pressure>
</process_variables>
<specific_body_force>0</specific_body_force>
<chemically_induced_porosity_change>true</chemically_induced_porosity_change>
<secondary_variables>
<secondary_variable internal_name="darcy_velocity" output_name="darcy_velocity" />
</secondary_variables>
</process>
</processes>
<media>
<medium id="0">
<phases>
<phase>
<type>AqueousLiquid</type>
<components>
<component>
<name>C(4)</name>
<properties>
<property>
<name>pore_diffusion</name>
<type>Constant</type>
<value>0</value>
</property>
<property>
<name>retardation_factor</name>
<type>Constant</type>
<value>1</value>
</property>
<property>
<name>decay_rate</name>
<type>Parameter</type>
<parameter_name>decay</parameter_name>
</property>
</properties>
</component>
<component>
<name>Ca</name>
<properties>
<property>
<name>pore_diffusion</name>
<type>Constant</type>
<value>0</value>
</property>
<property>
<name>retardation_factor</name>
<type>Constant</type>
<value>1</value>
</property>
<property>
<name>decay_rate</name>
<type>Parameter</type>
<parameter_name>decay</parameter_name>
</property>
</properties>
</component>
<component>
<name>Mg</name>
<properties>
<property>
<name>pore_diffusion</name>
<type>Constant</type>
<value>0</value>
</property>
<property>
<name>retardation_factor</name>
<type>Constant</type>
<value>1</value>
</property>
<property>
<name>decay_rate</name>
<type>Parameter</type>
<parameter_name>decay</parameter_name>
</property>
</properties>
</component>
<component>
<name>Cl</name>
<properties>
<property>
<name>pore_diffusion</name>
<type>Constant</type>
<value>0</value>
</property>
<property>
<name>retardation_factor</name>
<type>Constant</type>
<value>1</value>
</property>
<property>
<name>decay_rate</name>
<type>Parameter</type>
<parameter_name>decay</parameter_name>
</property>
</properties>
</component>
<component>
<name>K</name>
<properties>
<property>
<name>pore_diffusion</name>
<type>Constant</type>
<value>0</value>
</property>
<property>
<name>retardation_factor</name>
<type>Constant</type>
<value>1</value>
</property>
<property>
<name>decay_rate</name>
<type>Parameter</type>
<parameter_name>decay</parameter_name>
</property>
</properties>
</component>
<component>
<name>Na</name>
<properties>
<property>
<name>pore_diffusion</name>
<type>Constant</type>
<value>0</value>
</property>
<property>
<name>retardation_factor</name>
<type>Constant</type>
<value>1</value>
</property>
<property>
<name>decay_rate</name>
<type>Parameter</type>
<parameter_name>decay</parameter_name>
</property>
</properties>
</component>
<component>
<name>S(6)</name>
<properties>
<property>
<name>pore_diffusion</name>
<type>Constant</type>
<value>0</value>
</property>
<property>
<name>retardation_factor</name>
<type>Constant</type>
<value>1</value>
</property>
<property>
<name>decay_rate</name>
<type>Parameter</type>
<parameter_name>decay</parameter_name>
</property>
</properties>
</component>
<component>
<name>Al</name>
<properties>
<property>
<name>pore_diffusion</name>
<type>Constant</type>
<value>0</value>
</property>
<property>
<name>retardation_factor</name>
<type>Constant</type>
<value>1</value>
</property>
<property>
<name>decay_rate</name>
<type>Parameter</type>
<parameter_name>decay</parameter_name>
</property>
</properties>
</component>
<component>
<name>Si</name>
<properties>
<property>
<name>pore_diffusion</name>
<type>Constant</type>
<value>0</value>
</property>
<property>
<name>retardation_factor</name>
<type>Constant</type>
<value>1</value>
</property>
<property>
<name>decay_rate</name>
<type>Parameter</type>
<parameter_name>decay</parameter_name>
</property>
</properties>
</component>
<component>
<name>Sr</name>
<properties>
<property>
<name>pore_diffusion</name>
<type>Constant</type>
<value>0</value>
</property>
<property>
<name>retardation_factor</name>
<type>Constant</type>
<value>1</value>
</property>
<property>
<name>decay_rate</name>
<type>Parameter</type>
<parameter_name>decay</parameter_name>
</property>
</properties>
</component>
<component>
<name>H</name>
<properties>
<property>
<name>pore_diffusion</name>
<type>Constant</type>
<value>0</value>
</property>
<property>
<name>retardation_factor</name>
<type>Constant</type>
<value>1</value>
</property>
<property>
<name>decay_rate</name>
<type>Parameter</type>
<parameter_name>decay</parameter_name>
</property>
</properties>
</component>
</components>
<properties>
<property>
<name>density</name>
<type>Constant</type>
<value>1e3</value>
</property>
<property>
<name>viscosity</name>
<type>Constant</type>
<value>1e-3</value>
</property>
</properties>
</phase>
<phase>
<type>Solid</type>
<components>
<component>
<name>Calcite</name>
<properties>
<property>
<name>volume_fraction</name>
<type>Constant</type>
<value>0.06375</value>
</property>
<property>
<name>molar_volume</name>
<type>Constant</type>
<value>3.6934e-5</value>
</property>
</properties>
</component>
<component>
<name>Dolomite-dis</name>
<properties>
<property>
<name>volume_fraction</name>
<type>Constant</type>
<value>0.02125</value>
</property>
<property>
<name>molar_volume</name>
<type>Constant</type>
<value>6.439e-5</value>
</property>
</properties>
</component>
<component>
<name>Illite</name>
<properties>
<property>
<name>volume_fraction</name>
<type>Constant</type>
<value>0.306</value>
</property>
<property>
<name>molar_volume</name>
<type>Constant</type>
<value>1.4148e-4</value>
</property>
</properties>
</component>
<component>
<name>Kaolinite</name>
<properties>
<property>
<name>volume_fraction</name>
<type>Constant</type>
<value>0.204</value>
</property>
<property>
<name>molar_volume</name>
<type>Constant</type>
<value>9.935e-5</value>
</property>
</properties>
</component>
<component>
<name>CO2(g)</name>
<properties>
<property>
<name>molality</name>
<type>Constant</type>
<value>10</value>
</property>
</properties>
</component>
</components>
</phase>
</phases>
<properties>
<property>
<name>permeability</name>
<type>Parameter</type>
<parameter_name>kappa</parameter_name>
</property>
<property>
<name>porosity</name>
<type>Parameter</type>
<parameter_name>porosity</parameter_name>
</property>
<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>
<include file="./01_timestepping_cl.xml" />
<output>
<type>VTK</type>
<prefix>disso_opa</prefix>
<suffix>ts{:timestep}_t_{:time}</suffix>
<timesteps>
<pair>
<repeat>1</repeat>
<each_steps>1</each_steps>
</pair>
</timesteps>
<variables />
</output>
</time_loop>
<chemical_system chemical_solver="Phreeqc">
<mesh>cl_ReactiveDomain</mesh>
<linear_solver>general_linear_solver</linear_solver>
<database>llnl.dat</database>
<use_high_precision>true</use_high_precision>
<solution>
<temperature>25</temperature>
<pressure>1</pressure>
<pe>4</pe>
<components>
<component>C(4)</component>
<component>Ca</component>
<component>Mg</component>
<component>Cl</component>
<component>K</component>
<component>Na</component>
<component>S(6)</component>
<component>Al</component>
<component>Si</component>
<component>Sr</component>
</components>
<charge_balance>pH</charge_balance>
</solution>
<equilibrium_reactants>
<phase_component>
<name>CO2(g)</name>
<saturation_index>1.5</saturation_index>
</phase_component>
</equilibrium_reactants>
<kinetic_reactants>
<kinetic_reactant>
<name>Calcite</name>
</kinetic_reactant>
<kinetic_reactant>
<name>Dolomite-dis</name>
</kinetic_reactant>
<kinetic_reactant>
<name>Illite</name>
</kinetic_reactant>
<kinetic_reactant>
<name>Kaolinite</name>
</kinetic_reactant>
</kinetic_reactants>
<rates>
<rate>
<kinetic_reactant>Calcite</kinetic_reactant>
<expression>
<statement>if (M <= 0) then goto 25</statement>
<statement>R = 8.314472</statement>
<statement>deltaT = 1/TK - 1/298.15</statement>
<statement>logK25 = -0.30</statement>
<statement>Ea = 14400</statement>
<statement>ny = 1.0</statement>
<statement>mech_a = (10^logK25) * ACT("H+")^ny * EXP(- Ea / R * deltaT)</statement>
<statement>logK25 = -5.81</statement>
<statement>Ea = 23500</statement>
<statement>mech_b = (10^logK25) * EXP(- Ea / R * deltaT)</statement>
<statement>logK25 = -3.48</statement>
<statement>Ea = 35400</statement>
<statement>ny = 1.0</statement>
<statement>mech_c = (10^logK25) * SR("CO2(g)")^ny * EXP(- Ea / R * deltaT)</statement>
<statement>K_temp = mech_a + mech_b + mech_c</statement>
<statement>teta = 1</statement>
<statement>eta = 1</statement>
<statement>molar_volume = 3.692e-05</statement>
<statement>bulk_volume = molar_volume * PARM(1)</statement>
<statement>specific_surface_area = 20</statement>
<statement>surface_area = specific_surface_area * bulk_volume</statement>
<statement>rate = surface_area * K_temp * (1 - SR("Calcite")^teta)^eta</statement>
<statement>if rate < 0 then rate = 0</statement>
<statement>moles = rate * time</statement>
<statement>save moles</statement>
</expression>
</rate>
<rate>
<kinetic_reactant>Dolomite-dis</kinetic_reactant>
<expression>
<statement>if (M <= 0) then goto 25</statement>
<statement>R = 8.314472</statement>
<statement>deltaT = 1/TK - 1/298.15</statement>
<statement>logK25 = -3.19</statement>
<statement>Ea = 36100</statement>
<statement>ny = 0.5</statement>
<statement>mech_a = (10^logK25) * ACT("H+")^ny * EXP(- Ea / R * deltaT)</statement>
<statement>logK25 = -7.53</statement>
<statement>Ea = 52200</statement>
<statement>mech_b = (10^logK25) * EXP(- Ea / R * deltaT)</statement>
<statement>logK25 = -5.11</statement>
<statement>Ea = 34800</statement>
<statement>ny = 0.5</statement>
<statement>mech_c = (10^logK25) * SR("CO2(g)")^ny * EXP(- Ea / R * deltaT)</statement>
<statement>K_temp = mech_a + mech_b + mech_c</statement>
<statement>teta = 1</statement>
<statement>eta = 1</statement>
<statement>molar_volume = 6.439e-5</statement>
<statement>bulk_volume = molar_volume * PARM(1)</statement>
<statement>specific_surface_area = 3000</statement>
<statement>surface_area = specific_surface_area * bulk_volume</statement>
<statement>rate = surface_area * K_temp * (1 - SR("Dolomite-dis")^teta)^eta</statement>
<statement>if rate < 0 then rate = 0</statement>
<statement>moles = rate * time</statement>
<statement>save moles</statement>
</expression>
</rate>
<rate>
<kinetic_reactant>Illite</kinetic_reactant>
<expression>
<statement>if (M <= 0) then goto 25</statement>
<statement>R = 8.314472</statement>
<statement>deltaT = 1/TK - 1/298.15</statement>
<statement>logK25 = -12.71</statement>
<statement>Ea = 48000</statement>
<statement>ny = 0.22</statement>
<statement>mech_a = (10^logK25) * ACT("H+")^ny * EXP(- Ea / R * deltaT)</statement>
<statement>logK25 = -14.41</statement>
<statement>Ea = 48000</statement>
<statement>mech_b = (10^logK25) * EXP(- Ea / R * deltaT)</statement>
<statement>logK25 = -14.41</statement>
<statement>Ea = 48000</statement>
<statement>ny = 0.13</statement>
<statement>mech_c = (10^logK25) * SR("CO2(g)")^ny * EXP(- Ea / R * deltaT)</statement>
<statement>K_temp = mech_a + mech_b + mech_c</statement>
<statement>teta = 1</statement>
<statement>eta = 1</statement>
<statement>molar_volume = 6.439e-5</statement>
<statement>bulk_volume = molar_volume * PARM(1)</statement>
<statement>specific_surface_area = 20</statement>
<statement>surface_area = specific_surface_area * bulk_volume</statement>
<statement>rate = surface_area * K_temp * (1 - SR("Illite")^teta)^eta</statement>
<statement>if rate < 0 then rate = 0</statement>
<statement>moles = rate * time</statement>
<statement>save moles</statement>
</expression>
</rate>
<rate>
<kinetic_reactant>Kaolinite</kinetic_reactant>
<expression>
<statement>if (M <= 0) then goto 25</statement>
<statement>R = 8.314472</statement>
<statement>deltaT = 1/TK - 1/298.15</statement>
<statement>logK25 = -11.31</statement>
<statement>Ea = 65900</statement>
<statement>ny = 0.777</statement>
<statement>mech_a = (10^logK25) * ACT("H+")^ny * EXP(- Ea / R * deltaT)</statement>
<statement>logK25 = -13.18</statement>
<statement>Ea = 22200</statement>
<statement>mech_b = (10^logK25) * EXP(- Ea / R * deltaT)</statement>
<statement>logK25 = -17.05</statement>
<statement>Ea = 17900</statement>
<statement>ny = 0.472</statement>
<statement>mech_c = (10^logK25) * SR("CO2(g)")^ny * EXP(- Ea / R * deltaT)</statement>
<statement>K_temp = mech_a + mech_b + mech_c</statement>
<statement>teta = 1</statement>
<statement>eta = 1</statement>
<statement>molar_volume = 6.439e-5</statement>
<statement>bulk_volume = molar_volume * PARM(1)</statement>
<statement>specific_surface_area = 20</statement>
<statement>surface_area = specific_surface_area * bulk_volume</statement>
<statement>rate = surface_area * K_temp * (1 - SR("Kaolinite")^teta)^eta</statement>
<statement>if rate < 0 then rate = 0</statement>
<statement>moles = rate * time</statement>
<statement>save moles</statement>
</expression>
</rate>
</rates>
<knobs>
<max_iter>100</max_iter>
<relative_convergence_tolerance>1e-12</relative_convergence_tolerance>
<tolerance>1e-15</tolerance>
<step_size>100</step_size>
<scaling>0</scaling>
</knobs>
</chemical_system>
<parameters>
<parameter>
<name>kappa</name>
<type>Constant</type>
<values>1.157e-12</values>
</parameter>
<parameter>
<name>porosity</name>
<type>Constant</type>
<value>0.15</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>c0_H</name>
<type>Constant</type>
<value>1e-7</value>
</parameter>
<parameter>
<name>c0_c4</name>
<type>Constant</type>
<value>3.89e-3</value>
</parameter>
<parameter>
<name>c0_ca</name>
<type>Constant</type>
<value>1.89e-2</value>
</parameter>
<parameter>
<name>c0_mg</name>
<type>Constant</type>
<value>2.197e-2</value>
</parameter>
<parameter>
<name>c0_Cl</name>
<type>Constant</type>
<value>3.2667e-1</value>
</parameter>
<parameter>
<name>c0_K</name>
<type>Constant</type>
<value>1.92e-3</value>
</parameter>
<parameter>
<name>c0_Na</name>
<type>Constant</type>
<value>2.8067e-1</value>
</parameter>
<parameter>
<name>c0_S(6)</name>
<type>Constant</type>
<value>1.679e-2</value>
</parameter>
<parameter>
<name>c0_Al</name>
<type>Constant</type>
<value>2.295e-10</value>
</parameter>
<parameter>
<name>c0_Si</name>
<type>Constant</type>
<value>1.7e-5</value>
</parameter>
<parameter>
<name>c0_Sr</name>
<type>Constant</type>
<value>4.6e-5</value>
</parameter>
</parameters>
<process_variables>
<process_variable>
<name>pressure</name>
<components>1</components>
<order>1</order>
<initial_condition>p0</initial_condition>
<boundary_conditions />
</process_variable>
<process_variable>
<name>C(4)</name>
<components>1</components>
<order>1</order>
<initial_condition>c0_c4</initial_condition>
<boundary_conditions />
</process_variable>
<process_variable>
<name>Ca</name>
<components>1</components>
<order>1</order>
<initial_condition>c0_ca</initial_condition>
<boundary_conditions />
</process_variable>
<process_variable>
<name>Mg</name>
<components>1</components>
<order>1</order>
<initial_condition>c0_mg</initial_condition>
<boundary_conditions />
</process_variable>
<process_variable>
<name>Cl</name>
<components>1</components>
<order>1</order>
<initial_condition>c0_Cl</initial_condition>
<boundary_conditions />
</process_variable>
<process_variable>
<name>K</name>
<components>1</components>
<order>1</order>
<initial_condition>c0_K</initial_condition>
<boundary_conditions />
</process_variable>
<process_variable>
<name>Na</name>
<components>1</components>
<order>1</order>
<initial_condition>c0_Na</initial_condition>
<boundary_conditions />
</process_variable>
<process_variable>
<name>S(6)</name>
<components>1</components>
<order>1</order>
<initial_condition>c0_S(6)</initial_condition>
<boundary_conditions />
</process_variable>
<process_variable>
<name>Al</name>
<components>1</components>
<order>1</order>
<initial_condition>c0_Al</initial_condition>
<boundary_conditions />
</process_variable>
<process_variable>
<name>Si</name>
<components>1</components>
<order>1</order>
<initial_condition>c0_Si</initial_condition>
<boundary_conditions />
</process_variable>
<process_variable>
<name>Sr</name>
<components>1</components>
<order>1</order>
<initial_condition>c0_Sr</initial_condition>
<boundary_conditions />
</process_variable>
<process_variable>
<name>H</name>
<components>1</components>
<order>1</order>
<initial_condition>c0_H</initial_condition>
<boundary_conditions />
</process_variable>
</process_variables>
<nonlinear_solvers>
<nonlinear_solver>
<name>basic_picard</name>
<type>Picard</type>
<max_iter>100</max_iter>
<linear_solver>general_linear_solver</linear_solver>
</nonlinear_solver>
</nonlinear_solvers>
<linear_solvers>
<linear_solver>
<name>general_linear_solver</name>
<eigen>
<solver_type>PardisoLU</solver_type>
</eigen>
</linear_solver>
</linear_solvers>
<test_definition>
<vtkdiff>
<regex>disso_opa_ts_[0-9]*_t_[0-9]*.000000.vtu</regex>
<field>pressure</field>
<absolute_tolerance>1e-6</absolute_tolerance>
<relative_tolerance>1e-10</relative_tolerance>
</vtkdiff>
<vtkdiff>
<regex>disso_opa_ts_[0-9]*_t_[0-9]*.000000.vtu</regex>
<field>Ca</field>
<absolute_tolerance>1e-10</absolute_tolerance>
<relative_tolerance>1e-16</relative_tolerance>
</vtkdiff>
<vtkdiff>
<regex>disso_opa_ts_[0-9]*_t_[0-9]*.000000.vtu</regex>
<field>Mg</field>
<absolute_tolerance>1e-10</absolute_tolerance>
<relative_tolerance>1e-16</relative_tolerance>
</vtkdiff>
<vtkdiff>
<regex>disso_opa_ts_[0-9]*_t_[0-9]*.000000.vtu</regex>
<field>H</field>
<absolute_tolerance>1e-10</absolute_tolerance>
<relative_tolerance>1e-16</relative_tolerance>
</vtkdiff>
</test_definition>
</OpenGeoSysProject>