- variableThe name of the variable that this boundary condition applies to
C++ Type:NonlinearVariableName
Description:The name of the variable that this boundary condition applies to
- boundaryThe list of boundary IDs from the mesh where this boundary condition applies
C++ Type:std::vector
Description:The list of boundary IDs from the mesh where this boundary condition applies
SinDirichletBC
Imposes a time-varying essential boundary condition , where varies from an given initial value at time to a given final value over a specified duration.
Description
SinDirichletBC
is a NodalBC
which imposes a time-varying boundary value of the form
(1)
where and are the initial and final values of , respectively, and is the final time. These values are controlled by the initial
, final
, and duration
parameters, respectively. The value is applied on one or more sidesets specified by the boundary
parameter and does not vary in space. This type of boundary condition is applicable to time-varying PDEs, for example:
(2)
and is frequently used to "ramp" a difficult boundary condition to its final value over a short time interval, rather than imposing it instantaneously at time . This approach can make nonlinear solvers more robust by improving the initial guess used by the Newton iterations, as well as preventing the solver from converging to non-physical solutions in nonlinear PDEs.
Example Input Syntax
[BCs]
active = 'left right'
[./left]
type = SinDirichletBC
variable = u
boundary = 3
initial = 0.0
final = 1.0
duration = 10.0
[../]
[./right]
type = SinDirichletBC
variable = u
boundary = 1
initial = 1.0
final = 0.0
duration = 10.0
[../]
[]
(test/tests/bcs/sin_bc/sin_dirichlet_test.i)/opt/civet/build_0/moose/test/tests/bcs/sin_bc/sin_dirichlet_test.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
nz = 0
zmin = 0
zmax = 0
elem_type = QUAD4
[]
[Functions]
[./initial_value]
type = ParsedFunction
value = 'x'
[../]
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = initial_value
[../]
[../]
[]
[Kernels]
active = 'diff ie'
[./diff]
type = Diffusion
variable = u
[../]
[./ie]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
active = 'left right'
[./left]
type = SinDirichletBC
variable = u
boundary = 3
initial = 0.0
final = 1.0
duration = 10.0
[../]
[./right]
type = SinDirichletBC
variable = u
boundary = 1
initial = 1.0
final = 0.0
duration = 10.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
num_steps = 10
dt = 1.0
[]
[Outputs]
exodus = true
[]
Input Parameters
- save_inThe name of auxiliary variables to save this BC's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector
Options:
Description:The name of auxiliary variables to save this BC's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- initial0
Default:0
C++ Type:double
Options:
- displacementsThe displacements
C++ Type:std::vector
Options:
Description:The displacements
- diag_save_inThe name of auxiliary variables to save this BC's diagonal jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector
Options:
Description:The name of auxiliary variables to save this BC's diagonal jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- duration0
Default:0
C++ Type:double
Options:
- final0
Default:0
C++ Type:double
Options:
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
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Options:
Description:Determines whether this object is calculated using an implicit or explicit form
- 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
- vector_tagsresidualThe tag for the vectors this Kernel should fill
Default:residual
C++ Type:MultiMooseEnum
Options:nontime time residual
Description:The tag for the vectors this Kernel should fill
- extra_vector_tagsThe extra tags for the vectors this Kernel should fill
C++ Type:std::vector
Options:
Description:The extra tags for the vectors this Kernel should fill
- matrix_tagssystem timeThe tag for the matrices this Kernel should fill
Default:system time
C++ Type:MultiMooseEnum
Options:nontime system time
Description:The tag for the matrices this Kernel should fill
- extra_matrix_tagsThe extra tags for the matrices this Kernel should fill
C++ Type:std::vector
Options:
Description:The extra tags for the matrices this Kernel should fill
Tagging Parameters
Input Files
- test/tests/bcs/misc_bcs/weak_gradient_bc_test.i
- test/tests/restart/restart_refined_mesh/bad1.i
- test/tests/bcs/sin_bc/sin_dirichlet_test.i
- test/tests/restart/restart_refined_mesh/bad2.i
- modules/chemical_reactions/examples/calcium_bicarbonate/calcium_bicarbonate.i
test/tests/bcs/misc_bcs/weak_gradient_bc_test.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
nz = 0
zmin = 0
zmax = 0
elem_type = QUAD4
[]
[Functions]
[./initial_value]
type = ParsedFunction
value = 'x'
[../]
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = initial_value
[../]
[../]
[]
[Kernels]
active = 'diff ie'
[./diff]
type = Diffusion
variable = u
[../]
[./ie]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
active = 'left right top bottom'
[./left]
type = SinDirichletBC
variable = u
boundary = 3
initial = 0.0
final = 1.0
duration = 10.0
[../]
[./right]
type = SinDirichletBC
variable = u
boundary = 1
initial = 1.0
final = 0.0
duration = 10.0
[../]
# Explicit Natural Boundary Conditions
[./top]
type = WeakGradientBC
variable = u
boundary = 2
[../]
[./bottom]
type = WeakGradientBC
variable = u
boundary = 0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
num_steps = 10
dt = 1.0
[]
[Outputs]
exodus = true
[]
test/tests/restart/restart_refined_mesh/bad1.i
[Mesh]
dim = 2
file = 2d_aperture_field.e
uniform_refine = 6
[]
[Variables]
active = 'pressure tracer ca2+ h+ hco3-'
[./pressure]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = BoundingBoxIC
x1 = 0.0
y1 = 0.0
x2 = 1.0e-10
y2 = 0.15
inside = 60.0
outside = 0.0
[../]
[../]
[./tracer]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = BoundingBoxIC
x1 = 0.0
y1 = 0.0
x2 = 1.0e-10
y2 = 0.15
inside = 1.0
outside = 0.0
[../]
[../]
[./ca2+]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = BoundingBoxIC
x1 = 0.0
y1 = 0.0
x2 = 1.0e-10
y2 = 0.15
inside = 1.0e-6
outside = 5.0e-2
[../]
[../]
[./h+]
order = FIRST
family = LAGRANGE
initial_condition = 1.0e-7
[../]
[./hco3-]
order = FIRST
family = LAGRANGE
# initial_condition = 1.0e-6
[./InitialCondition]
type = BoundingBoxIC
x1 = 0.0
y1 = 0.0
x2 = 1.0e-10
y2 = 0.15
inside = 5.0e-2
outside = 1.0e-6
[../]
[../]
[]
[AuxVariables]
active = 'conductivity caco3(s)'
[./conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./caco3(s)]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
# active = 'pressure_ie pressure_diff
# tracer_ie tracer_pd tracer_conv
# ca2+_ie ca2+_pd ca2+_conv
# ca2+_caco3(aq)_sub ca2+_caco3(aq)_cd ca2+_caco3(aq)_conv
# ca2+_cahco3+_sub ca2+_cahco3+_cd ca2+_cahco3+_conv
# ca2+_caoh+_sub ca2+_caoh+_cd ca2+_caoh+_conv
# ca2+_calcite
# h+_ie h+_pd h+_conv
# h+_caco3(aq)_sub h+_caco3(aq)_cd h+_caco3(aq)_conv
# h+_caoh+_sub h+_caoh+_cd h+_caoh+_conv
# h+_co2(aq)_sub h+_co2(aq)_cd h+_co2(aq)_conv
# h+_co32-_sub h+_co32-_cd h+_co32-_conv
# h+_oh-_sub h+_oh-_cd h+_oh-_conv
# h+_calcite
# hco3-_ie hco3-_pd hco3-_conv
# hco3-_caco3(aq)_sub hco3-_caco3(aq)_cd hco3-_caco3(aq)_conv
# hco3-_cahco3+_sub hco3-_cahco3+_cd hco3-_cahco3+_conv
# hco3-_co2(aq)_sub hco3-_co2(aq)_cd hco3-_co2(aq)_conv
# hco3-_co32-_sub hco3-_co32-_cd hco3-_co32-_conv
# hco3-_calcite'
active = 'pressure_ie pressure_diff
tracer_ie tracer_pd tracer_conv
ca2+_ie ca2+_pd ca2+_conv
ca2+_caco3(aq)_sub ca2+_caco3(aq)_cd ca2+_caco3(aq)_conv
ca2+_cahco3+_sub ca2+_cahco3+_cd ca2+_cahco3+_conv
ca2+_calcite
h+_ie h+_pd h+_conv
h+_caco3(aq)_sub h+_caco3(aq)_cd h+_caco3(aq)_conv
h+_calcite
hco3-_ie hco3-_pd hco3-_conv
hco3-_caco3(aq)_sub hco3-_caco3(aq)_cd hco3-_caco3(aq)_conv
hco3-_cahco3+_sub hco3-_cahco3+_cd hco3-_cahco3+_conv
hco3-_calcite'
# Pressure
[./pressure_ie]
type = PressureImplicitEuler
variable = pressure
[../]
[./pressure_diff]
type = PressureDiffusion
variable = pressure
[../]
# tracer
[./tracer_ie]
type = PrimaryTimeDerivative
variable = tracer
[../]
[./tracer_pd]
type = PrimaryDiffusion
variable = tracer
[../]
[./tracer_conv]
type = PrimaryConvection
variable = tracer
p = 'pressure'
[../]
# ca2+
[./ca2+_ie]
type = PrimaryTimeDerivative
variable = ca2+
[../]
[./ca2+_pd]
type = PrimaryDiffusion
variable = ca2+
[../]
[./ca2+_conv]
type = PrimaryConvection
variable = ca2+
p = 'pressure'
[../]
[./ca2+_caco3(aq)_sub]
type = CoupledBEEquilibriumSub
variable = ca2+
weight = 1.0
log_k = -7.009
sto_u = 1.0
sto_v = '-1.0 1.0'
v = 'h+ hco3-'
start_time = 1.0
[../]
[./ca2+_caco3(aq)_cd]
type = CoupledDiffusionReactionSub
variable = ca2+
weight = 1.0
log_k = -7.009
sto_u = 1.0
sto_v = '-1.0 1.0'
v = 'h+ hco3-'
start_time = 1.0
[../]
[./ca2+_caco3(aq)_conv]
type = CoupledConvectionReactionSub
variable = ca2+
weight = 1.0
log_k = -7.009
sto_u = 1.0
sto_v = '-1.0 1.0'
v = 'h+ hco3-'
p = 'pressure'
start_time = 1.0
[../]
[./ca2+_cahco3+_sub]
type = CoupledBEEquilibriumSub
variable = ca2+
weight = 1.0
log_k = 1.043
sto_u = 1.0
sto_v = 1.0
v = 'hco3-'
[../]
[./ca2+_cahco3+_cd]
type = CoupledDiffusionReactionSub
variable = ca2+
weight = 1.0
log_k = 1.043
sto_u = 1.0
sto_v = 1.0
v = 'hco3-'
[../]
[./ca2+_cahco3+_conv]
type = CoupledConvectionReactionSub
variable = ca2+
weight = 1.0
log_k = 1.043
sto_u = 1.0
sto_v = 1.0
v = 'hco3-'
p = 'pressure'
[../]
[./ca2+_caoh+_sub]
type = CoupledBEEquilibriumSub
variable = ca2+
weight = 1.0
log_k = -12.85
sto_u = 1.0
sto_v = -1.0
v = 'h+'
[../]
[./ca2+_caoh+_cd]
type = CoupledDiffusionReactionSub
variable = ca2+
weight = 1.0
log_k = -12.85
sto_u = 1.0
sto_v = -1.0
v = 'h+'
[../]
[./ca2+_caoh+_conv]
type = CoupledConvectionReactionSub
variable = ca2+
weight = 1.0
log_k = -12.85
sto_u = 1.0
sto_v = -1.0
v = 'h+'
p = 'pressure'
[../]
[./ca2+_calcite]
type = CoupledBEKinetic
variable = ca2+
weight = 1.0
v = 'caco3(s)'
start_time = 1.0
[../]
# h+
[./h+_ie]
type = PrimaryTimeDerivative
variable = h+
[../]
[./h+_pd]
type = PrimaryDiffusion
variable = h+
[../]
[./h+_conv]
type = PrimaryConvection
variable = h+
p = 'pressure'
[../]
[./h+_caco3(aq)_sub]
type = CoupledBEEquilibriumSub
variable = h+
weight = -1.0
log_k = -7.009
sto_u = -1.0
sto_v = '1.0 1.0'
v = 'ca2+ hco3-'
start_time = 1.0
[../]
[./h+_caco3(aq)_cd]
type = CoupledDiffusionReactionSub
variable = h+
weight = -1.0
log_k = -7.009
sto_u = -1.0
sto_v = '1.0 1.0'
v = 'ca2+ hco3-'
start_time = 1.0
[../]
[./h+_caco3(aq)_conv]
type = CoupledConvectionReactionSub
variable = h+
weight = -1.0
log_k = -7.009
sto_u = -1.0
sto_v = '1.0 1.0'
v = 'ca2+ hco3-'
p = 'pressure'
start_time = 1.0
[../]
[./h+_caoh+_sub]
type = CoupledBEEquilibriumSub
variable = h+
weight = -1.0
log_k = -12.85
sto_u = -1.0
sto_v = 1.0
v = 'ca2+'
[../]
[./h+_caoh+_cd]
type = CoupledDiffusionReactionSub
variable = h+
weight = -1.0
log_k = -12.85
sto_u = -1.0
sto_v = 1.0
v = 'ca2+'
[../]
[./h+_caoh+_conv]
type = CoupledConvectionReactionSub
variable = h+
weight = -1.0
log_k = -12.85
sto_u = -1.0
sto_v = 1.0
v = 'ca2+'
p = 'pressure'
[../]
[./h+_co2(aq)_sub]
type = CoupledBEEquilibriumSub
variable = h+
weight = 1.0
log_k = 6.341
sto_u = 1.0
sto_v = 1.0
v = 'hco3-'
[../]
[./h+_co2(aq)_cd]
type = CoupledDiffusionReactionSub
variable = h+
weight = 1.0
log_k = 6.341
sto_u = 1.0
sto_v = 1.0
v = 'hco3-'
[../]
[./h+_co2(aq)_conv]
type = CoupledConvectionReactionSub
variable = h+
weight = 1.0
log_k = 6.341
sto_u = 1.0
sto_v = 1.0
v = 'hco3-'
p = 'pressure'
[../]
[./h+_co32-_sub]
type = CoupledBEEquilibriumSub
variable = h+
weight = -1.0
log_k = -10.325
sto_u = -1.0
sto_v = 1.0
v = 'hco3-'
[../]
[./h+_co32-_cd]
type = CoupledDiffusionReactionSub
variable = h+
weight = -1.0
log_k = -10.325
sto_u = -1.0
sto_v = 1.0
v = 'hco3-'
[../]
[./h+_co32-_conv]
type = CoupledConvectionReactionSub
variable = h+
weight = -1.0
log_k = -10.325
sto_u = -1.0
sto_v = 1.0
v = 'hco3-'
p = 'pressure'
[../]
[./h+_oh-_sub]
type = CoupledBEEquilibriumSub
variable = h+
weight = -1.0
log_k = -13.991
sto_u = -1.0
sto_v = ' '
[../]
[./h+_oh-_cd]
type = CoupledDiffusionReactionSub
variable = h+
weight = -1.0
log_k = -13.991
sto_u = -1.0
sto_v = ' '
[../]
[./h+_oh-_conv]
type = CoupledConvectionReactionSub
variable = h+
weight = -1.0
log_k = -13.991
sto_u = -1.0
sto_v = ' '
p = 'pressure'
[../]
[./h+_calcite]
type = CoupledBEKinetic
variable = h+
weight = -1.0
v = 'caco3(s)'
start_time = 1.0
[../]
# hco3-
[./hco3-_ie]
type = PrimaryTimeDerivative
variable = hco3-
[../]
[./hco3-_pd]
type = PrimaryDiffusion
variable = hco3-
[../]
[./hco3-_conv]
type = PrimaryConvection
variable = hco3-
p = 'pressure'
[../]
[./hco3-_caco3(aq)_sub]
type = CoupledBEEquilibriumSub
variable = hco3-
weight = 1.0
log_k = -7.009
sto_u = 1.0
sto_v = '1.0 -1.0'
v = 'ca2+ h+'
start_time = 1.0
[../]
[./hco3-_caco3(aq)_cd]
type = CoupledDiffusionReactionSub
variable = hco3-
weight = 1.0
log_k = -7.009
sto_u = 1.0
sto_v = '1.0 -1.0'
v = 'ca2+ h+'
start_time = 1.0
[../]
[./hco3-_caco3(aq)_conv]
type = CoupledConvectionReactionSub
variable = hco3-
weight = 1.0
log_k = -7.009
sto_u = 1.0
sto_v = '1.0 -1.0'
v = 'ca2+ h+'
p = 'pressure'
start_time = 1.0
[../]
[./hco3-_cahco3+_sub]
type = CoupledBEEquilibriumSub
variable = hco3-
weight = 1.0
log_k = 1.043
sto_u = 1.0
sto_v = 1.0
v = 'ca2+'
[../]
[./hco3-_cahco3+_cd]
type = CoupledDiffusionReactionSub
variable = hco3-
weight = 1.0
log_k = 1.043
sto_u = 1.0
sto_v = 1.0
v = 'ca2+'
[../]
[./hco3-_cahco3+_conv]
type = CoupledConvectionReactionSub
variable = hco3-
weight = 1.0
log_k = 1.043
sto_u = 1.0
sto_v = 1.0
v = 'ca2+'
p = 'pressure'
[../]
[./hco3-_co2(aq)_sub]
type = CoupledBEEquilibriumSub
variable = hco3-
weight = 1.0
log_k = 6.341
sto_u = 1.0
sto_v = 1.0
v = 'h+'
[../]
[./hco3-_co2(aq)_cd]
type = CoupledDiffusionReactionSub
variable = hco3-
weight = 1.0
log_k = 6.341
sto_u = 1.0
sto_v = 1.0
v = 'h+'
[../]
[./hco3-_co2(aq)_conv]
type = CoupledConvectionReactionSub
variable = hco3-
weight = 1.0
log_k = 6.341
sto_u = 1.0
sto_v = 1.0
v = 'h+'
p = 'pressure'
[../]
[./hco3-_co32-_sub]
type = CoupledBEEquilibriumSub
variable = hco3-
weight = 1.0
log_k = -10.325
sto_u = 1.0
sto_v = -1.0
v = 'h+'
[../]
[./hco3-_co32-_cd]
type = CoupledDiffusionReactionSub
variable = hco3-
weight = 1.0
log_k = -10.325
sto_u = 1.0
sto_v = -1.0
v = 'h+'
[../]
[./hco3-_co32-_conv]
type = CoupledConvectionReactionSub
variable = hco3-
weight = 1.0
log_k = -10.325
sto_u = 1.0
sto_v = -1.0
v = 'h+'
p = 'pressure'
[../]
[./hco3-_calcite]
type = CoupledBEKinetic
variable = hco3-
weight = 1.0
v = 'caco3(s)'
start_time = 1.0
[../]
[]
[AuxKernels]
active = 'aux_conductivity aux_caco3(s)'
# conductivity
[./aux_conductivity]
type = StochasticFieldAux
variable = conductivity
file_name = k_field.dat
[../]
# caco3(s)
[./aux_caco3(s)]
type = KineticDisPreConcAux
variable = caco3(s)
log_k = 1.8487
sto_v = '1.0 1.0 -1.0'
r_area = 4.61e-4
ref_kconst = 6.456542e-7
e_act = 1.5e4
gas_const = 8.314
ref_temp = 298.15
sys_temp = 298.15
v = 'ca2+ hco3- h+'
start_time = 1.0
[../]
[]
[BCs]
active = 'pressure_left pressure_right
tracer_left tracer_right
ca2+_left ca2+_right
hco3-_left hco3-_right
h+_left h+_right'
# pressure
[./pressure_left]
type = DirichletBC
variable = pressure
boundary = 1
value = 60.0
[../]
[./pressure_right]
type = DirichletBC
variable = pressure
boundary = 2
value = 0.0
[../]
# tracer
[./tracer_left]
type = DirichletBC
variable = tracer
boundary = 1
value = 1.0
[../]
[./tracer_right]
type = OutFlowBC
variable = tracer
boundary = 2
porosity = 1.0
diffusivity = 7.5e-7
[../]
# ca2+
[./ca2+_left]
# type = DirichletBC
# variable = ca2+
# boundary = 1
# value = 1.0e-6
type = SinDirichletBC
variable = ca2+
boundary = 1
initial = 5.0e-2
final = 1.0e-6
duration = 1
[../]
[./ca2+_right]
type = OutFlowBC
variable = ca2+
boundary = 2
porosity = 1.0
diffusivity = 7.5e-7
[../]
# hco3-
[./hco3-_left]
# type = DirichletBC
# variable = hco3-
# boundary = 1
# value = 1.0e-2
type = SinDirichletBC
variable = hco3-
boundary = 1
initial = 1.0e-6
final = 5.0e-2
duration = 1
[../]
[./hco3-_right]
type = OutFlowBC
variable = hco3-
boundary = 2
porosity = 1.0
diffusivity = 7.5e-7
[../]
# h+
[./h+_left]
type = DirichletBC
variable = h+
boundary = 1
value = 1.0e-7
[../]
[./h+_right]
type = OutFlowBC
variable = h+
boundary = 2
porosity = 1.0
diffusivity = 7.5e-7
[../]
[]
[Materials]
active = 'stochastic'
[./stochastic]
type = StochasticMaterial
block = 1
diffusivity = 7.5e-7
storage = 1.0e-5
init_porosity = 1.0
conductivity = conductivity
mineral = 0.00
molecular_weight = 100.08
density = 2.7099
v = 'caco3(s)'
[../]
[]
[Executioner]
active = ' '
type = Transient
# type = SolutionTimeAdaptive
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 51'
l_max_its = 50
l_tol = 1e-5
nl_max_its = 10
nl_rel_tol = 1e-5
start_time = 0.0
end_time = 1.0
num_steps = 10000000
dt = 0.02
dtmin = 0.0000001
dtmax = 0.1
# sol_time_adaptive_time_stepping = true
sync_times = '1.0'
[./Adaptivity]
# initial_adaptivity = 3
error_estimator = KellyErrorEstimator
refine_fraction = 0.85
coarsen_fraction = 0.05
# weight_names = 'urea nh4+'
# weight_values = '1.0e2 1.0e6'
max_h_level = 2
[../]
[]
[Outputs]
file_base = 2d_stoch_aperture_caco3_pe1.5_64_mesh_out
exodus = true
[]
test/tests/bcs/sin_bc/sin_dirichlet_test.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
nz = 0
zmin = 0
zmax = 0
elem_type = QUAD4
[]
[Functions]
[./initial_value]
type = ParsedFunction
value = 'x'
[../]
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = initial_value
[../]
[../]
[]
[Kernels]
active = 'diff ie'
[./diff]
type = Diffusion
variable = u
[../]
[./ie]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
active = 'left right'
[./left]
type = SinDirichletBC
variable = u
boundary = 3
initial = 0.0
final = 1.0
duration = 10.0
[../]
[./right]
type = SinDirichletBC
variable = u
boundary = 1
initial = 1.0
final = 0.0
duration = 10.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
num_steps = 10
dt = 1.0
[]
[Outputs]
exodus = true
[]
test/tests/restart/restart_refined_mesh/bad2.i
[Mesh]
# dim = 2
file = 2d_stoch_aperture_caco3_pe1.5_64_mesh_out.e
# uniform_refine = 6
[]
[Variables]
active = 'pressure tracer ca2+ h+ hco3-'
[./pressure]
order = FIRST
family = LAGRANGE
initial_from_file_var = 'pressure'
initial_from_file_timestep = 51
# [./InitialCondition]
# type = BoundingBoxIC
# x1 = 0.0
# y1 = 0.0
# x2 = 1.0e-10
# y2 = 0.15
# inside = 60.0
# outside = 0.0
# [../]
[../]
[./tracer]
order = FIRST
family = LAGRANGE
initial_from_file_var = 'tracer'
initial_from_file_timestep = 51
# [./InitialCondition]
# type = BoundingBoxIC
# x1 = 0.0
# y1 = 0.0
# x2 = 1.0e-10
# y2 = 0.15
# inside = 1.0
# outside = 0.0
# [../]
[../]
[./ca2+]
order = FIRST
family = LAGRANGE
initial_from_file_var = 'ca2+'
initial_from_file_timestep = 51
# [./InitialCondition]
# type = BoundingBoxIC
# x1 = 0.0
# y1 = 0.0
# x2 = 1.0e-10
# y2 = 0.15
# inside = 1.0e-6
# outside = 5.0e-2
# [../]
[../]
[./h+]
order = FIRST
family = LAGRANGE
initial_from_file_var = 'h+'
initial_from_file_timestep = 51
# initial_condition = 1.0e-7
[../]
[./hco3-]
order = FIRST
family = LAGRANGE
initial_from_file_var = 'hco3-'
initial_from_file_timestep = 51
# initial_condition = 1.0e-6
# [./InitialCondition]
# type = BoundingBoxIC
# x1 = 0.0
# y1 = 0.0
# x2 = 1.0e-10
# y2 = 0.15
# inside = 5.0e-2
# outside = 1.0e-6
# [../]
[../]
[]
[AuxVariables]
active = 'conductivity caco3(s)'
[./conductivity]
order = CONSTANT
family = MONOMIAL
[../]
[./caco3(s)]
order = FIRST
family = LAGRANGE
initial_from_file_var = 'caco3(s)'
initial_from_file_timestep = 51
[../]
[]
[Kernels]
# active = 'pressure_ie pressure_diff
# tracer_ie tracer_pd tracer_conv
# ca2+_ie ca2+_pd ca2+_conv
# ca2+_caco3(aq)_sub ca2+_caco3(aq)_cd ca2+_caco3(aq)_conv
# ca2+_cahco3+_sub ca2+_cahco3+_cd ca2+_cahco3+_conv
# ca2+_caoh+_sub ca2+_caoh+_cd ca2+_caoh+_conv
# ca2+_calcite
# h+_ie h+_pd h+_conv
# h+_caco3(aq)_sub h+_caco3(aq)_cd h+_caco3(aq)_conv
# h+_caoh+_sub h+_caoh+_cd h+_caoh+_conv
# h+_co2(aq)_sub h+_co2(aq)_cd h+_co2(aq)_conv
# h+_co32-_sub h+_co32-_cd h+_co32-_conv
# h+_oh-_sub h+_oh-_cd h+_oh-_conv
# h+_calcite
# hco3-_ie hco3-_pd hco3-_conv
# hco3-_caco3(aq)_sub hco3-_caco3(aq)_cd hco3-_caco3(aq)_conv
# hco3-_cahco3+_sub hco3-_cahco3+_cd hco3-_cahco3+_conv
# hco3-_co2(aq)_sub hco3-_co2(aq)_cd hco3-_co2(aq)_conv
# hco3-_co32-_sub hco3-_co32-_cd hco3-_co32-_conv
# hco3-_calcite'
active = 'pressure_ie pressure_diff
tracer_ie tracer_pd tracer_conv
ca2+_ie ca2+_pd ca2+_conv
ca2+_caco3(aq)_sub ca2+_caco3(aq)_cd ca2+_caco3(aq)_conv
ca2+_cahco3+_sub ca2+_cahco3+_cd ca2+_cahco3+_conv
ca2+_calcite
h+_ie h+_pd h+_conv
h+_caco3(aq)_sub h+_caco3(aq)_cd h+_caco3(aq)_conv
h+_calcite
hco3-_ie hco3-_pd hco3-_conv
hco3-_caco3(aq)_sub hco3-_caco3(aq)_cd hco3-_caco3(aq)_conv
hco3-_cahco3+_sub hco3-_cahco3+_cd hco3-_cahco3+_conv
hco3-_calcite'
# Pressure
[./pressure_ie]
type = PressureImplicitEuler
variable = pressure
[../]
[./pressure_diff]
type = PressureDiffusion
variable = pressure
[../]
# tracer
[./tracer_ie]
type = PrimaryTimeDerivative
variable = tracer
[../]
[./tracer_pd]
type = PrimaryDiffusion
variable = tracer
[../]
[./tracer_conv]
type = PrimaryConvection
variable = tracer
p = 'pressure'
[../]
# ca2+
[./ca2+_ie]
type = PrimaryTimeDerivative
variable = ca2+
[../]
[./ca2+_pd]
type = PrimaryDiffusion
variable = ca2+
[../]
[./ca2+_conv]
type = PrimaryConvection
variable = ca2+
p = 'pressure'
[../]
[./ca2+_caco3(aq)_sub]
type = CoupledBEEquilibriumSub
variable = ca2+
weight = 1.0
log_k = -7.009
sto_u = 1.0
sto_v = '-1.0 1.0'
v = 'h+ hco3-'
# start_time = 1.0
[../]
[./ca2+_caco3(aq)_cd]
type = CoupledDiffusionReactionSub
variable = ca2+
weight = 1.0
log_k = -7.009
sto_u = 1.0
sto_v = '-1.0 1.0'
v = 'h+ hco3-'
# start_time = 1.0
[../]
[./ca2+_caco3(aq)_conv]
type = CoupledConvectionReactionSub
variable = ca2+
weight = 1.0
log_k = -7.009
sto_u = 1.0
sto_v = '-1.0 1.0'
v = 'h+ hco3-'
p = 'pressure'
# start_time = 1.0
[../]
[./ca2+_cahco3+_sub]
type = CoupledBEEquilibriumSub
variable = ca2+
weight = 1.0
log_k = 1.043
sto_u = 1.0
sto_v = 1.0
v = 'hco3-'
[../]
[./ca2+_cahco3+_cd]
type = CoupledDiffusionReactionSub
variable = ca2+
weight = 1.0
log_k = 1.043
sto_u = 1.0
sto_v = 1.0
v = 'hco3-'
[../]
[./ca2+_cahco3+_conv]
type = CoupledConvectionReactionSub
variable = ca2+
weight = 1.0
log_k = 1.043
sto_u = 1.0
sto_v = 1.0
v = 'hco3-'
p = 'pressure'
[../]
[./ca2+_caoh+_sub]
type = CoupledBEEquilibriumSub
variable = ca2+
weight = 1.0
log_k = -12.85
sto_u = 1.0
sto_v = -1.0
v = 'h+'
[../]
[./ca2+_caoh+_cd]
type = CoupledDiffusionReactionSub
variable = ca2+
weight = 1.0
log_k = -12.85
sto_u = 1.0
sto_v = -1.0
v = 'h+'
[../]
[./ca2+_caoh+_conv]
type = CoupledConvectionReactionSub
variable = ca2+
weight = 1.0
log_k = -12.85
sto_u = 1.0
sto_v = -1.0
v = 'h+'
p = 'pressure'
[../]
[./ca2+_calcite]
type = CoupledBEKinetic
variable = ca2+
weight = 1.0
v = 'caco3(s)'
# start_time = 1.0
[../]
# h+
[./h+_ie]
type = PrimaryTimeDerivative
variable = h+
[../]
[./h+_pd]
type = PrimaryDiffusion
variable = h+
[../]
[./h+_conv]
type = PrimaryConvection
variable = h+
p = 'pressure'
[../]
[./h+_caco3(aq)_sub]
type = CoupledBEEquilibriumSub
variable = h+
weight = -1.0
log_k = -7.009
sto_u = -1.0
sto_v = '1.0 1.0'
v = 'ca2+ hco3-'
# start_time = 1.0
[../]
[./h+_caco3(aq)_cd]
type = CoupledDiffusionReactionSub
variable = h+
weight = -1.0
log_k = -7.009
sto_u = -1.0
sto_v = '1.0 1.0'
v = 'ca2+ hco3-'
# start_time = 1.0
[../]
[./h+_caco3(aq)_conv]
type = CoupledConvectionReactionSub
variable = h+
weight = -1.0
log_k = -7.009
sto_u = -1.0
sto_v = '1.0 1.0'
v = 'ca2+ hco3-'
p = 'pressure'
# start_time = 1.0
[../]
[./h+_caoh+_sub]
type = CoupledBEEquilibriumSub
variable = h+
weight = -1.0
log_k = -12.85
sto_u = -1.0
sto_v = 1.0
v = 'ca2+'
[../]
[./h+_caoh+_cd]
type = CoupledDiffusionReactionSub
variable = h+
weight = -1.0
log_k = -12.85
sto_u = -1.0
sto_v = 1.0
v = 'ca2+'
[../]
[./h+_caoh+_conv]
type = CoupledConvectionReactionSub
variable = h+
weight = -1.0
log_k = -12.85
sto_u = -1.0
sto_v = 1.0
v = 'ca2+'
p = 'pressure'
[../]
[./h+_co2(aq)_sub]
type = CoupledBEEquilibriumSub
variable = h+
weight = 1.0
log_k = 6.341
sto_u = 1.0
sto_v = 1.0
v = 'hco3-'
[../]
[./h+_co2(aq)_cd]
type = CoupledDiffusionReactionSub
variable = h+
weight = 1.0
log_k = 6.341
sto_u = 1.0
sto_v = 1.0
v = 'hco3-'
[../]
[./h+_co2(aq)_conv]
type = CoupledConvectionReactionSub
variable = h+
weight = 1.0
log_k = 6.341
sto_u = 1.0
sto_v = 1.0
v = 'hco3-'
p = 'pressure'
[../]
[./h+_co32-_sub]
type = CoupledBEEquilibriumSub
variable = h+
weight = -1.0
log_k = -10.325
sto_u = -1.0
sto_v = 1.0
v = 'hco3-'
[../]
[./h+_co32-_cd]
type = CoupledDiffusionReactionSub
variable = h+
weight = -1.0
log_k = -10.325
sto_u = -1.0
sto_v = 1.0
v = 'hco3-'
[../]
[./h+_co32-_conv]
type = CoupledConvectionReactionSub
variable = h+
weight = -1.0
log_k = -10.325
sto_u = -1.0
sto_v = 1.0
v = 'hco3-'
p = 'pressure'
[../]
[./h+_oh-_sub]
type = CoupledBEEquilibriumSub
variable = h+
weight = -1.0
log_k = -13.991
sto_u = -1.0
sto_v = ' '
[../]
[./h+_oh-_cd]
type = CoupledDiffusionReactionSub
variable = h+
weight = -1.0
log_k = -13.991
sto_u = -1.0
sto_v = ' '
[../]
[./h+_oh-_conv]
type = CoupledConvectionReactionSub
variable = h+
weight = -1.0
log_k = -13.991
sto_u = -1.0
sto_v = ' '
p = 'pressure'
[../]
[./h+_calcite]
type = CoupledBEKinetic
variable = h+
weight = -1.0
v = 'caco3(s)'
# start_time = 1.0
[../]
# hco3-
[./hco3-_ie]
type = PrimaryTimeDerivative
variable = hco3-
[../]
[./hco3-_pd]
type = PrimaryDiffusion
variable = hco3-
[../]
[./hco3-_conv]
type = PrimaryConvection
variable = hco3-
p = 'pressure'
[../]
[./hco3-_caco3(aq)_sub]
type = CoupledBEEquilibriumSub
variable = hco3-
weight = 1.0
log_k = -7.009
sto_u = 1.0
sto_v = '1.0 -1.0'
v = 'ca2+ h+'
# start_time = 1.0
[../]
[./hco3-_caco3(aq)_cd]
type = CoupledDiffusionReactionSub
variable = hco3-
weight = 1.0
log_k = -7.009
sto_u = 1.0
sto_v = '1.0 -1.0'
v = 'ca2+ h+'
# start_time = 1.0
[../]
[./hco3-_caco3(aq)_conv]
type = CoupledConvectionReactionSub
variable = hco3-
weight = 1.0
log_k = -7.009
sto_u = 1.0
sto_v = '1.0 -1.0'
v = 'ca2+ h+'
p = 'pressure'
# start_time = 1.0
[../]
[./hco3-_cahco3+_sub]
type = CoupledBEEquilibriumSub
variable = hco3-
weight = 1.0
log_k = 1.043
sto_u = 1.0
sto_v = 1.0
v = 'ca2+'
[../]
[./hco3-_cahco3+_cd]
type = CoupledDiffusionReactionSub
variable = hco3-
weight = 1.0
log_k = 1.043
sto_u = 1.0
sto_v = 1.0
v = 'ca2+'
[../]
[./hco3-_cahco3+_conv]
type = CoupledConvectionReactionSub
variable = hco3-
weight = 1.0
log_k = 1.043
sto_u = 1.0
sto_v = 1.0
v = 'ca2+'
p = 'pressure'
[../]
[./hco3-_co2(aq)_sub]
type = CoupledBEEquilibriumSub
variable = hco3-
weight = 1.0
log_k = 6.341
sto_u = 1.0
sto_v = 1.0
v = 'h+'
[../]
[./hco3-_co2(aq)_cd]
type = CoupledDiffusionReactionSub
variable = hco3-
weight = 1.0
log_k = 6.341
sto_u = 1.0
sto_v = 1.0
v = 'h+'
[../]
[./hco3-_co2(aq)_conv]
type = CoupledConvectionReactionSub
variable = hco3-
weight = 1.0
log_k = 6.341
sto_u = 1.0
sto_v = 1.0
v = 'h+'
p = 'pressure'
[../]
[./hco3-_co32-_sub]
type = CoupledBEEquilibriumSub
variable = hco3-
weight = 1.0
log_k = -10.325
sto_u = 1.0
sto_v = -1.0
v = 'h+'
[../]
[./hco3-_co32-_cd]
type = CoupledDiffusionReactionSub
variable = hco3-
weight = 1.0
log_k = -10.325
sto_u = 1.0
sto_v = -1.0
v = 'h+'
[../]
[./hco3-_co32-_conv]
type = CoupledConvectionReactionSub
variable = hco3-
weight = 1.0
log_k = -10.325
sto_u = 1.0
sto_v = -1.0
v = 'h+'
p = 'pressure'
[../]
[./hco3-_calcite]
type = CoupledBEKinetic
variable = hco3-
weight = 1.0
v = 'caco3(s)'
# start_time = 1.0
[../]
[]
[AuxKernels]
active = 'aux_conductivity aux_caco3(s)'
# conductivity
[./aux_conductivity]
type = StochasticFieldAux
variable = conductivity
file_name = k_field.dat
[../]
# caco3(s)
[./aux_caco3(s)]
type = KineticDisPreConcAux
variable = caco3(s)
log_k = 1.8487
sto_v = '1.0 1.0 -1.0'
r_area = 4.61e-4
ref_kconst = 6.456542e-7
e_act = 1.5e4
gas_const = 8.314
ref_temp = 298.15
sys_temp = 298.15
v = 'ca2+ hco3- h+'
# start_time = 1.0
[../]
[]
[BCs]
active = 'pressure_left pressure_right
tracer_left tracer_right
ca2+_left ca2+_right
hco3-_left hco3-_right
h+_left h+_right'
# pressure
[./pressure_left]
type = DirichletBC
variable = pressure
boundary = 1
value = 60.0
[../]
[./pressure_right]
type = DirichletBC
variable = pressure
boundary = 2
value = 0.0
[../]
# tracer
[./tracer_left]
type = DirichletBC
variable = tracer
boundary = 1
value = 1.0
[../]
[./tracer_right]
type = OutFlowBC
variable = tracer
boundary = 2
porosity = 1.0
diffusivity = 7.5e-7
[../]
# ca2+
[./ca2+_left]
type = DirichletBC
variable = ca2+
boundary = 1
value = 1.0e-6
# type = SinDirichletBC
# variable = ca2+
# boundary = 1
# initial = 5.0e-2
# final = 1.0e-6
# duration = 1
[../]
[./ca2+_right]
type = OutFlowBC
variable = ca2+
boundary = 2
porosity = 1.0
diffusivity = 7.5e-7
[../]
# hco3-
[./hco3-_left]
type = DirichletBC
variable = hco3-
boundary = 1
value = 1.0e-2
# type = SinDirichletBC
# variable = hco3-
# boundary = 1
# initial = 1.0e-6
# final = 5.0e-2
# duration = 1
[../]
[./hco3-_right]
type = OutFlowBC
variable = hco3-
boundary = 2
porosity = 1.0
diffusivity = 7.5e-7
[../]
# h+
[./h+_left]
type = DirichletBC
variable = h+
boundary = 1
value = 1.0e-7
[../]
[./h+_right]
type = OutFlowBC
variable = h+
boundary = 2
porosity = 1.0
diffusivity = 7.5e-7
[../]
[]
[Materials]
active = 'stochastic'
[./stochastic]
type = StochasticMaterial
block = 1
diffusivity = 7.5e-7
storage = 1.0e-5
init_porosity = 1.0
conductivity = conductivity
mineral = 0.00
molecular_weight = 100.08
density = 2.7099
v = 'caco3(s)'
[../]
[]
[Executioner]
active = ' '
type = Transient
# type = SolutionTimeAdaptive
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 51'
l_max_its = 50
l_tol = 1e-5
nl_max_its = 10
nl_rel_tol = 1e-5
start_time = 0.0
end_time = 2.0
num_steps = 10000000
dt = 0.02
dtmin = 0.0000001
dtmax = 0.1
# sol_time_adaptive_time_stepping = true
sync_times = '1.0 4.0 8.0 10.0'
[./Adaptivity]
# initial_adaptivity = 3
error_estimator = KellyErrorEstimator
refine_fraction = 0.85
coarsen_fraction = 0.05
# weight_names = 'urea nh4+'
# weight_values = '1.0e2 1.0e6'
max_h_level = 2
[../]
[]
[Outputs]
file_base = 2d_stoch_aperture_caco3_pe1.5_64_transient_out
exodus = true
[]
modules/chemical_reactions/examples/calcium_bicarbonate/calcium_bicarbonate.i
# Example of reactive transport model with precipitation and dissolution.
# Calcium (ca2) and bicarbonate (hco3) reaction to form calcite (CaCO3).
# Models bicarbonate injection following calcium injection, so that a
# moving reaction front forms a calcite precipitation zone. As the front moves,
# the upstream side of the front continues to form calcite via precipitation,
# while at the downstream side, dissolution of the solid calcite occurs.
#
# The reaction network considered is as follows:
# Aqueous equilibrium reactions:
# a) h+ + hco3- = CO2(aq), Keq = 10^(6.341)
# b) hco3- = h+ + CO23-, Keq = 10^(-10.325)
# c) ca2+ + hco3- = h+ + CaCO3(aq), Keq = 10^(-7.009)
# d) ca2+ + hco3- = cahco3+, Keq = 10^(-0.653)
# e) ca2+ = h+ + CaOh+, Keq = 10^(-12.85)
# f) - h+ = oh-, Keq = 10^(-13.991)
#
# Kinetic reactions
# g) ca2+ + 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 ca2+. The pressure gradient is fixed,
# and a conservative tracer is also included.
#
# This example is taken from:
# Guo et al, A parallel, fully coupled, fully implicit solution to reactive
# transport in porous media using the preconditioned Jacobian-Free Newton-Krylov
# Method, Advances in Water Resources, 53, 101-108 (2013).
[Mesh]
type = GeneratedMesh
dim = 2
nx = 100
xmax = 1
ymax = 0.25
[]
[Variables]
[./tracer]
[../]
[./ca2+]
[../]
[./h+]
initial_condition = 1.0e-7
scaling = 1e6
[../]
[./hco3-]
[../]
[]
[AuxVariables]
[./pressure]
order = FIRST
family = LAGRANGE
[../]
[]
[ICs]
[./pressure_ic]
type = FunctionIC
variable = pressure
function = pic
[../]
[./hco3_ic]
type = BoundingBoxIC
variable = hco3-
x1 = 0.0
y1 = 0.0
x2 = 1.0e-10
y2 = 0.25
inside = 5.0e-2
outside = 1.0e-6
[../]
[./ca2_ic]
type = BoundingBoxIC
variable = ca2+
x1 = 0.0
y1 = 0.0
x2 = 1.0e-10
y2 = 0.25
inside = 1.0e-6
outside = 5.0e-2
[../]
[./tracer_ic]
type = BoundingBoxIC
variable = tracer
x1 = 0.0
y1 = 0.0
x2 = 1.0e-10
y2 = 0.25
inside = 1.0
outside = 0.0
[../]
[]
[Functions]
[./pic]
type = ParsedFunction
value = 60-50*x
[../]
[]
[ReactionNetwork]
[./AqueousEquilibriumReactions]
primary_species = 'ca2+ hco3- h+'
secondary_species = 'co2_aq co32- caco3_aq cahco3+ caoh+ oh-'
pressure = pressure
reactions = 'h+ + hco3- = co2_aq 6.341,
hco3- - h+ = co32- -10.325,
ca2+ + hco3- - h+ = caco3_aq -7.009,
ca2+ + hco3- = cahco3+ -0.653,
ca2+ - h+ = caoh+ -12.85,
- h+ = oh- -13.991'
[../]
[./SolidKineticReactions]
primary_species = 'ca2+ hco3- h+'
kin_reactions = 'ca2+ + 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 = 4.61e-4
kinetic_rate_constant = 6.456542e-7
activation_energy = 1.5e4
[../]
[]
[Kernels]
[./tracer_ie]
type = PrimaryTimeDerivative
variable = tracer
[../]
[./tracer_pd]
type = PrimaryDiffusion
variable = tracer
[../]
[./tracer_conv]
type = PrimaryConvection
variable = tracer
p = pressure
[../]
[./ca2+_ie]
type = PrimaryTimeDerivative
variable = ca2+
[../]
[./ca2+_pd]
type = PrimaryDiffusion
variable = ca2+
[../]
[./ca2+_conv]
type = PrimaryConvection
variable = ca2+
p = pressure
[../]
[./h+_ie]
type = PrimaryTimeDerivative
variable = h+
[../]
[./h+_pd]
type = PrimaryDiffusion
variable = h+
[../]
[./h+_conv]
type = PrimaryConvection
variable = h+
p = pressure
[../]
[./hco3-_ie]
type = PrimaryTimeDerivative
variable = hco3-
[../]
[./hco3-_pd]
type = PrimaryDiffusion
variable = hco3-
[../]
[./hco3-_conv]
type = PrimaryConvection
variable = hco3-
p = pressure
[../]
[]
[BCs]
[./tracer_left]
type = DirichletBC
variable = tracer
boundary = left
value = 1.0
[../]
[./tracer_right]
type = ChemicalOutFlowBC
variable = tracer
boundary = right
[../]
[./ca2+_left]
type = SinDirichletBC
variable = ca2+
boundary = left
initial = 5.0e-2
final = 1.0e-6
duration = 1
[../]
[./ca2+_right]
type = ChemicalOutFlowBC
variable = ca2+
boundary = right
[../]
[./hco3-_left]
type = SinDirichletBC
variable = hco3-
boundary = left
initial = 1.0e-6
final = 5.0e-2
duration = 1
[../]
[./hco3-_right]
type = ChemicalOutFlowBC
variable = hco3-
boundary = right
[../]
[./h+_left]
type = DirichletBC
variable = h+
boundary = left
value = 1.0e-7
[../]
[./h+_right]
type = ChemicalOutFlowBC
variable = h+
boundary = right
[../]
[]
[Materials]
[./porous]
type = GenericConstantMaterial
prop_names = 'diffusivity conductivity porosity'
prop_values = '1e-7 2e-4 0.2'
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
l_max_its = 50
l_tol = 1e-5
nl_max_its = 10
nl_rel_tol = 1e-5
end_time = 10
[./TimeStepper]
type = ConstantDT
dt = 0.1
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Outputs]
perf_graph = true
exodus = true
[]