- h_concThe molar concentration of free H+ ions in solution
C++ Type:std::vector
Description:The molar concentration of free H+ ions in solution
- variableThe name of the variable that this object applies to
C++ Type:AuxVariableName
Description:The name of the variable that this object applies to
PHAux
pH of solution
Calculates the pH of the solution, defined as
where is the activity of H+ ions,
where is the activity coefficient of the H+ ions, and is the molar concentration of free H+ ions.
Input Parameters
- activity_coeff1.0Activity coefficient of H+. Default is 1
Default:1.0
C++ Type:std::vector
Options:
Description:Activity coefficient of H+. Default is 1
- blockThe list of block ids (SubdomainID) that this object will be applied
C++ Type:std::vector
Options:
Description:The list of block ids (SubdomainID) that this object will be applied
- boundaryThe list of boundary IDs from the mesh where this boundary condition applies
C++ Type:std::vector
Options:
Description:The list of boundary IDs from the mesh where this boundary condition applies
- execute_onLINEAR TIMESTEP_ENDThe list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM, PRE_DISPLACE.
Default:LINEAR TIMESTEP_END
C++ Type:ExecFlagEnum
Options:NONE INITIAL LINEAR NONLINEAR TIMESTEP_END TIMESTEP_BEGIN FINAL CUSTOM PRE_DISPLACE
Description:The list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM, PRE_DISPLACE.
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector
Options:
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Options:
Description:Set the enabled status of the MooseObject.
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Options:
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Options:
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
Input Files
- modules/chemical_reactions/test/tests/solid_kinetics/calcite_dissolution.i
- modules/chemical_reactions/test/tests/aqueous_equilibrium/calcium_bicarbonate.i
- modules/chemical_reactions/test/tests/aqueous_equilibrium/water_dissociation.i
- modules/chemical_reactions/test/tests/solid_kinetics/calcite_precipitation.i
- modules/chemical_reactions/test/tests/aqueous_equilibrium/co2_h2o.i
modules/chemical_reactions/test/tests/solid_kinetics/calcite_dissolution.i
# Example of batch reaction of calcite (CaCO3) dissolution to form calcium (Ca++)
# and bicarbonate (HCO3-).
#
# The reaction network considered is as follows:
# Aqueous equilibrium reactions:
# a) H+ + HCO3- = CO2(aq), Keq = 10^(6.341)
# b) HCO3- = H+ + CO3--, Keq = 10^(-10.325)
# c) Ca++ + HCO3- = H+ + CaCO3(aq), Keq = 10^(-7.009)
# d) Ca++ + HCO3- = CaHCO3+, Keq = 10^(-0.653)
# e) Ca++ = H+ + CaOh+, Keq = 10^(-12.85)
# f) - H+ = OH-, Keq = 10^(-13.991)
#
# Kinetic reactions
# g) Ca++ + HCO3- = H+ + CaCO3(s), A = 0.461 m^2/L, k = 6.456542e-2 mol/m^2 s,
# Keq = 10^(1.8487)
#
# The primary chemical species are H+, HCO3- and Ca++.
[Mesh]
type = GeneratedMesh
dim = 2
[]
[Variables]
[./ca++]
initial_condition = 1.0e-5
[../]
[./h+]
initial_condition = 1.0e-6
[../]
[./hco3-]
initial_condition = 1.0e-5
[../]
[]
[AuxVariables]
[./caco3_s]
initial_condition = 0.05
[../]
[./ph]
[../]
[]
[AuxKernels]
[./ph]
type = PHAux
h_conc = h+
variable = ph
[../]
[]
[ReactionNetwork]
[./AqueousEquilibriumReactions]
primary_species = 'ca++ hco3- h+'
secondary_species = 'co2_aq co3-- caco3_aq cahco3+ caoh+ oh-'
reactions = 'h+ + hco3- = co2_aq 6.3447,
hco3- - h+ = co3-- -10.3288,
ca++ + hco3- - h+ = caco3_aq -7.0017,
ca++ + hco3- = cahco3+ -1.0467,
ca++ - h+ = caoh+ -12.85,
- h+ = oh- -13.9951'
[../]
[./SolidKineticReactions]
primary_species = 'ca++ hco3- h+'
kin_reactions = 'ca++ + hco3- - h+ = caco3_s'
secondary_species = caco3_s
log10_keq = 1.8487
reference_temperature = 298.15
system_temperature = 298.15
gas_constant = 8.314
specific_reactive_surface_area = 0.1
kinetic_rate_constant = 6.456542e-7
activation_energy = 1.5e4
[../]
[]
[Kernels]
[./ca++_ie]
type = PrimaryTimeDerivative
variable = ca++
[../]
[./h+_ie]
type = PrimaryTimeDerivative
variable = h+
[../]
[./hco3-_ie]
type = PrimaryTimeDerivative
variable = hco3-
[../]
[]
[Materials]
[./porous]
type = GenericConstantMaterial
prop_names = 'porosity diffusivity'
prop_values = '0.25 1e-9'
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
end_time = 100
dt = 10
nl_abs_tol = 1e-12
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./h+]
type = ElementIntegralVariablePostprocessor
variable = h+
execute_on = 'initial timestep_end'
[../]
[./ca++]
type = ElementIntegralVariablePostprocessor
variable = ca++
execute_on = 'initial timestep_end'
[../]
[./hco3-]
type = ElementIntegralVariablePostprocessor
variable = hco3-
execute_on = 'initial timestep_end'
[../]
[./co2_aq]
type = ElementIntegralVariablePostprocessor
variable = co2_aq
execute_on = 'initial timestep_end'
[../]
[./oh-]
type = ElementIntegralVariablePostprocessor
variable = oh-
execute_on = 'initial timestep_end'
[../]
[./co3--]
type = ElementIntegralVariablePostprocessor
variable = co3--
execute_on = 'initial timestep_end'
[../]
[./caco3_aq]
type = ElementIntegralVariablePostprocessor
variable = caco3_aq
execute_on = 'initial timestep_end'
[../]
[./caco3_s]
type = ElementIntegralVariablePostprocessor
variable = caco3_s
execute_on = 'initial timestep_end'
[../]
[./ph]
type = ElementIntegralVariablePostprocessor
variable = ph
execute_on = 'initial timestep_end'
[../]
[./calcite_vf]
type = TotalMineralVolumeFraction
variable = caco3_s
molar_volume = 36.934e-6
[../]
[]
[Outputs]
perf_graph = true
csv = true
[]
modules/chemical_reactions/test/tests/aqueous_equilibrium/calcium_bicarbonate.i
# Calcium (Ca++) and bicarbonate (HCO3-) batch equilibrium reaction at 25C
#
# Aqueous equilibrium reactions:
# a) H+ + HCO3- = CO2(aq), Keq = 10^(6.3447)
# b) HCO3- = H+ + CO3--, Keq = 10^(-10.3288)
# c) Ca++ + HCO3- = H+ + CaCO3(aq), Keq = 10^(-7.0017)
# d) Ca++ + HCO3- = CaHCO3+, Keq = 10^(1.0467)
# e) Ca++ = H+ + CaOH+, Keq = 10^(-12.85)
# c) - H+ = OH-, Keq = 10^(-13.9951)
# d)
#
# The primary chemical species are Ca++, H+ and HCO3-, and the secondary equilibrium
# species are CO2(aq), CO3--, CaCO3(aq), CaHCO3+, CaOH+ and OH-
[Mesh]
type = GeneratedMesh
dim = 2
[]
[AuxVariables]
[./ph]
[../]
[./total_ca++]
[../]
[./total_h+]
[../]
[./total_hco3-]
[../]
[]
[AuxKernels]
[./ph]
type = PHAux
variable = ph
h_conc = h+
[../]
[./total_ca++]
type = TotalConcentrationAux
variable = total_ca++
primary_species = ca++
v = 'caco3_aq cahco3+ caoh+'
sto_v = '1 1 1'
[../]
[./total_h+]
type = TotalConcentrationAux
variable = total_h+
primary_species = h+
v = 'co2_aq co3-- caco3_aq oh-'
sto_v = '1 -1 -1 -1'
[../]
[./total_hco3-]
type = TotalConcentrationAux
variable = total_hco3-
primary_species = hco3-
v = 'co2_aq co3-- caco3_aq cahco3+'
sto_v = '1 1 1 1'
[../]
[]
[Variables]
[./ca++]
initial_condition = 1.0e-5
[../]
[./h+]
initial_condition = 1.0e-5
[../]
[./hco3-]
initial_condition = 3.0e-5
[../]
[]
[ReactionNetwork]
[./AqueousEquilibriumReactions]
primary_species = 'ca++ hco3- h+'
secondary_species = 'co2_aq co3-- caco3_aq cahco3+ caoh+ oh-'
reactions = 'h+ + hco3- = co2_aq 6.3447,
hco3- - h+ = co3-- -10.3288,
ca++ + hco3- - h+ = caco3_aq -7.0017,
ca++ + hco3- = cahco3+ 1.0467,
ca++ - h+ = caoh+ -12.85,
- h+ = oh- -13.9951'
[../]
[]
[Kernels]
[./ca++_ie]
type = PrimaryTimeDerivative
variable = ca++
[../]
[./h+_ie]
type = PrimaryTimeDerivative
variable = h+
[../]
[./hco3-_ie]
type = PrimaryTimeDerivative
variable = hco3-
[../]
[]
[Materials]
[./porous]
type = GenericConstantMaterial
prop_names = 'diffusivity porosity'
prop_values = '1e-7 0.25'
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-12
end_time = 1
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./ca++]
type = ElementIntegralVariablePostprocessor
variable = ca++
execute_on = 'initial timestep_end'
[../]
[./h+]
type = ElementIntegralVariablePostprocessor
variable = h+
execute_on = 'initial timestep_end'
[../]
[./hco3-]
type = ElementIntegralVariablePostprocessor
variable = hco3-
execute_on = 'initial timestep_end'
[../]
[./co2_aq]
type = ElementIntegralVariablePostprocessor
variable = co2_aq
execute_on = 'initial timestep_end'
[../]
[./co3--]
type = ElementIntegralVariablePostprocessor
variable = co3--
execute_on = 'initial timestep_end'
[../]
[./caco3_aq]
type = ElementIntegralVariablePostprocessor
variable = caco3_aq
execute_on = 'initial timestep_end'
[../]
[./cahco3+]
type = ElementIntegralVariablePostprocessor
variable = cahco3+
execute_on = 'initial timestep_end'
[../]
[./caoh+]
type = ElementIntegralVariablePostprocessor
variable = caoh+
execute_on = 'initial timestep_end'
[../]
[./oh-]
type = ElementIntegralVariablePostprocessor
variable = oh-
execute_on = 'initial timestep_end'
[../]
[./ph]
type = ElementIntegralVariablePostprocessor
variable = ph
execute_on = 'initial timestep_end'
[../]
[./total_ca++]
type = ElementIntegralVariablePostprocessor
variable = total_ca++
execute_on = 'initial timestep_end'
[../]
[./total_hco3-]
type = ElementIntegralVariablePostprocessor
variable = total_hco3-
execute_on = 'initial timestep_end'
[../]
[./total_h+]
type = ElementIntegralVariablePostprocessor
variable = total_h+
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
perf_graph = true
csv = true
[]
modules/chemical_reactions/test/tests/aqueous_equilibrium/water_dissociation.i
# Dissociation of H2O at 25C
# The dissociation of water into H+ and OH- is given by
# the equilibrium reaction H20 = H+ + OH-
#
# This can be entered in the ReactionNetwork block using
# Aqueous equilibrium reaction: - H+ = OH-, Keq = 10^(-13.9951)
#
# Note that H2O does not need to be explicitly included.
#
# The primary chemical species is H+, and the secondary equilibrium
# species is OH-.
#
# The initial concentration of H+ is 10^-7, which is its value in neutral
# water. The pH of this water is therefore 7.
[Mesh]
type = GeneratedMesh
dim = 2
[]
[AuxVariables]
[./ph]
[../]
[]
[AuxKernels]
[./ph]
type = PHAux
h_conc = h+
variable = ph
[../]
[]
[Variables]
[./h+]
initial_condition = 1.0e-7
[../]
[]
[ReactionNetwork]
[./AqueousEquilibriumReactions]
primary_species = h+
secondary_species = oh-
reactions = '- h+ = oh- -13.9951'
[../]
[]
[Kernels]
[./h+_ie]
type = PrimaryTimeDerivative
variable = h+
[../]
[]
[Materials]
[./porous]
type = GenericConstantMaterial
prop_names = 'diffusivity porosity'
prop_values = '1e-7 0.25'
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
end_time = 1
nl_abs_tol = 1e-12
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./h+]
type = ElementIntegralVariablePostprocessor
variable = h+
execute_on = 'initial timestep_end'
[../]
[./oh-]
type = ElementIntegralVariablePostprocessor
variable = oh-
execute_on = 'initial timestep_end'
[../]
[./ph]
type = ElementIntegralVariablePostprocessor
variable = ph
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
perf_graph = true
csv = true
[]
modules/chemical_reactions/test/tests/solid_kinetics/calcite_precipitation.i
# Example of batch reaction of calcium (Ca++) and bicarbonate (HCO3-) precipitation
# to form calcite (CaCO3).
#
# The reaction network considered is as follows:
# Aqueous equilibrium reactions:
# a) H+ + HCO3- = CO2(aq), Keq = 10^(6.341)
# b) HCO3- = H+ + CO3--, Keq = 10^(-10.325)
# c) Ca++ + HCO3- = H+ + CaCO3(aq), Keq = 10^(-7.009)
# d) Ca++ + HCO3- = CaHCO3+, Keq = 10^(-0.653)
# e) Ca++ = H+ + CaOh+, Keq = 10^(-12.85)
# f) - H+ = OH-, Keq = 10^(-13.991)
#
# Kinetic reactions
# g) Ca++ + HCO3- = H+ + CaCO3(s), A = 0.461 m^2/L, k = 6.456542e-2 mol/m^2 s,
# Keq = 10^(1.8487)
#
# The primary chemical species are H+, HCO3- and Ca++.
[Mesh]
type = GeneratedMesh
dim = 2
[]
[Variables]
[./ca++]
initial_condition = 2.0e-2
[../]
[./h+]
initial_condition = 1.0e-8
[../]
[./hco3-]
initial_condition = 1.0e-2
[../]
[]
[AuxVariables]
[./caco3_s]
[../]
[./ph]
[../]
[]
[AuxKernels]
[./ph]
type = PHAux
h_conc = h+
variable = ph
[../]
[]
[ReactionNetwork]
[./AqueousEquilibriumReactions]
primary_species = 'ca++ hco3- h+'
secondary_species = 'co2_aq co3-- caco3_aq cahco3+ caoh+ oh-'
reactions = 'h+ + hco3- = co2_aq 6.3447,
hco3- - h+ = co3-- -10.3288,
ca++ + hco3- - h+ = caco3_aq -7.0017,
ca++ + hco3- = cahco3+ -1.0467,
ca++ - h+ = caoh+ -12.85,
- h+ = oh- -13.9951'
[../]
[./SolidKineticReactions]
primary_species = 'ca++ hco3- h+'
kin_reactions = 'ca++ + hco3- - h+ = caco3_s'
secondary_species = caco3_s
log10_keq = 1.8487
reference_temperature = 298.15
system_temperature = 298.15
gas_constant = 8.314
specific_reactive_surface_area = 0.1
kinetic_rate_constant = 1e-6
activation_energy = 1.5e4
[../]
[]
[Kernels]
[./ca++_ie]
type = PrimaryTimeDerivative
variable = ca++
[../]
[./h+_ie]
type = PrimaryTimeDerivative
variable = h+
[../]
[./hco3-_ie]
type = PrimaryTimeDerivative
variable = hco3-
[../]
[]
[Materials]
[./porous]
type = GenericConstantMaterial
prop_names = 'porosity diffusivity'
prop_values = '0.25 1e-9'
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
end_time = 100
dt = 10
nl_abs_tol = 1e-12
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./h+]
type = ElementIntegralVariablePostprocessor
variable = h+
execute_on = 'initial timestep_end'
[../]
[./ca++]
type = ElementIntegralVariablePostprocessor
variable = ca++
execute_on = 'initial timestep_end'
[../]
[./hco3-]
type = ElementIntegralVariablePostprocessor
variable = hco3-
execute_on = 'initial timestep_end'
[../]
[./co2_aq]
type = ElementIntegralVariablePostprocessor
variable = co2_aq
execute_on = 'initial timestep_end'
[../]
[./oh-]
type = ElementIntegralVariablePostprocessor
variable = oh-
execute_on = 'initial timestep_end'
[../]
[./co3--]
type = ElementIntegralVariablePostprocessor
variable = co3--
execute_on = 'initial timestep_end'
[../]
[./caco3_aq]
type = ElementIntegralVariablePostprocessor
variable = caco3_aq
execute_on = 'initial timestep_end'
[../]
[./caco3_s]
type = ElementIntegralVariablePostprocessor
variable = caco3_s
execute_on = 'initial timestep_end'
[../]
[./ph]
type = ElementIntegralVariablePostprocessor
variable = ph
execute_on = 'initial timestep_end'
[../]
[./calcite_vf]
type = TotalMineralVolumeFraction
variable = caco3_s
molar_volume = 36.934e-6
[../]
[]
[Outputs]
perf_graph = true
csv = true
[]
modules/chemical_reactions/test/tests/aqueous_equilibrium/co2_h2o.i
# Batch CO2 - H2O equilibrium reaction at 25C
#
# Aqueous equilibrium reactions:
# a) H+ + HCO3- = CO2(aq), Keq = 10^(6.3447)
# b) HCO3- = H+ + CO3--, Keq = 10^(-10.3288)
# c) - H+ = OH-, Keq = 10^(-13.9951)
#
# The primary chemical species are h+ and hco3-, and the secondary equilibrium
# species are CO2(aq), CO3-- and OH-
[Mesh]
type = GeneratedMesh
dim = 2
[]
[AuxVariables]
[./ph]
[../]
[./total_h+]
[../]
[./total_hco3-]
[../]
[]
[AuxKernels]
[./ph]
type = PHAux
variable = ph
h_conc = h+
[../]
[./total_h+]
type = TotalConcentrationAux
variable = total_h+
primary_species = h+
v = 'oh- co3-- co2_aq'
sto_v = '-1 1 1'
[../]
[./total_hco3-]
type = TotalConcentrationAux
variable = total_hco3-
primary_species = hco3-
v = 'co2_aq co3--'
sto_v = '1 1'
[../]
[]
[Variables]
[./h+]
initial_condition = 1e-5
[../]
[./hco3-]
initial_condition = 1e-5
[../]
[]
[ReactionNetwork]
[./AqueousEquilibriumReactions]
primary_species = 'hco3- h+'
secondary_species = 'co2_aq co3-- oh-'
reactions = 'hco3- + h+ = co2_aq 6.3447,
hco3- - h+ = co3-- -10.3288,
- h+ = oh- -13.9951'
[../]
[]
[Kernels]
[./h+_ie]
type = PrimaryTimeDerivative
variable = h+
[../]
[./hco3-_ie]
type = PrimaryTimeDerivative
variable = hco3-
[../]
[]
[Materials]
[./porous]
type = GenericConstantMaterial
prop_names = 'diffusivity porosity'
prop_values = '1e-7 0.25'
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-12
end_time = 1
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./h+]
type = ElementIntegralVariablePostprocessor
variable = h+
execute_on = 'initial timestep_end'
[../]
[./hco3-]
type = ElementIntegralVariablePostprocessor
variable = hco3-
execute_on = 'initial timestep_end'
[../]
[./co2_aq]
type = ElementIntegralVariablePostprocessor
variable = co2_aq
execute_on = 'initial timestep_end'
[../]
[./co3--]
type = ElementIntegralVariablePostprocessor
variable = co3--
execute_on = 'initial timestep_end'
[../]
[./oh-]
type = ElementIntegralVariablePostprocessor
variable = oh-
execute_on = 'initial timestep_end'
[../]
[./ph]
type = ElementIntegralVariablePostprocessor
variable = ph
execute_on = 'initial timestep_end'
[../]
[./total_h+]
type = ElementIntegralVariablePostprocessor
variable = total_h+
execute_on = 'initial timestep_end'
[../]
[./total_hco3-]
type = ElementIntegralVariablePostprocessor
variable = total_hco3-
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
perf_graph = true
csv = true
[]