- variableThe name of the variable that this postprocessor operates on
C++ Type:std::vector<VariableName>
Description:The name of the variable that this postprocessor operates on
AverageNodalVariableValue
Computes the average value of a field by sampling all nodal solutions on the domain or within a subdomain
Example Input File Syntax
Input Parameters
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Options:
Description:The list of blocks (ids or names) that this object will be applied
- boundaryThe list of boundaries (ids or names) from the mesh where this boundary condition applies
C++ Type:std::vector<BoundaryName>
Options:
Description:The list of boundaries (ids or names) from the mesh where this boundary condition applies
- execute_onTIMESTEP_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.
Default:TIMESTEP_END
C++ Type:ExecFlagEnum
Options:NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM, TRANSFER
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.
- unique_node_executeFalseWhen false (default), block restricted objects will have the execute method called multiple times on a single node if the node lies on a interface between two subdomains.
Default:False
C++ Type:bool
Options:
Description:When false (default), block restricted objects will have the execute method called multiple times on a single node if the node lies on a interface between two subdomains.
Optional Parameters
- allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
Default:False
C++ Type:bool
Options:
Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
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.
- force_postauxFalseForces the UserObject to be executed in POSTAUX
Default:False
C++ Type:bool
Options:
Description:Forces the UserObject to be executed in POSTAUX
- force_preauxFalseForces the UserObject to be executed in PREAUX
Default:False
C++ Type:bool
Options:
Description:Forces the UserObject to be executed in PREAUX
- force_preicFalseForces the UserObject to be executed in PREIC during initial setup
Default:False
C++ Type:bool
Options:
Description:Forces the UserObject to be executed in PREIC during initial setup
- outputsVector of output names were you would like to restrict the output of variables(s) associated with this object
C++ Type:std::vector<OutputName>
Options:
Description:Vector of output names were you would like to restrict the output of variables(s) associated with this object
- 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/stochastic_tools/test/tests/vectorpostprocessors/stochastic_results/sub.i)
- (modules/tensor_mechanics/test/tests/action/composite_eigenstrain.i)
- (modules/stochastic_tools/test/tests/multiapps/batch_full_solve_multiapp/sub.i)
- (modules/tensor_mechanics/test/tests/thermal_expansion/ad_constant_expansion_stress_free_temp.i)
- (modules/tensor_mechanics/test/tests/thermal_expansion/multiple_thermal_eigenstrains.i)
- (modules/tensor_mechanics/test/tests/thermal_expansion/constant_expansion_stress_free_temp.i)
- (modules/tensor_mechanics/test/tests/thermal_expansion/constant_expansion_coeff.i)
- (test/tests/postprocessors/avg_nodal_var_value/avg_nodal_var_value_ts_begin.i)
- (modules/stochastic_tools/test/tests/vectorpostprocessors/multiple_stochastic_results/sub.i)
- (modules/stochastic_tools/test/tests/surrogates/poly_chaos/sub.i)
- (modules/stochastic_tools/examples/surrogates/gaussian_process/sub.i)
- (test/tests/postprocessors/avg_nodal_var_value/avg_nodal_var_value.i)
- (modules/stochastic_tools/test/tests/vectorpostprocessors/stochastic_results_complete_history/sub.i)
- (modules/stochastic_tools/test/tests/transfers/batch_sampler_transfer/sub.i)
- (test/tests/controls/time_periods/user_objects/user_object.i)
- (modules/stochastic_tools/examples/parameter_study/diffusion.i)
- (modules/stochastic_tools/examples/surrogates/sub.i)
- (modules/combined/test/tests/thermo_mech/youngs_modulus_function_temp.i)
- (modules/stochastic_tools/test/tests/surrogates/load_store/sub.i)
- (modules/combined/test/tests/thermo_mech/ad-youngs_modulus_function_temp.i)
- (modules/tensor_mechanics/test/tests/thermal_expansion/ad_constant_expansion_coeff_old.i)
- (modules/tensor_mechanics/test/tests/action/action_eigenstrain.i)
- (modules/stochastic_tools/examples/batch/sub.i)
- (modules/stochastic_tools/test/tests/transfers/sampler_postprocessor/sub.i)
- (modules/stochastic_tools/test/tests/transfers/sampler_postprocessor/errors/sub.i)
- (modules/tensor_mechanics/test/tests/thermal_expansion/constant_expansion_coeff_restart.i)
- (modules/stochastic_tools/test/tests/surrogates/gaussian_process/sub.i)
- (modules/tensor_mechanics/test/tests/thermal_expansion/ad_constant_expansion_coeff.i)
- (modules/stochastic_tools/examples/sobol/diffusion.i)
- (modules/combined/examples/geochem-porous_flow/geotes_weber_tensleep/porous_flow.i)
- (modules/stochastic_tools/test/tests/multiapps/batch_sampler_transient_multiapp/sub.i)
(modules/stochastic_tools/test/tests/vectorpostprocessors/stochastic_results/sub.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.01
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Controls]
[stochastic]
type = SamplerReceiver
[]
[]
[Postprocessors]
[avg]
type = AverageNodalVariableValue
variable = u
[]
[]
[Outputs]
[]
(modules/tensor_mechanics/test/tests/action/composite_eigenstrain.i)
# The primary purpose of this test is to verify that the ability to combine
# multiple eigenstrains works correctly. It should behave identically to the
# constant_expansion_coeff.i model in the thermal_expansion directory. Instead
# of having the eigenstrain names passed directly to the TensorMechanics MasterAction,
# the MasterAction should be able to extract the necessary eigenstrains and apply
# to their respective blocks without reduncacy.
# This test involves only thermal expansion strains on a 2x2x2 cube of approximate
# steel material. An initial temperature of 25 degrees C is given for the material,
# and an auxkernel is used to calculate the temperature in the entire cube to
# raise the temperature each time step. After the first timestep,in which the
# temperature jumps, the temperature increases by 6.25C each timestep.
# The thermal strain increment should therefore be
# 6.25 C * 1.3e-5 1/C = 8.125e-5 m/m.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
ny = 2
nz = 2
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./temp]
[../]
[./c]
[../]
[]
[Problem]
solve = false
[]
[ICs]
[./InitialCondition]
type = ConstantIC
value = 1
variable = c
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t*(500.0)+300.0
[../]
[]
[Modules/TensorMechanics/Master]
[./solid]
strain = SMALL
incremental = true
add_variables = true
automatic_eigenstrain_names = true
generate_output = 'strain_xx strain_yy strain_zz'
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain1]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 1.0e-5
temperature = temp
eigenstrain_name = eigenstrain1
[../]
[./thermal_expansion_strain2]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 0.3e-5
temperature = temp
eigenstrain_name = eigenstrain2
[../]
[./composite]
type = CompositeEigenstrain
tensors = ' eigenstrain1 eigenstrain2'
weights = 'weight1 weight2'
eigenstrain_name = 'eigenstrain'
args = c
[../]
[./weights]
type = GenericConstantMaterial
prop_names = 'weight1 weight2'
prop_values = '1.0 1.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
csv = true
exodus = true
checkpoint = true
[]
[Postprocessors]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
block = 0
[../]
[./strain_yy]
type = ElementAverageValue
variable = strain_yy
block = 0
[../]
[./strain_zz]
type = ElementAverageValue
variable = strain_zz
block = 0
[../]
[./temperature]
type = AverageNodalVariableValue
variable = temp
block = 0
[../]
[]
(modules/stochastic_tools/test/tests/multiapps/batch_full_solve_multiapp/sub.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = ADDiffusion
variable = u
[]
[time]
type = ADTimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Postprocessors]
[average]
type = AverageNodalVariableValue
variable = u
[]
[]
[Executioner]
type = Transient
num_steps = 1
dt = 0.25
solve_type = NEWTON
[]
[Outputs]
exodus = true
[]
(modules/tensor_mechanics/test/tests/thermal_expansion/ad_constant_expansion_stress_free_temp.i)
# This test involves only thermal expansion strains on a 2x2x2 cube of approximate
# steel material; however, in this case the stress free temperature of the material
# has been set to 200K so that there is an initial delta temperature of 100K.
# An initial temperature of 300K is given for the material,
# and an auxkernel is used to calculate the temperature in the entire cube to
# raise the temperature each time step. The final temperature is 675K
# The thermal strain increment should therefore be
# (675K - 300K) * 1.3e-5 1/K + 100K * 1.3e-5 1/K = 6.175e-3 m/m.
# This test uses a start up step to identify problems in the calculation of
# eigenstrains with a stress free temperature that is different from the initial
# value of the temperature in the problem
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
ny = 2
nz = 2
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./temp]
initial_condition = 300.0
[../]
[]
[AuxVariables]
[./eigenstrain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./eigenstrain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./eigenstrain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t*(5000.0)+300.0
[../]
[]
[Modules]
[./TensorMechanics]
[./Master]
[./all]
strain = SMALL
incremental = true
add_variables = true
eigenstrain_names = eigenstrain
use_automatic_differentiation = true
[../]
[../]
[../]
[]
[Kernels]
[./temp]
type = Diffusion
variable = temp
[../]
[]
[AuxKernels]
[./eigenstrain_yy]
type = ADRankTwoAux
rank_two_tensor = eigenstrain
variable = eigenstrain_yy
index_i = 1
index_j = 1
execute_on = 'initial timestep_end'
[../]
[./eigenstrain_xx]
type = ADRankTwoAux
rank_two_tensor = eigenstrain
variable = eigenstrain_xx
index_i = 0
index_j = 0
execute_on = 'initial timestep_end'
[../]
[./eigenstrain_zz]
type = ADRankTwoAux
rank_two_tensor = eigenstrain
variable = eigenstrain_zz
index_i = 2
index_j = 2
execute_on = 'initial timestep_end'
[../]
[./total_strain_yy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yy
index_i = 1
index_j = 1
execute_on = 'initial timestep_end'
[../]
[./total_strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xx
index_i = 0
index_j = 0
execute_on = 'initial timestep_end'
[../]
[./total_strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = total_strain_zz
index_i = 2
index_j = 2
execute_on = 'initial timestep_end'
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
function = temperature_load
boundary = 'left right'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ADComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain]
type = ADComputeThermalExpansionEigenstrain
stress_free_temperature = 200
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = -0.0125
n_startup_steps = 1
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[./eigenstrain_xx]
type = ElementAverageValue
variable = eigenstrain_xx
execute_on = 'initial timestep_end'
[../]
[./eigenstrain_yy]
type = ElementAverageValue
variable = eigenstrain_yy
execute_on = 'initial timestep_end'
[../]
[./eigenstrain_zz]
type = ElementAverageValue
variable = eigenstrain_zz
execute_on = 'initial timestep_end'
[../]
[./total_strain_xx]
type = ElementAverageValue
variable = total_strain_xx
execute_on = 'initial timestep_end'
[../]
[./total_strain_yy]
type = ElementAverageValue
variable = total_strain_yy
execute_on = 'initial timestep_end'
[../]
[./total_strain_zz]
type = ElementAverageValue
variable = total_strain_zz
execute_on = 'initial timestep_end'
[../]
[./temperature]
type = AverageNodalVariableValue
variable = temp
execute_on = 'initial timestep_end'
[../]
[]
(modules/tensor_mechanics/test/tests/thermal_expansion/multiple_thermal_eigenstrains.i)
# The primary purpose of this test is to verify that the ability to combine
# multiple eigenstrains works correctly. It should behave identically to the
# constant_expansion_coeff.i model in this directory. Instead of applying the
# thermal expansion in one eigenstrain, it splits that into two eigenstrains
# that get added together.
# This test involves only thermal expansion strains on a 2x2x2 cube of approximate
# steel material. An initial temperature of 25 degrees C is given for the material,
# and an auxkernel is used to calculate the temperature in the entire cube to
# raise the temperature each time step. After the first timestep,in which the
# temperature jumps, the temperature increases by 6.25C each timestep.
# The thermal strain increment should therefore be
# 6.25 C * 1.3e-5 1/C = 8.125e-5 m/m.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
ny = 2
nz = 2
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./temp]
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t*(500.0)+300.0
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
use_displaced_mesh = false
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_strain]
type = ComputeIncrementalSmallStrain
eigenstrain_names = 'eigenstrain1 eigenstrain2'
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain1]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 1.0e-5
temperature = temp
eigenstrain_name = eigenstrain1
[../]
[./thermal_expansion_strain2]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 0.3e-5
temperature = temp
eigenstrain_name = eigenstrain2
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
csv = true
exodus = true
checkpoint = true
[]
[Postprocessors]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
block = 0
[../]
[./strain_yy]
type = ElementAverageValue
variable = strain_yy
block = 0
[../]
[./strain_zz]
type = ElementAverageValue
variable = strain_zz
block = 0
[../]
[./temperature]
type = AverageNodalVariableValue
variable = temp
block = 0
[../]
[]
(modules/tensor_mechanics/test/tests/thermal_expansion/constant_expansion_stress_free_temp.i)
# This test involves only thermal expansion strains on a 2x2x2 cube of approximate
# steel material; however, in this case the stress free temperature of the material
# has been set to 200K so that there is an initial delta temperature of 100K.
# An initial temperature of 300K is given for the material,
# and an auxkernel is used to calculate the temperature in the entire cube to
# raise the temperature each time step. The final temperature is 675K
# The thermal strain increment should therefore be
# (675K - 300K) * 1.3e-5 1/K + 100K * 1.3e-5 1/K = 6.175e-3 m/m.
# This test uses a start up step to identify problems in the calculation of
# eigenstrains with a stress free temperature that is different from the initial
# value of the temperature in the problem
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
ny = 2
nz = 2
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./temp]
initial_condition = 300.0
[../]
[./eigenstrain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./eigenstrain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./eigenstrain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t*(5000.0)+300.0
[../]
[]
[Modules]
[./TensorMechanics]
[./Master]
[./all]
strain = SMALL
incremental = true
add_variables = true
eigenstrain_names = eigenstrain
[../]
[../]
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
[../]
[./eigenstrain_yy]
type = RankTwoAux
rank_two_tensor = eigenstrain
variable = eigenstrain_yy
index_i = 1
index_j = 1
execute_on = 'initial timestep_end'
[../]
[./eigenstrain_xx]
type = RankTwoAux
rank_two_tensor = eigenstrain
variable = eigenstrain_xx
index_i = 0
index_j = 0
execute_on = 'initial timestep_end'
[../]
[./eigenstrain_zz]
type = RankTwoAux
rank_two_tensor = eigenstrain
variable = eigenstrain_zz
index_i = 2
index_j = 2
execute_on = 'initial timestep_end'
[../]
[./total_strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yy
index_i = 1
index_j = 1
execute_on = 'initial timestep_end'
[../]
[./total_strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xx
index_i = 0
index_j = 0
execute_on = 'initial timestep_end'
[../]
[./total_strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_zz
index_i = 2
index_j = 2
execute_on = 'initial timestep_end'
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 200
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = -0.0125
n_startup_steps = 1
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[./eigenstrain_xx]
type = ElementAverageValue
variable = eigenstrain_xx
execute_on = 'initial timestep_end'
[../]
[./eigenstrain_yy]
type = ElementAverageValue
variable = eigenstrain_yy
execute_on = 'initial timestep_end'
[../]
[./eigenstrain_zz]
type = ElementAverageValue
variable = eigenstrain_zz
execute_on = 'initial timestep_end'
[../]
[./total_strain_xx]
type = ElementAverageValue
variable = total_strain_xx
execute_on = 'initial timestep_end'
[../]
[./total_strain_yy]
type = ElementAverageValue
variable = total_strain_yy
execute_on = 'initial timestep_end'
[../]
[./total_strain_zz]
type = ElementAverageValue
variable = total_strain_zz
execute_on = 'initial timestep_end'
[../]
[./temperature]
type = AverageNodalVariableValue
variable = temp
execute_on = 'initial timestep_end'
[../]
[]
(modules/tensor_mechanics/test/tests/thermal_expansion/constant_expansion_coeff.i)
# This test involves only thermal expansion strains on a 2x2x2 cube of approximate
# steel material. An initial temperature of 25 degrees C is given for the material,
# and an auxkernel is used to calculate the temperature in the entire cube to
# raise the temperature each time step. After the first timestep,in which the
# temperature jumps, the temperature increases by 6.25C each timestep.
# The thermal strain increment should therefore be
# 6.25 C * 1.3e-5 1/C = 8.125e-5 m/m.
# This test is also designed to be used to identify problems with restart files
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
ny = 2
nz = 2
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./temp]
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t*(500.0)+300.0
[../]
[]
[Modules]
[./TensorMechanics]
[./Master]
[./all]
strain = SMALL
incremental = true
add_variables = true
eigenstrain_names = eigenstrain
generate_output = 'strain_xx strain_yy strain_zz'
[../]
[../]
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
csv = true
exodus = true
checkpoint = true
[]
[Postprocessors]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
[../]
[./strain_yy]
type = ElementAverageValue
variable = strain_yy
[../]
[./strain_zz]
type = ElementAverageValue
variable = strain_zz
[../]
[./temperature]
type = AverageNodalVariableValue
variable = temp
[../]
[]
(test/tests/postprocessors/avg_nodal_var_value/avg_nodal_var_value_ts_begin.i)
[Mesh]
file = square-2x2-nodeids.e
[]
[Variables]
active = 'u v'
[./u]
order = SECOND
family = LAGRANGE
[../]
[./v]
order = SECOND
family = LAGRANGE
[../]
[]
[Functions]
active = 'force_fn exact_fn left_bc'
[./force_fn]
type = ParsedFunction
value = '1-x*x+2*t'
[../]
[./exact_fn]
type = ParsedFunction
value = '(1-x*x)*t'
[../]
[./left_bc]
type = ParsedFunction
value = t
[../]
[]
[Kernels]
active = '
time_u diff_u ffn_u
time_v diff_v'
[./time_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn_u]
type = BodyForce
variable = u
function = force_fn
[../]
[./time_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
active = 'all_u left_v right_v'
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = exact_fn
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '3'
function = left_bc
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = '2'
value = 0
[../]
[]
[Postprocessors]
[./l2]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./node1]
type = AverageNodalVariableValue
variable = u
boundary = 10
execute_on = TIMESTEP_BEGIN
[../]
[./node4]
type = AverageNodalVariableValue
variable = v
boundary = 13
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
start_time = 0
end_time = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_avg_nodal_var_value_ts_begin
exodus = true
[]
(modules/stochastic_tools/test/tests/vectorpostprocessors/multiple_stochastic_results/sub.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.01
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Controls]
[stochastic]
type = SamplerReceiver
[]
[]
[Postprocessors]
[avg]
type = AverageNodalVariableValue
variable = u
[]
[max]
type = NodalExtremeValue
value_type = MAX
variable = u
[]
[]
[Outputs]
[]
(modules/stochastic_tools/test/tests/surrogates/poly_chaos/sub.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmax = 10
[]
[Variables]
[u]
[]
[]
[Kernels]
[diffusion]
type = MatDiffusion
variable = u
diffusivity = D
[]
[absorption]
type = MaterialReaction
variable = u
coefficient = sig
[]
[source]
type = BodyForce
variable = u
value = 1.0
[]
[]
[Materials]
[diffusivity]
type = GenericConstantMaterial
prop_names = D
prop_values = 2.0
[]
[xs]
type = GenericConstantMaterial
prop_names = sig
prop_values = 2.0
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 0
[]
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Controls]
[stochastic]
type = SamplerReceiver
[]
[]
[Postprocessors]
[avg]
type = AverageNodalVariableValue
variable = u
[]
[max]
type = NodalExtremeValue
variable = u
value_type = max
[]
[]
[Outputs]
[]
(modules/stochastic_tools/examples/surrogates/gaussian_process/sub.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmax = 0.03
elem_type = EDGE3
[]
[Variables]
[T]
order = SECOND
family = LAGRANGE
[]
[]
[Kernels]
[diffusion]
type = MatDiffusion
variable = T
diffusivity = k
[]
[source]
type = BodyForce
variable = T
value = 10000
[]
[]
[Materials]
[conductivity]
type = GenericConstantMaterial
prop_names = k
prop_values = 5.0
[]
[]
[BCs]
[right]
type = DirichletBC
variable = T
boundary = right
value = 300
[]
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Postprocessors]
[avg]
type = AverageNodalVariableValue
variable = T
[]
[max]
type = NodalExtremeValue
variable = T
value_type = max
[]
[]
[Outputs]
[]
(test/tests/postprocessors/avg_nodal_var_value/avg_nodal_var_value.i)
[Mesh]
file = square-2x2-nodeids.e
[]
[Variables]
active = 'u v'
[./u]
order = SECOND
family = LAGRANGE
[../]
[./v]
order = SECOND
family = LAGRANGE
[../]
[]
[Functions]
active = 'force_fn exact_fn left_bc'
[./force_fn]
type = ParsedFunction
value = '1-x*x+2*t'
[../]
[./exact_fn]
type = ParsedFunction
value = '(1-x*x)*t'
[../]
[./left_bc]
type = ParsedFunction
value = t
[../]
[]
[Kernels]
active = '
time_u diff_u ffn_u
time_v diff_v'
[./time_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn_u]
type = BodyForce
variable = u
function = force_fn
[../]
[./time_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
active = 'all_u left_v right_v'
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = exact_fn
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '3'
function = left_bc
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = '2'
value = 0
[../]
[]
[Postprocessors]
[./l2]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./node1]
type = AverageNodalVariableValue
variable = u
boundary = 10
[../]
[./node4]
type = AverageNodalVariableValue
variable = v
boundary = 13
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
start_time = 0
end_time = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_avg_nodal_var_value
exodus = true
[]
(modules/stochastic_tools/test/tests/vectorpostprocessors/stochastic_results_complete_history/sub.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Executioner]
type = Transient
num_steps = 2
dt = 0.01
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Controls]
[stochastic]
type = SamplerReceiver
[]
[]
[Postprocessors]
[avg]
type = AverageNodalVariableValue
variable = u
[]
[]
[Outputs]
[]
(modules/stochastic_tools/test/tests/transfers/batch_sampler_transfer/sub.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = ADDiffusion
variable = u
[]
[time]
type = ADTimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Postprocessors]
[average]
type = AverageNodalVariableValue
variable = u
[]
[]
[Executioner]
type = Transient
num_steps = 1
dt = 0.25
solve_type = NEWTON
[]
[Controls]
[stochastic]
type = SamplerReceiver
[]
[]
[Outputs]
[]
(test/tests/controls/time_periods/user_objects/user_object.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
initial_condition = 0.01
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[]
[Postprocessors]
[./nodal]
type = AverageNodalVariableValue
variable = u
execute_on = 'TIMESTEP_END'
[../]
[./elemental]
type = ElementAverageValue
variable = u
execute_on = 'TIMESTEP_END'
[../]
[./general]
type = PointValue
point = '0.5 0.5 0'
variable = u
execute_on = 'TIMESTEP_END'
[../]
[./internal_side]
type = NumInternalSides
[../]
[./side]
type = SideAverageValue
boundary = right
variable = u
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
csv = true
[]
[Controls]
[./pp_control]
type = TimePeriod
enable_objects = '*/nodal */elemental */general */internal_side */side'
start_time = 0.5
end_time = 1
execute_on = 'INITIAL TIMESTEP_END'
[../]
[]
(modules/stochastic_tools/examples/parameter_study/diffusion.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables/T]
[]
[Kernels]
[time]
type = ADTimeDerivative
variable = T
[]
[diff]
type = ADMatDiffusion
variable = T
diffusivity = diffusivity
[]
[source]
type = ADBodyForce
variable = T
value = 1
function = 1
[]
[]
[BCs]
[left]
type = ADDirichletBC
variable = T
boundary = left
value = -10
[]
[right]
type = ADNeumannBC
variable = T
boundary = right
value = -100
[]
[]
[Materials/constant]
type = ADGenericConstantMaterial
prop_names = 'diffusivity'
prop_values = 1
[]
[Executioner]
type = Transient
solve_type = NEWTON
num_steps = 4
dt = 0.25
[]
[Postprocessors]
[T_avg]
type = AverageNodalVariableValue
variable = T
[]
[q_left]
type = ADSideDiffusiveFluxAverage
variable = T
boundary = left
diffusivity = diffusivity
[]
[]
[Controls/stochastic]
type = SamplerReceiver
[]
[Outputs]
[]
(modules/stochastic_tools/examples/surrogates/sub.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmax = 1
elem_type = EDGE3
[]
[Variables]
[T]
order = SECOND
family = LAGRANGE
[]
[]
[Kernels]
[diffusion]
type = MatDiffusion
variable = T
diffusivity = k
[]
[source]
type = BodyForce
variable = T
value = 1.0
[]
[]
[Materials]
[conductivity]
type = GenericConstantMaterial
prop_names = k
prop_values = 2.0
[]
[]
[BCs]
[right]
type = DirichletBC
variable = T
boundary = right
value = 300
[]
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Postprocessors]
[avg]
type = AverageNodalVariableValue
variable = T
[]
[max]
type = NodalExtremeValue
variable = T
value_type = max
[]
[]
[Outputs]
[]
(modules/combined/test/tests/thermo_mech/youngs_modulus_function_temp.i)
# ---------------------------------------------------------------------------
# This test is designed to verify the variable elasticity tensor functionality in the
# ComputeFiniteStrainElasticStress class with the elasticity_tensor_has_changed flag
# by varying the young's modulus with temperature. A constant strain is applied
# to the mesh in this case, and the stress varies with the changing elastic constants.
#
# Geometry: A single element cube in symmetry boundary conditions and pulled
# at a constant displacement to create a constant strain in the x-direction.
#
# Temperature: The temperature varies from 400K to 700K in this simulation by
# 100K each time step. The temperature is held constant in the last
# timestep to ensure that the elasticity tensor components are constant
# under constant temperature.
#
# Results: Because Poisson's ratio is set to zero, only the stress along the x
# axis is non-zero. The stress changes with temperature.
#
# Temperature(K) strain_{xx}(m/m) Young's Modulus(Pa) stress_{xx}(Pa)
# 400 0.001 10.0e6 1.0e4
# 500 0.001 10.0e6 1.0e4
# 600 0.001 9.94e6 9.94e3
# 700 0.001 9.93e6 9.93e3
#
# The tensor mechanics results align exactly with the analytical results above
# when this test is run with ComputeIncrementalSmallStrain. When the test is
# run with ComputeFiniteStrain, a 0.05% discrepancy between the analytical
# strains and the simulation strain results is observed, and this discrepancy
# is carried over into the calculation of the elastic stress.
#-------------------------------------------------------------------------
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 400
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./temperature_function]
type = PiecewiseLinear
x = '1 4'
y = '400 700'
[../]
[]
[Kernels]
[./heat]
type = Diffusion
variable = temp
[../]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./elastic_strain_xx]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./u_left_fix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./u_bottom_fix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./u_back_fix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./u_pull_right]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.001
[../]
[./temp_bc_1]
type = FunctionDirichletBC
variable = temp
preset = false
boundary = '1 2 3 4'
function = temperature_function
[../]
[]
[Materials]
[./youngs_modulus]
type = PiecewiseLinearInterpolationMaterial
xy_data = '0 10e+6
599.9999 10e+6
600 9.94e+6
99900 10e3'
property = youngs_modulus
variable = temp
[../]
[./elasticity_tensor]
type = ComputeVariableIsotropicElasticityTensor
args = temp
youngs_modulus = youngs_modulus
poissons_ratio = 0.0
[../]
[./strain]
type = ComputeIncrementalSmallStrain
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Executioner]
type = Transient
end_time = 5
[]
[Postprocessors]
[./elastic_strain_xx]
type = ElementAverageValue
variable = elastic_strain_xx
[../]
[./elastic_stress_xx]
type = ElementAverageValue
variable = stress_xx
[../]
[./temp]
type = AverageNodalVariableValue
variable = temp
[../]
[]
[Outputs]
exodus = true
[]
(modules/stochastic_tools/test/tests/surrogates/load_store/sub.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmax = 10
[]
[Variables]
[u]
[]
[]
[Kernels]
[diffusion]
type = MatDiffusion
variable = u
diffusivity = D
[]
[absorption]
type = MaterialReaction
variable = u
coefficient = sig
[]
[source]
type = BodyForce
variable = u
value = 1.0
[]
[]
[Materials]
[diffusivity]
type = GenericConstantMaterial
prop_names = D
prop_values = 2.0
[]
[xs]
type = GenericConstantMaterial
prop_names = sig
prop_values = 2.0
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 0
[]
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Controls]
[stochastic]
type = SamplerReceiver
[]
[]
[Postprocessors]
[avg]
type = AverageNodalVariableValue
variable = u
[]
[max]
type = NodalExtremeValue
variable = u
value_type = max
[]
[]
[Outputs]
[]
(modules/combined/test/tests/thermo_mech/ad-youngs_modulus_function_temp.i)
# ---------------------------------------------------------------------------
# This test is designed to verify the variable elasticity tensor functionality in the
# ADComputeFiniteStrainElasticStress class with the elasticity_tensor_has_changed flag
# by varying the young's modulus with temperature. A constant strain is applied
# to the mesh in this case, and the stress varies with the changing elastic constants.
#
# Geometry: A single element cube in symmetry boundary conditions and pulled
# at a constant displacement to create a constant strain in the x-direction.
#
# Temperature: The temperature varies from 400K to 700K in this simulation by
# 100K each time step. The temperature is held constant in the last
# timestep to ensure that the elasticity tensor components are constant
# under constant temperature.
#
# Results: Because Poisson's ratio is set to zero, only the stress along the x
# axis is non-zero. The stress changes with temperature.
#
# Temperature(K) strain_{xx}(m/m) Young's Modulus(Pa) stress_{xx}(Pa)
# 400 0.001 10.0e6 1.0e4
# 500 0.001 10.0e6 1.0e4
# 600 0.001 9.94e6 9.94e3
# 700 0.001 9.93e6 9.93e3
#
# The tensor mechanics results align exactly with the analytical results above
# when this test is run with ComputeIncrementalSmallStrain. When the test is
# run with ComputeFiniteStrain, a 0.05% discrepancy between the analytical
# strains and the simulation strain results is observed, and this discrepancy
# is carried over into the calculation of the elastic stress.
#-------------------------------------------------------------------------
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 400
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./temperature_function]
type = PiecewiseLinear
x = '1 4'
y = '400 700'
[../]
[]
[Kernels]
[./heat]
type = ADDiffusion
variable = temp
[../]
[./TensorMechanics]
use_displaced_mesh = true
use_automatic_differentiation = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./elastic_strain_xx]
type = ADRankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./u_left_fix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./u_bottom_fix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./u_back_fix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./u_pull_right]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.001
[../]
[./temp_bc_1]
type = ADFunctionDirichletBC
variable = temp
preset = false
boundary = '1 2 3 4'
function = temperature_function
[../]
[]
[Materials]
[./youngs_modulus]
type = ADPiecewiseLinearInterpolationMaterial
xy_data = '0 10e+6
599.9999 10e+6
600 9.94e+6
99900 10e3'
property = youngs_modulus
variable = temp
[../]
[./elasticity_tensor]
type = ADComputeVariableIsotropicElasticityTensor
youngs_modulus = youngs_modulus
poissons_ratio = 0.0
[../]
[./strain]
type = ADComputeIncrementalSmallStrain
[../]
[./stress]
type = ADComputeFiniteStrainElasticStress
[../]
[]
[Preconditioning]
[./full]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
end_time = 5
[]
[Postprocessors]
[./elastic_strain_xx]
type = ElementAverageValue
variable = elastic_strain_xx
[../]
[./elastic_stress_xx]
type = ElementAverageValue
variable = stress_xx
[../]
[./temp]
type = AverageNodalVariableValue
variable = temp
[../]
[]
[Outputs]
exodus = true
[]
(modules/tensor_mechanics/test/tests/thermal_expansion/ad_constant_expansion_coeff_old.i)
# This test involves only thermal expansion strains on a 2x2x2 cube of approximate
# steel material. An initial temperature of 25 degrees C is given for the material,
# and an auxkernel is used to calculate the temperature in the entire cube to
# raise the temperature each time step. After the first timestep,in which the
# temperature jumps, the temperature increases by 6.25C each timestep.
# The thermal strain increment should therefore be
# 6.25 C * 1.3e-5 1/C = 8.125e-5 m/m.
# This test is also designed to be used to identify problems with restart files
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
ny = 2
nz = 2
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./temp]
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t*(500.0)+300.0
[../]
[]
[Modules]
[./TensorMechanics]
[./Master]
[./all]
strain = SMALL
incremental = true
add_variables = true
eigenstrain_names = eigenstrain
generate_output = 'strain_xx strain_yy strain_zz'
use_automatic_differentiation = true
[../]
[../]
[../]
[]
[Kernels]
[./tempfuncaux]
type = Diffusion
variable = temp
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
function = temperature_load
boundary = 'left right'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ADComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain]
type = ADComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
use_old_temperature = true
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
csv = true
exodus = true
[]
[Postprocessors]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
[../]
[./strain_yy]
type = ElementAverageValue
variable = strain_yy
[../]
[./strain_zz]
type = ElementAverageValue
variable = strain_zz
[../]
[./temperature]
type = AverageNodalVariableValue
variable = temp
[../]
[]
(modules/tensor_mechanics/test/tests/action/action_eigenstrain.i)
# The primary purpose of this test is to verify that the ability to combine
# multiple eigenstrains works correctly. It should behave identically to the
# constant_expansion_coeff.i model in the thermal_expansion directory. Instead
# of having the eigenstrain names passed directly to the TensorMechanics MasterAction,
# the MasterAction should be able to extract the necessary eigenstrains and apply
# to their respective blocks without reduncacy.
# This test involves only thermal expansion strains on a 2x2x2 cube of approximate
# steel material. An initial temperature of 25 degrees C is given for the material,
# and an auxkernel is used to calculate the temperature in the entire cube to
# raise the temperature each time step. After the first timestep,in which the
# temperature jumps, the temperature increases by 6.25C each timestep.
# The thermal strain increment should therefore be
# 6.25 C * 1.3e-5 1/C = 8.125e-5 m/m.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
ny = 2
nz = 2
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Problem]
solve = false
[]
[AuxVariables]
[./temp]
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t*(500.0)+300.0
[../]
[]
[Modules/TensorMechanics/Master]
[./solid]
strain = SMALL
incremental = true
add_variables = true
automatic_eigenstrain_names = true
generate_output = 'strain_xx strain_yy strain_zz'
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain1]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 1.0e-5
temperature = temp
eigenstrain_name = eigenstrain1
[../]
[./thermal_expansion_strain2]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 0.3e-5
temperature = temp
eigenstrain_name = eigenstrain2
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
csv = true
exodus = true
checkpoint = true
[]
[Postprocessors]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
block = 0
[../]
[./strain_yy]
type = ElementAverageValue
variable = strain_yy
block = 0
[../]
[./strain_zz]
type = ElementAverageValue
variable = strain_zz
block = 0
[../]
[./temperature]
type = AverageNodalVariableValue
variable = temp
block = 0
[../]
[]
(modules/stochastic_tools/examples/batch/sub.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 10
ny = 10
nz = 10
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = ADDiffusion
variable = u
[]
[time]
type = ADTimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Postprocessors]
[average]
type = AverageNodalVariableValue
variable = u
[]
[]
[Executioner]
type = Transient
num_steps = 1
dt = 0.25
solve_type = NEWTON
[]
[Controls]
[receiver]
type = SamplerReceiver
[]
[]
[Outputs]
[]
(modules/stochastic_tools/test/tests/transfers/sampler_postprocessor/sub.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.01
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
error_on_dtmin = false
[]
[Controls]
[stochastic]
type = SamplerReceiver
[]
[]
[Postprocessors]
[avg]
type = AverageNodalVariableValue
variable = u
[]
[]
[Outputs]
[]
(modules/stochastic_tools/test/tests/transfers/sampler_postprocessor/errors/sub.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.01
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Controls]
[stochastic]
type = SamplerReceiver
[]
[]
[Postprocessors]
[avg]
type = AverageNodalVariableValue
variable = u
[]
[]
[Outputs]
[]
(modules/tensor_mechanics/test/tests/thermal_expansion/constant_expansion_coeff_restart.i)
# This test involves only thermal expansion strains on a 2x2x2 cube of approximate
# steel material. An initial temperature of 25 degrees C is given for the material,
# and an auxkernel is used to calculate the temperature in the entire cube to
# raise the temperature each time step. After the first timestep,in which the
# temperature jumps, the temperature increases by 6.25C each timestep.
# The thermal strain increment should therefore be
# 6.25 C * 1.3e-5 1/C = 8.125e-5 m/m.
# This test is also designed to be used to identify problems with restart files
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
ny = 2
nz = 2
[]
[Problem]
restart_file_base = constant_expansion_coeff_out_cp/LATEST
force_restart = true
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./temp]
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t*(500.0)+300.0
[../]
[]
[Modules]
[TensorMechanics]
[Master]
[./all]
strain = SMALL
incremental = true
add_variables = true
eigenstrain_names = eigenstrain
generate_output = 'strain_xx strain_yy strain_zz'
[../]
[../]
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
use_displaced_mesh = false
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
end_time = 0.1
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
csv = true
exodus = true
checkpoint = true
[]
[Postprocessors]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
[../]
[./strain_yy]
type = ElementAverageValue
variable = strain_yy
[../]
[./strain_zz]
type = ElementAverageValue
variable = strain_zz
[../]
[./temperature]
type = AverageNodalVariableValue
variable = temp
[../]
[]
(modules/stochastic_tools/test/tests/surrogates/gaussian_process/sub.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmax = 1
elem_type = EDGE3
[]
[Variables]
[T]
order = SECOND
family = LAGRANGE
[]
[]
[Kernels]
[diffusion]
type = MatDiffusion
variable = T
diffusivity = k
[]
[source]
type = BodyForce
variable = T
value = 1.0
[]
[]
[Materials]
[conductivity]
type = GenericConstantMaterial
prop_names = k
prop_values = 2.0
[]
[]
[BCs]
[right]
type = DirichletBC
variable = T
boundary = right
value = 300
[]
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Postprocessors]
[avg]
type = AverageNodalVariableValue
variable = T
[]
[]
[Outputs]
[]
(modules/tensor_mechanics/test/tests/thermal_expansion/ad_constant_expansion_coeff.i)
# This test involves only thermal expansion strains on a 2x2x2 cube of approximate
# steel material. An initial temperature of 25 degrees C is given for the material,
# and an auxkernel is used to calculate the temperature in the entire cube to
# raise the temperature each time step. After the first timestep,in which the
# temperature jumps, the temperature increases by 6.25C each timestep.
# The thermal strain increment should therefore be
# 6.25 C * 1.3e-5 1/C = 8.125e-5 m/m.
# This test is also designed to be used to identify problems with restart files
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
ny = 2
nz = 2
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./temp]
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t*(500.0)+300.0
[../]
[]
[Modules]
[./TensorMechanics]
[./Master]
[./all]
strain = SMALL
incremental = true
add_variables = true
eigenstrain_names = eigenstrain
generate_output = 'strain_xx strain_yy strain_zz'
use_automatic_differentiation = true
[../]
[../]
[../]
[]
[Kernels]
[./tempfuncaux]
type = Diffusion
variable = temp
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
function = temperature_load
boundary = 'left right'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ADComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain]
type = ADComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
csv = true
exodus = true
[]
[Postprocessors]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
[../]
[./strain_yy]
type = ElementAverageValue
variable = strain_yy
[../]
[./strain_zz]
type = ElementAverageValue
variable = strain_zz
[../]
[./temperature]
type = AverageNodalVariableValue
variable = temp
[../]
[]
(modules/stochastic_tools/examples/sobol/diffusion.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables/T]
[]
[Kernels]
[time]
type = ADTimeDerivative
variable = T
[]
[diff]
type = ADMatDiffusion
variable = T
diffusivity = diffusivity
[]
[source]
type = ADBodyForce
variable = T
value = 1
function = 1
[]
[]
[BCs]
[left]
type = ADDirichletBC
variable = T
boundary = left
value = -10
[]
[right]
type = ADNeumannBC
variable = T
boundary = right
value = -100
[]
[]
[Materials/constant]
type = ADGenericConstantMaterial
prop_names = 'diffusivity'
prop_values = 1
[]
[Executioner]
type = Transient
solve_type = NEWTON
num_steps = 4
dt = 0.25
[]
[Postprocessors]
[T_avg]
type = AverageNodalVariableValue
variable = T
[]
[q_left]
type = ADSideDiffusiveFluxAverage
variable = T
boundary = left
diffusivity = diffusivity
[]
[]
[Controls/stochastic]
type = SamplerReceiver
[]
[Outputs]
[]
(modules/combined/examples/geochem-porous_flow/geotes_weber_tensleep/porous_flow.i)
#########################################
# #
# File written by create_input_files.py #
# #
#########################################
# PorousFlow simulation of injection and production in a simplified GeoTES aquifer
# Much of this file is standard porous-flow stuff. The unusual aspects are:
# - transfer of the rates of changes of each species (kg.s) to the aquifer_geochemistry.i simulation. This is achieved by saving these changes from the PorousFlowMassTimeDerivative residuals
# - transfer of the temperature field to the aquifer_geochemistry.i simulation
# Interesting behaviour can be simulated by this file without its 'parent' simulation, exchanger.i. exchanger.i provides mass-fractions injected via the injection_rate_massfrac_* variables, but since these are more-or-less constant throughout the duration of the exchanger.i simulation, the initial_conditions specified below may be used. Similar, exchanger.i provides injection_temperature, but that is also constant.
injection_rate = -0.02 # kg/s/m, negative because injection as a source
production_rate = 0.02 # kg/s/m, this is about the maximum that can be sustained by the aquifer, with its fairly low permeability, without porepressure becoming negative
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = -75
xmax = 75
ymin = 0
ymax = 40
zmin = -25
zmax = 25
nx = 15
ny = 4
nz = 5
[]
[aquifer]
type = ParsedSubdomainMeshGenerator
input = gen
block_id = 1
block_name = aquifer
combinatorial_geometry = 'z >= -5 & z <= 5'
[]
[injection_nodes]
input = aquifer
type = ExtraNodesetGenerator
new_boundary = injection_nodes
coord = '-25 0 -5; -25 0 5'
[]
[production_nodes]
input = injection_nodes
type = ExtraNodesetGenerator
new_boundary = production_nodes
coord = '25 0 -5; 25 0 5'
[]
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 -10'
[]
[BCs]
[injection_temperature]
type = MatchedValueBC
variable = temperature
v = injection_temperature
boundary = injection_nodes
[]
[]
[Modules]
[FluidProperties]
[the_simple_fluid]
type = SimpleFluidProperties
thermal_expansion = 0
bulk_modulus = 2E9
viscosity = 1E-3
density0 = 1000
cv = 4000.0
cp = 4000.0
[]
[]
[]
[PorousFlowFullySaturated]
coupling_type = ThermoHydro
porepressure = porepressure
temperature = temperature
mass_fraction_vars = 'f_H f_Cl f_SO4 f_HCO3 f_SiO2aq f_Al f_Ca f_Mg f_Fe f_K f_Na f_Sr f_F f_BOH f_Br f_Ba f_Li f_NO3 f_O2aq '
save_component_rate_in = 'rate_H rate_Cl rate_SO4 rate_HCO3 rate_SiO2aq rate_Al rate_Ca rate_Mg rate_Fe rate_K rate_Na rate_Sr rate_F rate_BOH rate_Br rate_Ba rate_Li rate_NO3 rate_O2aq rate_H2O' # change in kg at every node / dt
fp = the_simple_fluid
temperature_unit = Celsius
[]
[Materials]
[porosity_caps]
type = PorousFlowPorosityConst # this simulation has no porosity changes from dissolution
block = 0
porosity = 0.01
[]
[porosity_aquifer]
type = PorousFlowPorosityConst # this simulation has no porosity changes from dissolution
block = aquifer
porosity = 0.063
[]
[permeability_caps]
type = PorousFlowPermeabilityConst
block = 0
permeability = '1E-18 0 0 0 1E-18 0 0 0 1E-18'
[]
[permeability_aquifer]
type = PorousFlowPermeabilityConst
block = aquifer
permeability = '1.7E-15 0 0 0 1.7E-15 0 0 0 4.1E-16'
[]
[thermal_conductivity]
type = PorousFlowThermalConductivityIdeal
dry_thermal_conductivity = '0 0 0 0 0 0 0 0 0'
[]
[rock_heat]
type = PorousFlowMatrixInternalEnergy
density = 2500.0
specific_heat_capacity = 1200.0
[]
[]
[Preconditioning]
active = typically_efficient
[typically_efficient]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = ' hypre boomeramg'
[]
[strong]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm ilu NONZERO 2'
[]
[probably_too_strong]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 7.76E6 # 90 days
[TimeStepper]
type = FunctionDT
function = 'min(3E4, max(1E4, 0.2 * t))'
[]
[]
[Outputs]
exodus = true
[]
[Variables]
[f_H]
initial_condition = -2.952985071156e-06
[]
[f_Cl]
initial_condition = 0.04870664551708
[]
[f_SO4]
initial_condition = 0.0060359986852517
[]
[f_HCO3]
initial_condition = 5.0897287594019e-05
[]
[f_SiO2aq]
initial_condition = 3.0246609868421e-05
[]
[f_Al]
initial_condition = 3.268028901929e-08
[]
[f_Ca]
initial_condition = 0.00082159428184586
[]
[f_Mg]
initial_condition = 1.8546347062146e-05
[]
[f_Fe]
initial_condition = 4.3291908204093e-05
[]
[f_K]
initial_condition = 6.8434768308898e-05
[]
[f_Na]
initial_condition = 0.033298053919671
[]
[f_Sr]
initial_condition = 1.2771866652177e-05
[]
[f_F]
initial_condition = 5.5648860174073e-06
[]
[f_BOH]
initial_condition = 0.0003758574621917
[]
[f_Br]
initial_condition = 9.0315286107068e-05
[]
[f_Ba]
initial_condition = 1.5637460875161e-07
[]
[f_Li]
initial_condition = 8.3017067912701e-05
[]
[f_NO3]
initial_condition = 0.00010958455036169
[]
[f_O2aq]
initial_condition = -7.0806852373351e-05
[]
[porepressure]
initial_condition = 30E6
[]
[temperature]
initial_condition = 92
scaling = 1E-6 # fluid enthalpy is roughly 1E6
[]
[]
[DiracKernels]
[inject_H]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_H
point_file = injection.bh
variable = f_H
[]
[inject_Cl]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_Cl
point_file = injection.bh
variable = f_Cl
[]
[inject_SO4]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_SO4
point_file = injection.bh
variable = f_SO4
[]
[inject_HCO3]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_HCO3
point_file = injection.bh
variable = f_HCO3
[]
[inject_SiO2aq]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_SiO2aq
point_file = injection.bh
variable = f_SiO2aq
[]
[inject_Al]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_Al
point_file = injection.bh
variable = f_Al
[]
[inject_Ca]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_Ca
point_file = injection.bh
variable = f_Ca
[]
[inject_Mg]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_Mg
point_file = injection.bh
variable = f_Mg
[]
[inject_Fe]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_Fe
point_file = injection.bh
variable = f_Fe
[]
[inject_K]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_K
point_file = injection.bh
variable = f_K
[]
[inject_Na]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_Na
point_file = injection.bh
variable = f_Na
[]
[inject_Sr]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_Sr
point_file = injection.bh
variable = f_Sr
[]
[inject_F]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_F
point_file = injection.bh
variable = f_F
[]
[inject_BOH]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_BOH
point_file = injection.bh
variable = f_BOH
[]
[inject_Br]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_Br
point_file = injection.bh
variable = f_Br
[]
[inject_Ba]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_Ba
point_file = injection.bh
variable = f_Ba
[]
[inject_Li]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_Li
point_file = injection.bh
variable = f_Li
[]
[inject_NO3]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_NO3
point_file = injection.bh
variable = f_NO3
[]
[inject_O2aq]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_O2aq
point_file = injection.bh
variable = f_O2aq
[]
[inject_H2O]
type = PorousFlowPolyLineSink
SumQuantityUO = injected_mass
fluxes = ${injection_rate}
p_or_t_vals = 0.0
multiplying_var = injection_rate_massfrac_H2O
point_file = injection.bh
variable = porepressure
[]
[produce_H]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_H
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 0
point_file = production.bh
variable = f_H
[]
[produce_Cl]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_Cl
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 1
point_file = production.bh
variable = f_Cl
[]
[produce_SO4]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_SO4
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 2
point_file = production.bh
variable = f_SO4
[]
[produce_HCO3]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_HCO3
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 3
point_file = production.bh
variable = f_HCO3
[]
[produce_SiO2aq]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_SiO2aq
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 4
point_file = production.bh
variable = f_SiO2aq
[]
[produce_Al]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_Al
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 5
point_file = production.bh
variable = f_Al
[]
[produce_Ca]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_Ca
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 6
point_file = production.bh
variable = f_Ca
[]
[produce_Mg]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_Mg
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 7
point_file = production.bh
variable = f_Mg
[]
[produce_Fe]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_Fe
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 8
point_file = production.bh
variable = f_Fe
[]
[produce_K]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_K
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 9
point_file = production.bh
variable = f_K
[]
[produce_Na]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_Na
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 10
point_file = production.bh
variable = f_Na
[]
[produce_Sr]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_Sr
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 11
point_file = production.bh
variable = f_Sr
[]
[produce_F]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_F
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 12
point_file = production.bh
variable = f_F
[]
[produce_BOH]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_BOH
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 13
point_file = production.bh
variable = f_BOH
[]
[produce_Br]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_Br
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 14
point_file = production.bh
variable = f_Br
[]
[produce_Ba]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_Ba
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 15
point_file = production.bh
variable = f_Ba
[]
[produce_Li]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_Li
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 16
point_file = production.bh
variable = f_Li
[]
[produce_NO3]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_NO3
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 17
point_file = production.bh
variable = f_NO3
[]
[produce_O2aq]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_O2aq
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 18
point_file = production.bh
variable = f_O2aq
[]
[produce_H2O]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_mass_H2O
fluxes = ${production_rate}
p_or_t_vals = 0.0
mass_fraction_component = 19
point_file = production.bh
variable = porepressure
[]
[produce_heat]
type = PorousFlowPolyLineSink
SumQuantityUO = produced_heat
fluxes = ${production_rate}
p_or_t_vals = 0.0
use_enthalpy = true
point_file = production.bh
variable = temperature
[]
[]
[UserObjects]
[injected_mass]
type = PorousFlowSumQuantity
[]
[produced_mass_H]
type = PorousFlowSumQuantity
[]
[produced_mass_Cl]
type = PorousFlowSumQuantity
[]
[produced_mass_SO4]
type = PorousFlowSumQuantity
[]
[produced_mass_HCO3]
type = PorousFlowSumQuantity
[]
[produced_mass_SiO2aq]
type = PorousFlowSumQuantity
[]
[produced_mass_Al]
type = PorousFlowSumQuantity
[]
[produced_mass_Ca]
type = PorousFlowSumQuantity
[]
[produced_mass_Mg]
type = PorousFlowSumQuantity
[]
[produced_mass_Fe]
type = PorousFlowSumQuantity
[]
[produced_mass_K]
type = PorousFlowSumQuantity
[]
[produced_mass_Na]
type = PorousFlowSumQuantity
[]
[produced_mass_Sr]
type = PorousFlowSumQuantity
[]
[produced_mass_F]
type = PorousFlowSumQuantity
[]
[produced_mass_BOH]
type = PorousFlowSumQuantity
[]
[produced_mass_Br]
type = PorousFlowSumQuantity
[]
[produced_mass_Ba]
type = PorousFlowSumQuantity
[]
[produced_mass_Li]
type = PorousFlowSumQuantity
[]
[produced_mass_NO3]
type = PorousFlowSumQuantity
[]
[produced_mass_O2aq]
type = PorousFlowSumQuantity
[]
[produced_mass_H2O]
type = PorousFlowSumQuantity
[]
[produced_heat]
type = PorousFlowSumQuantity
[]
[]
[Postprocessors]
[dt]
type = TimestepSize
execute_on = TIMESTEP_BEGIN
[]
[tot_kg_injected_this_timestep]
type = PorousFlowPlotQuantity
uo = injected_mass
[]
[kg_H_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_H
[]
[kg_Cl_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_Cl
[]
[kg_SO4_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_SO4
[]
[kg_HCO3_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_HCO3
[]
[kg_SiO2aq_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_SiO2aq
[]
[kg_Al_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_Al
[]
[kg_Ca_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_Ca
[]
[kg_Mg_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_Mg
[]
[kg_Fe_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_Fe
[]
[kg_K_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_K
[]
[kg_Na_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_Na
[]
[kg_Sr_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_Sr
[]
[kg_F_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_F
[]
[kg_BOH_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_BOH
[]
[kg_Br_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_Br
[]
[kg_Ba_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_Ba
[]
[kg_Li_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_Li
[]
[kg_NO3_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_NO3
[]
[kg_O2aq_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_O2aq
[]
[kg_H2O_produced_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_mass_H2O
[]
[mole_rate_H_produced]
type = FunctionValuePostprocessor
function = moles_H
[]
[mole_rate_Cl_produced]
type = FunctionValuePostprocessor
function = moles_Cl
[]
[mole_rate_SO4_produced]
type = FunctionValuePostprocessor
function = moles_SO4
[]
[mole_rate_HCO3_produced]
type = FunctionValuePostprocessor
function = moles_HCO3
[]
[mole_rate_SiO2aq_produced]
type = FunctionValuePostprocessor
function = moles_SiO2aq
[]
[mole_rate_Al_produced]
type = FunctionValuePostprocessor
function = moles_Al
[]
[mole_rate_Ca_produced]
type = FunctionValuePostprocessor
function = moles_Ca
[]
[mole_rate_Mg_produced]
type = FunctionValuePostprocessor
function = moles_Mg
[]
[mole_rate_Fe_produced]
type = FunctionValuePostprocessor
function = moles_Fe
[]
[mole_rate_K_produced]
type = FunctionValuePostprocessor
function = moles_K
[]
[mole_rate_Na_produced]
type = FunctionValuePostprocessor
function = moles_Na
[]
[mole_rate_Sr_produced]
type = FunctionValuePostprocessor
function = moles_Sr
[]
[mole_rate_F_produced]
type = FunctionValuePostprocessor
function = moles_F
[]
[mole_rate_BOH_produced]
type = FunctionValuePostprocessor
function = moles_BOH
[]
[mole_rate_Br_produced]
type = FunctionValuePostprocessor
function = moles_Br
[]
[mole_rate_Ba_produced]
type = FunctionValuePostprocessor
function = moles_Ba
[]
[mole_rate_Li_produced]
type = FunctionValuePostprocessor
function = moles_Li
[]
[mole_rate_NO3_produced]
type = FunctionValuePostprocessor
function = moles_NO3
[]
[mole_rate_O2aq_produced]
type = FunctionValuePostprocessor
function = moles_O2aq
[]
[mole_rate_H2O_produced]
type = FunctionValuePostprocessor
function = moles_H2O
[]
[heat_joules_extracted_this_timestep]
type = PorousFlowPlotQuantity
uo = produced_heat
[]
[production_temperature]
type = AverageNodalVariableValue
boundary = production_nodes
variable = temperature
[]
[]
[Functions]
[moles_H]
type = ParsedFunction
vars = 'kg_H dt'
vals = 'kg_H_produced_this_timestep dt'
value = 'kg_H * 1000 / 1.0079 / dt'
[]
[moles_Cl]
type = ParsedFunction
vars = 'kg_Cl dt'
vals = 'kg_Cl_produced_this_timestep dt'
value = 'kg_Cl * 1000 / 35.453 / dt'
[]
[moles_SO4]
type = ParsedFunction
vars = 'kg_SO4 dt'
vals = 'kg_SO4_produced_this_timestep dt'
value = 'kg_SO4 * 1000 / 96.0576 / dt'
[]
[moles_HCO3]
type = ParsedFunction
vars = 'kg_HCO3 dt'
vals = 'kg_HCO3_produced_this_timestep dt'
value = 'kg_HCO3 * 1000 / 61.0171 / dt'
[]
[moles_SiO2aq]
type = ParsedFunction
vars = 'kg_SiO2aq dt'
vals = 'kg_SiO2aq_produced_this_timestep dt'
value = 'kg_SiO2aq * 1000 / 60.0843 / dt'
[]
[moles_Al]
type = ParsedFunction
vars = 'kg_Al dt'
vals = 'kg_Al_produced_this_timestep dt'
value = 'kg_Al * 1000 / 26.9815 / dt'
[]
[moles_Ca]
type = ParsedFunction
vars = 'kg_Ca dt'
vals = 'kg_Ca_produced_this_timestep dt'
value = 'kg_Ca * 1000 / 40.08 / dt'
[]
[moles_Mg]
type = ParsedFunction
vars = 'kg_Mg dt'
vals = 'kg_Mg_produced_this_timestep dt'
value = 'kg_Mg * 1000 / 24.305 / dt'
[]
[moles_Fe]
type = ParsedFunction
vars = 'kg_Fe dt'
vals = 'kg_Fe_produced_this_timestep dt'
value = 'kg_Fe * 1000 / 55.847 / dt'
[]
[moles_K]
type = ParsedFunction
vars = 'kg_K dt'
vals = 'kg_K_produced_this_timestep dt'
value = 'kg_K * 1000 / 39.0983 / dt'
[]
[moles_Na]
type = ParsedFunction
vars = 'kg_Na dt'
vals = 'kg_Na_produced_this_timestep dt'
value = 'kg_Na * 1000 / 22.9898 / dt'
[]
[moles_Sr]
type = ParsedFunction
vars = 'kg_Sr dt'
vals = 'kg_Sr_produced_this_timestep dt'
value = 'kg_Sr * 1000 / 87.62 / dt'
[]
[moles_F]
type = ParsedFunction
vars = 'kg_F dt'
vals = 'kg_F_produced_this_timestep dt'
value = 'kg_F * 1000 / 18.9984 / dt'
[]
[moles_BOH]
type = ParsedFunction
vars = 'kg_BOH dt'
vals = 'kg_BOH_produced_this_timestep dt'
value = 'kg_BOH * 1000 / 61.8329 / dt'
[]
[moles_Br]
type = ParsedFunction
vars = 'kg_Br dt'
vals = 'kg_Br_produced_this_timestep dt'
value = 'kg_Br * 1000 / 79.904 / dt'
[]
[moles_Ba]
type = ParsedFunction
vars = 'kg_Ba dt'
vals = 'kg_Ba_produced_this_timestep dt'
value = 'kg_Ba * 1000 / 137.33 / dt'
[]
[moles_Li]
type = ParsedFunction
vars = 'kg_Li dt'
vals = 'kg_Li_produced_this_timestep dt'
value = 'kg_Li * 1000 / 6.941 / dt'
[]
[moles_NO3]
type = ParsedFunction
vars = 'kg_NO3 dt'
vals = 'kg_NO3_produced_this_timestep dt'
value = 'kg_NO3 * 1000 / 62.0049 / dt'
[]
[moles_O2aq]
type = ParsedFunction
vars = 'kg_O2aq dt'
vals = 'kg_O2aq_produced_this_timestep dt'
value = 'kg_O2aq * 1000 / 31.9988 / dt'
[]
[moles_H2O]
type = ParsedFunction
vars = 'kg_H2O dt'
vals = 'kg_H2O_produced_this_timestep dt'
value = 'kg_H2O * 1000 / 18.01801802 / dt'
[]
[]
[AuxVariables]
[injection_temperature]
initial_condition = 92
[]
[injection_rate_massfrac_H]
initial_condition = -2.952985071156e-06
[]
[injection_rate_massfrac_Cl]
initial_condition = 0.04870664551708
[]
[injection_rate_massfrac_SO4]
initial_condition = 0.0060359986852517
[]
[injection_rate_massfrac_HCO3]
initial_condition = 5.0897287594019e-05
[]
[injection_rate_massfrac_SiO2aq]
initial_condition = 3.0246609868421e-05
[]
[injection_rate_massfrac_Al]
initial_condition = 3.268028901929e-08
[]
[injection_rate_massfrac_Ca]
initial_condition = 0.00082159428184586
[]
[injection_rate_massfrac_Mg]
initial_condition = 1.8546347062146e-05
[]
[injection_rate_massfrac_Fe]
initial_condition = 4.3291908204093e-05
[]
[injection_rate_massfrac_K]
initial_condition = 6.8434768308898e-05
[]
[injection_rate_massfrac_Na]
initial_condition = 0.033298053919671
[]
[injection_rate_massfrac_Sr]
initial_condition = 1.2771866652177e-05
[]
[injection_rate_massfrac_F]
initial_condition = 5.5648860174073e-06
[]
[injection_rate_massfrac_BOH]
initial_condition = 0.0003758574621917
[]
[injection_rate_massfrac_Br]
initial_condition = 9.0315286107068e-05
[]
[injection_rate_massfrac_Ba]
initial_condition = 1.5637460875161e-07
[]
[injection_rate_massfrac_Li]
initial_condition = 8.3017067912701e-05
[]
[injection_rate_massfrac_NO3]
initial_condition = 0.00010958455036169
[]
[injection_rate_massfrac_O2aq]
initial_condition = -7.0806852373351e-05
[]
[injection_rate_massfrac_H2O]
initial_condition = 0.91032275033842
[]
[rate_H]
[]
[rate_Cl]
[]
[rate_SO4]
[]
[rate_HCO3]
[]
[rate_SiO2aq]
[]
[rate_Al]
[]
[rate_Ca]
[]
[rate_Mg]
[]
[rate_Fe]
[]
[rate_K]
[]
[rate_Na]
[]
[rate_Sr]
[]
[rate_F]
[]
[rate_BOH]
[]
[rate_Br]
[]
[rate_Ba]
[]
[rate_Li]
[]
[rate_NO3]
[]
[rate_O2aq]
[]
[rate_H2O]
[]
[]
[MultiApps]
[react]
type = TransientMultiApp
input_files = aquifer_geochemistry.i
clone_master_mesh = true
execute_on = 'timestep_end'
[]
[]
[Transfers]
[changes_due_to_flow]
type = MultiAppCopyTransfer
direction = to_multiapp
source_variable = 'rate_H rate_Cl rate_SO4 rate_HCO3 rate_SiO2aq rate_Al rate_Ca rate_Mg rate_Fe rate_K rate_Na rate_Sr rate_F rate_BOH rate_Br rate_Ba rate_Li rate_NO3 rate_O2aq rate_H2O temperature'
variable = 'pf_rate_H pf_rate_Cl pf_rate_SO4 pf_rate_HCO3 pf_rate_SiO2aq pf_rate_Al pf_rate_Ca pf_rate_Mg pf_rate_Fe pf_rate_K pf_rate_Na pf_rate_Sr pf_rate_F pf_rate_BOH pf_rate_Br pf_rate_Ba pf_rate_Li pf_rate_NO3 pf_rate_O2aq pf_rate_H2O temperature'
multi_app = react
[]
[massfrac_from_geochem]
type = MultiAppCopyTransfer
direction = from_multiapp
source_variable = 'massfrac_H massfrac_Cl massfrac_SO4 massfrac_HCO3 massfrac_SiO2aq massfrac_Al massfrac_Ca massfrac_Mg massfrac_Fe massfrac_K massfrac_Na massfrac_Sr massfrac_F massfrac_BOH massfrac_Br massfrac_Ba massfrac_Li massfrac_NO3 massfrac_O2aq '
variable = 'f_H f_Cl f_SO4 f_HCO3 f_SiO2aq f_Al f_Ca f_Mg f_Fe f_K f_Na f_Sr f_F f_BOH f_Br f_Ba f_Li f_NO3 f_O2aq '
multi_app = react
[]
[]
(modules/stochastic_tools/test/tests/multiapps/batch_sampler_transient_multiapp/sub.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Postprocessors]
[average]
type = AverageNodalVariableValue
variable = u
[]
[]
[Controls]
[stochastic]
type = SamplerReceiver
[]
[]
[Outputs]
[]