- variableThe name of the variable that this postprocessor operates on
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
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>
Controllable:No
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 object applies
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:The list of boundaries (ids or names) from the mesh where this object applies
 - 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
Controllable:No
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
Controllable:No
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).
 - execute_onTIMESTEP_ENDThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
Default:TIMESTEP_END
C++ Type:ExecFlagEnum
Options:XFEM_MARK, FORWARD, ADJOINT, HOMOGENEOUS_FORWARD, ADJOINT_TIMESTEP_BEGIN, ADJOINT_TIMESTEP_END, NONE, INITIAL, LINEAR, LINEAR_CONVERGENCE, NONLINEAR, NONLINEAR_CONVERGENCE, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, MULTIAPP_FIXED_POINT_CONVERGENCE, FINAL, CUSTOM, TRANSFER
Controllable:No
Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
 - execution_order_group0Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.
Default:0
C++ Type:int
Controllable:No
Description:Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.
 - force_postauxFalseForces the UserObject to be executed in POSTAUX
Default:False
C++ Type:bool
Controllable:No
Description:Forces the UserObject to be executed in POSTAUX
 - force_preauxFalseForces the UserObject to be executed in PREAUX
Default:False
C++ Type:bool
Controllable:No
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
Controllable:No
Description:Forces the UserObject to be executed in PREIC during initial setup
 
Execution Scheduling Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
 - enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
 - outputsVector of output names where you would like to restrict the output of variables(s) associated with this object
C++ Type:std::vector<OutputName>
Controllable:No
Description:Vector of output names where 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
Controllable:No
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
Controllable:No
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/actions/parameter_study_action/sub_transient.i)
 - (modules/solid_mechanics/test/tests/thermal_expansion/constant_expansion_coeff.i)
 - (modules/stochastic_tools/test/tests/actions/parameter_study_action/sub_not_controllable.i)
 - (modules/stochastic_tools/test/tests/actions/parameter_study_action/sub.i)
 - (modules/stochastic_tools/test/tests/surrogates/load_store/sub.i)
 - (modules/heat_transfer/test/tests/interface_heating_mortar/constraint_joule_heating_dual_material.i)
 - (modules/stochastic_tools/test/tests/surrogates/poly_chaos/sub.i)
 - (modules/solid_mechanics/test/tests/thermal_expansion/ad_constant_expansion_coeff.i)
 - (modules/stochastic_tools/test/tests/vectorpostprocessors/stochastic_results_complete_history/sub.i)
 - (modules/heat_transfer/test/tests/interface_heating_mortar/constraint_joule_heating_dual_material_insulated.i)
 - (modules/stochastic_tools/test/tests/transfers/sampler_postprocessor/sub.i)
 - (test/tests/functormaterials/functor_change/nonlinear.i)
 - (modules/stochastic_tools/test/tests/actions/parameter_study_action/sub_pseudo_transient.i)
 - (modules/solid_mechanics/test/tests/action/composite_eigenstrain.i)
 - (modules/solid_mechanics/test/tests/dynamics/time_integration/direct_central_difference_multiVarBC.i)
 - (modules/heat_transfer/test/tests/interface_heating_mortar/transient_joule_heating_constraint.i)
 - (test/tests/outputs/csv/all_columns_parent.i)
 - (modules/solid_mechanics/test/tests/thermal_expansion/constant_expansion_coeff_restart.i)
 - (modules/stochastic_tools/test/tests/transfers/batch_sampler_transfer/sub.i)
 - (modules/stochastic_tools/test/tests/multiapps/batch_full_solve_multiapp/sub.i)
 - (modules/stochastic_tools/test/tests/transfers/sampler_postprocessor/errors/sub.i)
 - (modules/stochastic_tools/test/tests/reporters/BFActiveLearning/sub.i)
 - (modules/stochastic_tools/test/tests/multiapps/conditional_run/sub.i)
 - (modules/heat_transfer/test/tests/interface_heating_mortar/constraint_joule_heating_single_material.i)
 - (modules/thermal_hydraulics/test/tests/ics/flow_model_gas_mix_ic/flow_model_gas_mix_ic.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/closed_gap_prescribed_pressure.i)
 - (modules/combined/test/tests/thermo_mech/youngs_modulus_function_temp.i)
 - (test/tests/postprocessors/avg_nodal_var_value/avg_nodal_var_value.i)
 - (modules/solid_mechanics/test/tests/thermal_expansion/constant_expansion_stress_free_temp.i)
 - (modules/solid_mechanics/test/tests/thermal_expansion/multiple_thermal_eigenstrains.i)
 - (modules/stochastic_tools/test/tests/vectorpostprocessors/stochastic_results/sub.i)
 - (modules/stochastic_tools/test/tests/reporters/BFActiveLearning/sub_lf.i)
 - (test/tests/interfaces/coupleable/coupled_dots_nodal.i)
 - (modules/stochastic_tools/examples/surrogates/gaussian_process/sub.i)
 - (test/tests/functormaterials/functor_change/fp_parent.i)
 - (modules/stochastic_tools/examples/surrogates/sub.i)
 - (modules/thermal_hydraulics/test/tests/auxkernels/flow_model_gas_mix_aux/flow_model_gas_mix_aux.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/surrogates/gaussian_process/sub.i)
 - (modules/solid_mechanics/test/tests/action/action_eigenstrain.i)
 - (test/tests/functormaterials/functor_change/time_step.i)
 - (test/tests/controls/time_periods/user_objects/user_object.i)
 - (modules/heat_transfer/test/tests/interface_heating_mortar/constraint_joule_heating_single_material_insulated.i)
 - (modules/stochastic_tools/test/tests/vectorpostprocessors/multiple_stochastic_results/sub.i)
 - (modules/solid_mechanics/test/tests/thermal_expansion/ad_constant_expansion_coeff_old.i)
 - (modules/stochastic_tools/examples/paper/sub.i)
 - (modules/combined/test/tests/thermo_mech/ad-youngs_modulus_function_temp.i)
 - (modules/stochastic_tools/test/tests/reporters/ActiveLearningGP/sub.i)
 - (modules/solid_mechanics/test/tests/thermal_expansion/ad_constant_expansion_stress_free_temp.i)
 - (modules/stochastic_tools/examples/batch/sub.i)
 - (modules/combined/test/tests/gap_heat_transfer_mortar/finite-2d/varied_pressure_thermomechanical_mortar.i)
 - (test/tests/postprocessors/avg_nodal_var_value/avg_nodal_var_value_ts_begin.i)
 
(modules/stochastic_tools/test/tests/actions/parameter_study_action/sub_transient.i)
[Mesh]
  [gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 10
    ny = 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
  []
[]
[Postprocessors]
  [average]
    type = AverageNodalVariableValue
    variable = u
  []
[]
[Executioner]
  type = Transient
  num_steps = 5
  dt = 0.25
  solve_type = NEWTON
[]
(modules/solid_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
    expression = t*(500.0)+300.0
  [../]
[]
[Physics]
  [SolidMechanics]
    [QuasiStatic]
      [./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]
  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/actions/parameter_study_action/sub_not_controllable.i)
[Mesh]
  [gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 10
    ny = 10
  []
[]
[Variables]
  [u]
  []
[]
[Kernels]
  [diff]
    type = ADDiffusion
    variable = u
  []
[]
[BCs]
  [left]
    type = FunctionDirichletBC
    variable = u
    boundary = left
    function = 0
  []
  [right]
    type = DirichletBC
    variable = u
    boundary = right
    value = 1
  []
[]
[Postprocessors]
  [average]
    type = AverageNodalVariableValue
    variable = u
  []
[]
[Executioner]
  type = Steady
  solve_type = NEWTON
[]
# This is for testing distributions
p0 = 0
p1 = 0
p2 = 0
p3 = 0
p4 = 0
p5 = 0
p6 = 0
[Reporters]
  [const]
    type = ConstantReporter
    real_names = 'p0 p1 p2 p3 p4 p5 p6'
    real_values = '${p0} ${p1} ${p2} ${p3} ${p4} ${p5} ${p6}'
  []
[]
(modules/stochastic_tools/test/tests/actions/parameter_study_action/sub.i)
[Mesh]
  [gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 10
    ny = 10
  []
[]
[Variables]
  [u]
  []
[]
[Kernels]
  [diff]
    type = ADDiffusion
    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 = Steady
  solve_type = NEWTON
[]
# This is for testing distributions
p0 = 0
p1 = 0
p2 = 0
p3 = 0
p4 = 0
p5 = 0
p6 = 0
[Reporters]
  [const]
    type = ConstantReporter
    real_names = 'p0 p1 p2 p3 p4 p5 p6'
    real_values = '${p0} ${p1} ${p2} ${p3} ${p4} ${p5} ${p6}'
  []
[]
(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
  []
[]
(modules/heat_transfer/test/tests/interface_heating_mortar/constraint_joule_heating_dual_material.i)
## Units in the input file: m-Pa-s-K-V
[Mesh]
  [left_rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 100
    ny = 10
    xmax = 0.1
    ymin = 0
    ymax = 0.5
    boundary_name_prefix = moving_block
  []
  [left_block]
    type = SubdomainIDGenerator
    input = left_rectangle
    subdomain_id = 1
  []
  [right_rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 100
    ny = 10
    xmin = 0.1
    xmax = 0.2
    ymin = 0
    ymax = 0.5
    boundary_name_prefix = fixed_block
    boundary_id_offset = 4
  []
  [right_block]
    type = SubdomainIDGenerator
    input = right_rectangle
    subdomain_id = 2
  []
  [two_blocks]
    type = MeshCollectionGenerator
    inputs = 'left_block right_block'
  []
  [block_rename]
    type = RenameBlockGenerator
    input = two_blocks
    old_block = '1 2'
    new_block = 'left_block right_block'
  []
  [interface_secondary_subdomain]
    type = LowerDBlockFromSidesetGenerator
    sidesets = 'fixed_block_left'
    new_block_id = 3
    new_block_name = 'interface_secondary_subdomain'
    input = block_rename
  []
  [interface_primary_subdomain]
    type = LowerDBlockFromSidesetGenerator
    sidesets = 'moving_block_right'
    new_block_id = 4
    new_block_name = 'interface_primary_subdomain'
    input = interface_secondary_subdomain
  []
[]
[Problem]
  type = ReferenceResidualProblem
  reference_vector = 'ref'
  extra_tag_vectors = 'ref'
[]
[Variables]
  [temperature]
    initial_condition = 300.0
  []
  [temperature_interface_lm]
    block = 'interface_secondary_subdomain'
  []
  [potential]
  []
  [potential_interface_lm]
    block = 'interface_secondary_subdomain'
  []
[]
[AuxVariables]
  [interface_normal_lm]
    order = FIRST
    family = LAGRANGE
    block = 'interface_secondary_subdomain'
    initial_condition = 1.0
  []
[]
[Kernels]
  [HeatDiff_steel]
    type = ADHeatConduction
    variable = temperature
    thermal_conductivity = steel_thermal_conductivity
    extra_vector_tags = 'ref'
    block = 'left_block'
  []
  [HeatDiff_aluminum]
    type = ADHeatConduction
    variable = temperature
    thermal_conductivity = aluminum_thermal_conductivity
    extra_vector_tags = 'ref'
    block = 'right_block'
  []
  [electric_steel]
    type = ADMatDiffusion
    variable = potential
    diffusivity = steel_electrical_conductivity
    extra_vector_tags = 'ref'
    block = 'left_block'
  []
  [electric_aluminum]
    type = ADMatDiffusion
    variable = potential
    diffusivity = aluminum_electrical_conductivity
    extra_vector_tags = 'ref'
    block = 'right_block'
  []
[]
[BCs]
  [temperature_left]
    type = ADDirichletBC
    variable = temperature
    value = 300
    boundary = 'moving_block_left'
  []
  [temperature_right]
    type = ADDirichletBC
    variable = temperature
    value = 300
    boundary = 'fixed_block_right'
  []
  [electric_left]
    type = ADDirichletBC
    variable = potential
    value = 0.0
    boundary = moving_block_left
  []
  [electric_right]
    type = ADDirichletBC
    variable = potential
    value = 3.0e-1
    boundary = fixed_block_right
  []
[]
[Constraints]
  [thermal_contact]
    type = ModularGapConductanceConstraint
    variable = temperature_interface_lm
    secondary_variable = temperature
    primary_boundary = moving_block_right
    primary_subdomain = interface_primary_subdomain
    secondary_boundary = fixed_block_left
    secondary_subdomain = interface_secondary_subdomain
    gap_flux_models = 'closed_temperature'
  []
  [electrical_contact]
    type = ModularGapConductanceConstraint
    variable = potential_interface_lm
    secondary_variable = potential
    primary_boundary = moving_block_right
    primary_subdomain = interface_primary_subdomain
    secondary_boundary = fixed_block_left
    secondary_subdomain = interface_secondary_subdomain
    gap_flux_models = 'closed_electric'
  []
  [interface_heating]
    type = ADInterfaceJouleHeatingConstraint
    potential_lagrange_multiplier = potential_interface_lm
    secondary_variable = temperature
    primary_electrical_conductivity = steel_electrical_conductivity
    secondary_electrical_conductivity = aluminum_electrical_conductivity
    primary_boundary = moving_block_right
    primary_subdomain = interface_primary_subdomain
    secondary_boundary = fixed_block_left
    secondary_subdomain = interface_secondary_subdomain
  []
[]
[Materials]
  [steel_thermal_properties]
    type = ADGenericConstantMaterial
    prop_names = 'steel_density steel_thermal_conductivity steel_heat_capacity steel_electrical_conductivity         steel_hardness'
    prop_values = '8e3            16.2                        500.0              1.39e6      1.0' ## for stainless steel 304
    block = 'left_block interface_secondary_subdomain'
  []
  [aluminum_thermal_properties]
    type = ADGenericConstantMaterial
    prop_names = 'aluminum_density aluminum_thermal_conductivity aluminum_heat_capacity aluminum_electrical_conductivity aluminum_hardness'
    prop_values = ' 2.7e3           210                           900.0                   3.7e7                           1.0' #for 99% pure Al
    block = 'left_block right_block interface_secondary_subdomain'
  []
[]
[UserObjects]
  [closed_temperature]
    type = GapFluxModelPressureDependentConduction
    primary_conductivity = steel_thermal_conductivity
    secondary_conductivity = aluminum_thermal_conductivity
    temperature = temperature
    contact_pressure = interface_normal_lm
    primary_hardness = steel_hardness
    secondary_hardness = aluminum_hardness
    boundary = moving_block_right
  []
  [closed_electric]
    type = GapFluxModelPressureDependentConduction
    primary_conductivity = steel_electrical_conductivity
    secondary_conductivity = aluminum_electrical_conductivity
    temperature = potential
    contact_pressure = interface_normal_lm
    primary_hardness = steel_hardness
    secondary_hardness = aluminum_hardness
    boundary = moving_block_right
  []
[]
[Postprocessors]
  [steel_interface_temperature]
    type = AverageNodalVariableValue
    variable = temperature
    block = interface_primary_subdomain
  []
  [aluminum_interface_temperature]
    type = AverageNodalVariableValue
    variable = temperature
    block = interface_secondary_subdomain
  []
  [interface_heat_flux_steel]
    type = ADSideDiffusiveFluxAverage
    variable = temperature
    boundary = moving_block_right
    diffusivity = steel_thermal_conductivity
  []
  [interface_heat_flux_aluminum]
    type = ADSideDiffusiveFluxAverage
    variable = temperature
    boundary = fixed_block_left
    diffusivity = aluminum_thermal_conductivity
  []
  [interface_electrical_flux]
    type = ADSideDiffusiveFluxAverage
    variable = potential
    boundary = fixed_block_left
    diffusivity = aluminum_electrical_conductivity
  []
[]
[Executioner]
  type = Steady
  solve_type = NEWTON
  automatic_scaling = false
  line_search = 'none'
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-6
  nl_max_its = 100
  nl_forced_its = 1
[]
[Outputs]
  csv = true
  perf_graph = true
[]
(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
  []
[]
(modules/solid_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
    expression = t*(500.0)+300.0
  [../]
[]
[Physics]
  [SolidMechanics]
    [QuasiStatic]
      [./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]
  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/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
  []
[]
(modules/heat_transfer/test/tests/interface_heating_mortar/constraint_joule_heating_dual_material_insulated.i)
## Units in the input file: m-Pa-s-K-V
# Using the steady-state Fourier's law, the temperature at the interface in each block,
# in the case where thermal contact between the two blocks at the interface is not
# considered, (steel block on left, aluminum on right) is calculated as:
#
#   T_{interface - steel} = 816.849K
#   T_{interface - aluminum} = 339.871K
# which matches the simulation results to the 6 decimal places shown.
# As expected, the heat flux resulting from the volumetric Joule heating source is
# equivalent on both sides of the interface.
[Mesh]
  [left_rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 100
    ny = 10
    xmax = 0.1
    ymin = 0
    ymax = 0.5
    boundary_name_prefix = moving_block
  []
  [left_block]
    type = SubdomainIDGenerator
    input = left_rectangle
    subdomain_id = 1
  []
  [right_rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 100
    ny = 10
    xmin = 0.1
    xmax = 0.2
    ymin = 0
    ymax = 0.5
    boundary_name_prefix = fixed_block
    boundary_id_offset = 4
  []
  [right_block]
    type = SubdomainIDGenerator
    input = right_rectangle
    subdomain_id = 2
  []
  [two_blocks]
    type = MeshCollectionGenerator
    inputs = 'left_block right_block'
  []
  [block_rename]
    type = RenameBlockGenerator
    input = two_blocks
    old_block = '1 2'
    new_block = 'left_block right_block'
  []
  [interface_secondary_subdomain]
    type = LowerDBlockFromSidesetGenerator
    sidesets = 'fixed_block_left'
    new_block_id = 3
    new_block_name = 'interface_secondary_subdomain'
    input = block_rename
  []
  [interface_primary_subdomain]
    type = LowerDBlockFromSidesetGenerator
    sidesets = 'moving_block_right'
    new_block_id = 4
    new_block_name = 'interface_primary_subdomain'
    input = interface_secondary_subdomain
  []
[]
[Problem]
  type = ReferenceResidualProblem
  reference_vector = 'ref'
  extra_tag_vectors = 'ref'
[]
[Variables]
  [temperature]
    initial_condition = 300.0
  []
  [potential]
  []
  [potential_interface_lm]
    block = 'interface_secondary_subdomain'
  []
[]
[AuxVariables]
  [interface_normal_lm]
    order = FIRST
    family = LAGRANGE
    block = 'interface_secondary_subdomain'
    initial_condition = 1.0
  []
[]
[Kernels]
  [HeatDiff_steel]
    type = ADHeatConduction
    variable = temperature
    thermal_conductivity = steel_thermal_conductivity
    extra_vector_tags = 'ref'
    block = 'left_block'
  []
  [HeatDiff_aluminum]
    type = ADHeatConduction
    variable = temperature
    thermal_conductivity = aluminum_thermal_conductivity
    extra_vector_tags = 'ref'
    block = 'right_block'
  []
  [electric_steel]
    type = ADMatDiffusion
    variable = potential
    diffusivity = steel_electrical_conductivity
    extra_vector_tags = 'ref'
    block = 'left_block'
  []
  [electric_aluminum]
    type = ADMatDiffusion
    variable = potential
    diffusivity = aluminum_electrical_conductivity
    extra_vector_tags = 'ref'
    block = 'right_block'
  []
[]
[BCs]
  [temperature_left]
    type = ADDirichletBC
    variable = temperature
    value = 300
    boundary = 'moving_block_left'
  []
  [temperature_right]
    type = ADDirichletBC
    variable = temperature
    value = 300
    boundary = 'fixed_block_right'
  []
  [electric_left]
    type = ADDirichletBC
    variable = potential
    value = 0.0
    boundary = moving_block_left
  []
  [electric_right]
    type = ADDirichletBC
    variable = potential
    value = 3.0e-1
    boundary = fixed_block_right
  []
[]
[Constraints]
  [electrical_contact]
    type = ModularGapConductanceConstraint
    variable = potential_interface_lm
    secondary_variable = potential
    primary_boundary = moving_block_right
    primary_subdomain = interface_primary_subdomain
    secondary_boundary = fixed_block_left
    secondary_subdomain = interface_secondary_subdomain
    gap_flux_models = 'closed_electric'
  []
  [interface_heating]
    type = ADInterfaceJouleHeatingConstraint
    potential_lagrange_multiplier = potential_interface_lm
    secondary_variable = temperature
    primary_electrical_conductivity = steel_electrical_conductivity
    secondary_electrical_conductivity = aluminum_electrical_conductivity
    primary_boundary = moving_block_right
    primary_subdomain = interface_primary_subdomain
    secondary_boundary = fixed_block_left
    secondary_subdomain = interface_secondary_subdomain
  []
[]
[Materials]
  [steel_thermal_properties]
    type = ADGenericConstantMaterial
    prop_names = 'steel_density steel_thermal_conductivity steel_heat_capacity steel_electrical_conductivity         steel_hardness'
    prop_values = '8e3            16.2                        500.0              1.39e6      1.0' ## for stainless steel 304
    block = 'left_block interface_secondary_subdomain'
  []
  [aluminum_thermal_properties]
    type = ADGenericConstantMaterial
    prop_names = 'aluminum_density aluminum_thermal_conductivity aluminum_heat_capacity aluminum_electrical_conductivity aluminum_hardness'
    prop_values = ' 2.7e3           210                           900.0                   3.7e7                           1.0' #for 99% pure Al
    block = 'left_block right_block interface_secondary_subdomain'
  []
[]
[UserObjects]
  [closed_electric]
    type = GapFluxModelPressureDependentConduction
    primary_conductivity = steel_electrical_conductivity
    secondary_conductivity = aluminum_electrical_conductivity
    temperature = potential
    contact_pressure = interface_normal_lm
    primary_hardness = steel_hardness
    secondary_hardness = aluminum_hardness
    boundary = moving_block_right
  []
[]
[Postprocessors]
  [steel_interface_temperature]
    type = AverageNodalVariableValue
    variable = temperature
    block = interface_primary_subdomain
  []
  [aluminum_interface_temperature]
    type = AverageNodalVariableValue
    variable = temperature
    block = interface_secondary_subdomain
  []
  [interface_heat_flux_steel]
    type = ADSideDiffusiveFluxAverage
    variable = temperature
    boundary = moving_block_right
    diffusivity = steel_thermal_conductivity
  []
  [interface_heat_flux_aluminum]
    type = ADSideDiffusiveFluxAverage
    variable = temperature
    boundary = fixed_block_left
    diffusivity = aluminum_thermal_conductivity
  []
  [interface_electrical_flux]
    type = ADSideDiffusiveFluxAverage
    variable = potential
    boundary = fixed_block_left
    diffusivity = aluminum_electrical_conductivity
  []
[]
[Executioner]
  type = Steady
  solve_type = NEWTON
  automatic_scaling = false
  line_search = 'none'
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-6
  nl_max_its = 100
  nl_forced_its = 1
[]
[Outputs]
  csv = true
  perf_graph = true
[]
(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
  dtmin = 1e-4
  nl_max_its = 10
  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
  []
[]
(test/tests/functormaterials/functor_change/nonlinear.i)
# Solves the equation
#
#   U^2 = C
#   U(0) = U0
C = 25.0
U0 = 1.0
[Mesh]
  type = GeneratedMesh
  dim = 1
  nx = 1
[]
[Variables]
  [U]
    initial_condition = ${U0}
  []
[]
[FunctorMaterials]
  [residual_fmat]
    type = ADParsedFunctorMaterial
    expression = 'U^2 - C'
    functor_symbols = 'U C'
    functor_names = 'U ${C}'
    property_name = residual_prop
  []
[]
[Kernels]
  [residual]
    type = FunctorKernel
    variable = U
    functor = residual_prop
    functor_on_rhs = false
  []
[]
[FunctorMaterials]
  [mat]
    type = ADFunctorChangeFunctorMaterial
    functor = U
    change_over = nonlinear
    take_absolute_value = false
    prop_name = U_change
  []
[]
[Postprocessors]
  [U_avg]
    type = AverageNodalVariableValue
    variable = U
    execute_on = 'NONLINEAR_CONVERGENCE'
  []
  [U_max_change]
    type = ElementExtremeFunctorValue
    functor = U_change
    value_type = max
    execute_on = 'NONLINEAR_CONVERGENCE'
  []
[]
[Convergence]
  [nl_conv]
    type = IterationCountConvergence
    max_iterations = 2
    converge_at_max_iterations = true
  []
[]
[Executioner]
  type = Steady
  solve_type = NEWTON
  line_search = none
  nonlinear_convergence = nl_conv
[]
[Outputs]
  [console]
    type = Console
    execute_postprocessors_on = 'NONLINEAR'
  []
  [csv]
    type = CSV
    file_base = nonlinear
    execute_on = 'NONLINEAR'
  []
[]
(modules/stochastic_tools/test/tests/actions/parameter_study_action/sub_pseudo_transient.i)
[Mesh]
  [gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 10
    ny = 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
  []
[]
[Postprocessors]
  [average]
    type = AverageNodalVariableValue
    variable = u
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  steady_state_detection = true
  dt = 1
  line_search = none
  nl_abs_tol = 1e-12
[]
(modules/solid_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 SolidMechanics QuasiStatic Physics,
# the QuasiStatic Physics 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
    expression = t*(500.0)+300.0
  [../]
[]
[Physics/SolidMechanics/QuasiStatic]
  [./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'
    coupled_variables = 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]
  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/solid_mechanics/test/tests/dynamics/time_integration/direct_central_difference_multiVarBC.i)
###########################################################
# This is a simple test with a time-dependent problem
# demonstrating the use of a central difference with a
# direct calculation of acceleration.
#
# Testing that the first and second time derivatives
# are calculated correctly using the Central Difference Direct
# method
###########################################################
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Problem]
  extra_tag_matrices = 'mass'
[]
[Mesh]
  type = GeneratedMesh
  dim = 2
  xmin = -1
  xmax = 1
  ymin = -1
  ymax = 1
  nx = 4
  ny = 4
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
[]
[Functions]
  [forcing_fn]
    type = ParsedFunction
    expression = 't'
  []
[]
[Kernels]
  [DynamicSolidMechanics]
    displacements = 'disp_x disp_y'
  []
  [massmatrix]
    type = MassMatrix
    density = density
    matrix_tags = 'mass'
    variable = disp_x
  []
  [massmatrix_y]
    type = MassMatrix
    density = density
    matrix_tags = 'mass'
    variable = disp_y
  []
[]
[Materials]
  [elasticity_tensor_block_one]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1e1
    poissons_ratio = 0.33
  []
  [strain_block]
    type = ComputeFiniteStrain
    displacements = 'disp_x disp_y'
    implicit = false
  []
  [stress_block]
    type = ComputeFiniteStrainElasticStress
    implicit = false
  []
  [density]
    type = GenericConstantMaterial
    prop_names = 'density'
    prop_values = 1
  []
[]
[BCs]
  [left_x]
    type = ExplicitDirichletBC
    variable = disp_x
    boundary = 'left'
    value = 0
  []
  [left_y]
    type = ExplicitDirichletBC
    variable = disp_y
    boundary = 'left'
    value = 0
  []
  [right_x]
    type = ExplicitFunctionDirichletBC
    variable = disp_x
    boundary = 'right'
    function = forcing_fn
  []
[]
[Executioner]
  type = Transient
  [TimeIntegrator]
    type = ExplicitMixedOrder
    mass_matrix_tag = 'mass'
    second_order_vars = 'disp_x disp_y'
  []
  start_time = 0.0
  num_steps = 6
  dt = 0.1
[]
[Postprocessors]
  [left_x]
    type = AverageNodalVariableValue
    variable = disp_x
    boundary = left
  []
  [right_y]
    type = AverageNodalVariableValue
    variable = disp_x
    boundary = left
  []
[]
[Outputs]
  exodus = true
[]
(modules/heat_transfer/test/tests/interface_heating_mortar/transient_joule_heating_constraint.i)
## Units in the input file: m-Pa-s-K-V
[Mesh]
  [left_rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 100
    ny = 10
    xmax = 0.1
    ymin = 0
    ymax = 0.5
    boundary_name_prefix = moving_block
  []
  [left_block]
    type = SubdomainIDGenerator
    input = left_rectangle
    subdomain_id = 1
  []
  [right_rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 100
    ny = 10
    xmin = 0.1
    xmax = 0.2
    ymin = 0
    ymax = 0.5
    boundary_name_prefix = fixed_block
    boundary_id_offset = 4
  []
  [right_block]
    type = SubdomainIDGenerator
    input = right_rectangle
    subdomain_id = 2
  []
  [two_blocks]
    type = MeshCollectionGenerator
    inputs = 'left_block right_block'
  []
  [block_rename]
    type = RenameBlockGenerator
    input = two_blocks
    old_block = '1 2'
    new_block = 'left_block right_block'
  []
  [interface_secondary_subdomain]
    type = LowerDBlockFromSidesetGenerator
    sidesets = 'fixed_block_left'
    new_block_id = 3
    new_block_name = 'interface_secondary_subdomain'
    input = block_rename
  []
  [interface_primary_subdomain]
    type = LowerDBlockFromSidesetGenerator
    sidesets = 'moving_block_right'
    new_block_id = 4
    new_block_name = 'interface_primary_subdomain'
    input = interface_secondary_subdomain
  []
[]
[Problem]
  type = ReferenceResidualProblem
  reference_vector = 'ref'
  extra_tag_vectors = 'ref'
[]
[Variables]
  [temperature]
    initial_condition = 300.0
  []
  [temperature_interface_lm]
    block = 'interface_secondary_subdomain'
  []
  [potential]
  []
  [potential_interface_lm]
    block = 'interface_secondary_subdomain'
  []
[]
[AuxVariables]
  [interface_normal_lm]
    order = FIRST
    family = LAGRANGE
    block = 'interface_secondary_subdomain'
    initial_condition = 1.0
  []
[]
[Kernels]
  [HeatDiff_steel]
    type = ADHeatConduction
    variable = temperature
    thermal_conductivity = steel_thermal_conductivity
    extra_vector_tags = 'ref'
    block = 'left_block'
  []
  [HeatTdot_steel]
    type = ADHeatConductionTimeDerivative
    variable = temperature
    specific_heat = steel_heat_capacity #use parsed material property
    density_name = steel_density
    extra_vector_tags = 'ref'
    block = 'left_block'
  []
  [HeatDiff_aluminum]
    type = ADHeatConduction
    variable = temperature
    thermal_conductivity = aluminum_thermal_conductivity
    extra_vector_tags = 'ref'
    block = 'right_block'
  []
  [HeatTdot_aluminum]
    type = ADHeatConductionTimeDerivative
    variable = temperature
    specific_heat = aluminum_heat_capacity #use parsed material property
    density_name = aluminum_density
    extra_vector_tags = 'ref'
    block = 'right_block'
  []
  [electric_steel]
    type = ADMatDiffusion
    variable = potential
    diffusivity = steel_electrical_conductivity
    extra_vector_tags = 'ref'
    block = 'left_block'
  []
  [electric_aluminum]
    type = ADMatDiffusion
    variable = potential
    diffusivity = aluminum_electrical_conductivity
    extra_vector_tags = 'ref'
    block = 'right_block'
  []
[]
[BCs]
  [temperature_left]
    type = ADDirichletBC
    variable = temperature
    value = 300
    boundary = 'moving_block_left'
  []
  [temperature_right]
    type = ADDirichletBC
    variable = temperature
    value = 300
    boundary = 'fixed_block_right'
  []
  [electric_left]
    type = ADDirichletBC
    variable = potential
    value = 0.0
    boundary = moving_block_left
  []
  [electric_right]
    type = ADDirichletBC
    variable = potential
    value = 3.0e-1
    boundary = fixed_block_right
  []
[]
[Constraints]
  [thermal_contact]
    type = ModularGapConductanceConstraint
    variable = temperature_interface_lm
    secondary_variable = temperature
    primary_boundary = moving_block_right
    primary_subdomain = interface_primary_subdomain
    secondary_boundary = fixed_block_left
    secondary_subdomain = interface_secondary_subdomain
    gap_flux_models = 'closed_temperature'
  []
  [electrical_contact]
    type = ModularGapConductanceConstraint
    variable = potential_interface_lm
    secondary_variable = potential
    primary_boundary = moving_block_right
    primary_subdomain = interface_primary_subdomain
    secondary_boundary = fixed_block_left
    secondary_subdomain = interface_secondary_subdomain
    gap_flux_models = 'closed_electric'
  []
  [interface_heating]
    type = ADInterfaceJouleHeatingConstraint
    potential_lagrange_multiplier = potential_interface_lm
    secondary_variable = temperature
    primary_electrical_conductivity = steel_electrical_conductivity
    secondary_electrical_conductivity = aluminum_electrical_conductivity
    primary_boundary = moving_block_right
    primary_subdomain = interface_primary_subdomain
    secondary_boundary = fixed_block_left
    secondary_subdomain = interface_secondary_subdomain
  []
[]
[Materials]
  [steel_thermal_properties]
    type = ADGenericConstantMaterial
    prop_names = 'steel_density steel_thermal_conductivity steel_heat_capacity steel_electrical_conductivity         steel_hardness'
    prop_values = '8e3            16.2                        500.0              1.39e6      1.0' ## for stainless steel 304
    block = 'left_block interface_secondary_subdomain'
  []
  [aluminum_thermal_properties]
    type = ADGenericConstantMaterial
    prop_names = 'aluminum_density aluminum_thermal_conductivity aluminum_heat_capacity aluminum_electrical_conductivity aluminum_hardness'
    prop_values = ' 2.7e3           210                           900.0                   3.7e7                           1.0' #for 99% pure Al
    block = 'left_block right_block interface_secondary_subdomain'
  []
[]
[UserObjects]
  [closed_temperature]
    type = GapFluxModelPressureDependentConduction
    primary_conductivity = steel_thermal_conductivity
    secondary_conductivity = aluminum_thermal_conductivity
    temperature = temperature
    contact_pressure = interface_normal_lm
    primary_hardness = steel_hardness
    secondary_hardness = aluminum_hardness
    boundary = moving_block_right
  []
  [closed_electric]
    type = GapFluxModelPressureDependentConduction
    primary_conductivity = steel_electrical_conductivity
    secondary_conductivity = aluminum_electrical_conductivity
    temperature = potential
    contact_pressure = interface_normal_lm
    primary_hardness = steel_hardness
    secondary_hardness = aluminum_hardness
    boundary = moving_block_right
  []
[]
[Postprocessors]
  [steel_interface_temperature]
    type = AverageNodalVariableValue
    variable = temperature
    block = interface_primary_subdomain
  []
  [aluminum_interface_temperature]
    type = AverageNodalVariableValue
    variable = temperature
    block = interface_secondary_subdomain
  []
  [interface_heat_flux_steel]
    type = ADSideDiffusiveFluxAverage
    variable = temperature
    boundary = moving_block_right
    diffusivity = steel_thermal_conductivity
  []
  [interface_heat_flux_aluminum]
    type = ADSideDiffusiveFluxAverage
    variable = temperature
    boundary = fixed_block_left
    diffusivity = aluminum_thermal_conductivity
  []
  [interface_electrical_flux]
    type = ADSideDiffusiveFluxAverage
    variable = potential
    boundary = fixed_block_left
    diffusivity = aluminum_electrical_conductivity
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  automatic_scaling = false
  line_search = 'none'
  nl_abs_tol = 1e-8
  nl_rel_tol = 1e-4
  nl_max_its = 100
  nl_forced_its = 1
  dt = 1200.0
  dtmin = 1200.0
  num_steps = 8
[]
[Outputs]
  csv = true
  perf_graph = true
[]
(test/tests/outputs/csv/all_columns_parent.i)
# Heat conduction with fixed temperature on left and convection BC on right:
#
#   d/dx(-k dT/dx) = S'''(T)    (0,1)X(0,1)
#   T = T_inf                    x = 0
#   -k dT/dx = htc (T - T_inf)   x = 1
#
# Source is temperature-dependent and is calculated in the child app:
#   S(T) = B - A * (T - T_inf)^2
k = 15.0
htc = 100.0
T_ambient = 300.0
[Mesh]
  type = GeneratedMesh
  dim = 2
  nx = 5
  ny = 5
[]
[Variables]
  [T]
  []
[]
[AuxVariables]
  [S_parent]
  []
  [Tavg_scalar]
    family = SCALAR
    order = FIRST
  []
[]
[Functions]
  [Tavg_scalar_fn]
    type = PostprocessorFunction
    pp = Tavg_pp
  []
[]
[AuxScalarKernels]
  [Tavg_scalar_kernel]
    type = FunctionScalarAux
    variable = Tavg_scalar
    function = Tavg_scalar_fn
    execute_on = 'TIMESTEP_END'
  []
[]
[FunctorMaterials]
  [heat_flux_mat]
    type = ADParsedFunctorMaterial
    expression = 'htc * (T - T_inf)'
    functor_symbols = 'T T_inf htc'
    functor_names = 'T ${T_ambient} ${htc}'
    property_name = 'heat_flux'
  []
[]
[Kernels]
  [diff]
    type = FunctionDiffusion
    variable = T
    function = ${k}
  []
  [source]
    type = CoupledForce
    variable = T
    v = S_parent
  []
[]
[BCs]
  [left_bc]
    type = DirichletBC
    variable = T
    boundary = left
    value = ${T_ambient}
  []
  [right_bc]
    type = FunctorNeumannBC
    variable = T
    boundary = right
    functor = heat_flux
    flux_is_inward = false
  []
[]
[Convergence]
  [fp_conv]
    type = IterationCountConvergence
    max_iterations = 3
    converge_at_max_iterations = true
  []
[]
[Executioner]
  type = Steady
  solve_type = NEWTON
  multiapp_fixed_point_convergence = fp_conv
[]
[MultiApps]
  [source_app]
    type = FullSolveMultiApp
    positions = '0 0 0'
    input_files = all_columns_child.i
    execute_on = 'TIMESTEP_END'
  []
[]
[Transfers]
  [T_to_child]
    type = MultiAppCopyTransfer
    to_multi_app = source_app
    source_variable = T
    variable = T_child
    execute_on = 'SAME_AS_MULTIAPP'
  []
  [S_from_child]
    type = MultiAppCopyTransfer
    from_multi_app = source_app
    source_variable = S
    variable = S_parent
    execute_on = 'SAME_AS_MULTIAPP'
  []
[]
[Postprocessors]
  [Tavg_pp]
    type = AverageNodalVariableValue
    variable = T
    execute_on = 'TIMESTEP_END'
  []
  [fp_it]
    type = NumFixedPointIterations
    get_index_instead_of_count = true
    execute_on = 'TIMESTEP_END'
  []
[]
[Outputs]
  [console]
    type = Console
    new_row_detection_columns = ALL
    execute_postprocessors_on = 'MULTIAPP_FIXED_POINT_ITERATION_END'
    execute_scalars_on = 'MULTIAPP_FIXED_POINT_ITERATION_END'
    execute_on = 'MULTIAPP_FIXED_POINT_ITERATION_END'
  []
  [out]
    type = CSV
    new_row_detection_columns = ALL
    execute_postprocessors_on = 'MULTIAPP_FIXED_POINT_ITERATION_END'
    execute_scalars_on = 'MULTIAPP_FIXED_POINT_ITERATION_END'
    execute_on = 'MULTIAPP_FIXED_POINT_ITERATION_END'
  []
[]
(modules/solid_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
    expression = t*(500.0)+300.0
  [../]
[]
[Physics]
    [SolidMechanics]
        [QuasiStatic]
            [./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]
  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/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
  []
[]
(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/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
  []
[]
(modules/stochastic_tools/test/tests/reporters/BFActiveLearning/sub.i)
[Mesh]
  type = GeneratedMesh
  dim = 1
  nx = 100
  xmax = 0.13061533868990033
  elem_type = EDGE3
[]
[Variables]
  [T]
    order = SECOND
    family = LAGRANGE
  []
[]
[Kernels]
  [diffusion]
    type = MatDiffusion
    variable = T
    diffusivity = k
  []
  [source]
    type = BodyForce
    variable = T
    value = 10951.864006672608
  []
[]
[Materials]
  [conductivity]
    type = GenericConstantMaterial
    prop_names = k
    prop_values = 10.320058433901163
  []
[]
[BCs]
  [right]
    type = DirichletBC
    variable = T
    boundary = right
    value = 279.8173854189593
  []
[]
[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
  []
[]
[Controls]
  [stochastic]
    type = SamplerReceiver
  []
[]
[Outputs]
[]
(modules/stochastic_tools/test/tests/multiapps/conditional_run/sub.i)
[Mesh]
  type = GeneratedMesh
  dim = 2
  nx = 10
  ny = 10
[]
[Variables]
  [u]
  []
[]
[Kernels]
  [diff]
    type = ADDiffusion
    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 = Steady
  solve_type = NEWTON
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
[]
(modules/heat_transfer/test/tests/interface_heating_mortar/constraint_joule_heating_single_material.i)
## Units in the input file: m-Pa-s-K-V
[Mesh]
  [left_rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 100
    ny = 10
    xmax = 0.1
    ymin = 0
    ymax = 0.5
    boundary_name_prefix = moving_block
  []
  [left_block]
    type = SubdomainIDGenerator
    input = left_rectangle
    subdomain_id = 1
  []
  [right_rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 100
    ny = 10
    xmin = 0.1
    xmax = 0.2
    ymin = 0
    ymax = 0.5
    boundary_name_prefix = fixed_block
    boundary_id_offset = 4
  []
  [right_block]
    type = SubdomainIDGenerator
    input = right_rectangle
    subdomain_id = 2
  []
  [two_blocks]
    type = MeshCollectionGenerator
    inputs = 'left_block right_block'
  []
  [block_rename]
    type = RenameBlockGenerator
    input = two_blocks
    old_block = '1 2'
    new_block = 'left_block right_block'
  []
  [interface_secondary_subdomain]
    type = LowerDBlockFromSidesetGenerator
    sidesets = 'fixed_block_left'
    new_block_id = 3
    new_block_name = 'interface_secondary_subdomain'
    input = block_rename
  []
  [interface_primary_subdomain]
    type = LowerDBlockFromSidesetGenerator
    sidesets = 'moving_block_right'
    new_block_id = 4
    new_block_name = 'interface_primary_subdomain'
    input = interface_secondary_subdomain
  []
[]
[Problem]
  type = ReferenceResidualProblem
  reference_vector = 'ref'
  extra_tag_vectors = 'ref'
[]
[Variables]
  [temperature]
    initial_condition = 300.0
  []
  [potential]
  []
  [potential_interface_lm]
    block = 'interface_secondary_subdomain'
  []
  [temperature_interface_lm]
    block = 'interface_secondary_subdomain'
  []
[]
[AuxVariables]
  [interface_normal_lm]
    order = FIRST
    family = LAGRANGE
    block = 'interface_secondary_subdomain'
    initial_condition = 1.0
  []
[]
[Kernels]
  [HeatDiff_aluminum]
    type = ADHeatConduction
    variable = temperature
    thermal_conductivity = aluminum_thermal_conductivity
    extra_vector_tags = 'ref'
    block = 'left_block right_block'
  []
  [electric_aluminum]
    type = ADMatDiffusion
    variable = potential
    diffusivity = aluminum_electrical_conductivity
    extra_vector_tags = 'ref'
    block = 'left_block right_block'
  []
[]
[BCs]
  [temperature_left]
    type = ADDirichletBC
    variable = temperature
    value = 300
    boundary = 'moving_block_left'
  []
  [temperature_right]
    type = ADDirichletBC
    variable = temperature
    value = 300
    boundary = 'fixed_block_right'
  []
  [electric_left]
    type = ADDirichletBC
    variable = potential
    value = 0.0
    boundary = moving_block_left
  []
  [electric_right]
    type = ADDirichletBC
    variable = potential
    value = 3.0e-1
    boundary = fixed_block_right
  []
[]
[Constraints]
  [thermal_contact]
    type = ModularGapConductanceConstraint
    variable = temperature_interface_lm
    secondary_variable = temperature
    primary_boundary = moving_block_right
    primary_subdomain = interface_primary_subdomain
    secondary_boundary = fixed_block_left
    secondary_subdomain = interface_secondary_subdomain
    gap_flux_models = 'closed_temperature'
  []
  [electrical_contact]
    type = ModularGapConductanceConstraint
    variable = potential_interface_lm
    secondary_variable = potential
    primary_boundary = moving_block_right
    primary_subdomain = interface_primary_subdomain
    secondary_boundary = fixed_block_left
    secondary_subdomain = interface_secondary_subdomain
    gap_flux_models = 'closed_electric'
  []
  [interface_heating]
    type = ADInterfaceJouleHeatingConstraint
    potential_lagrange_multiplier = potential_interface_lm
    secondary_variable = temperature
    primary_electrical_conductivity = aluminum_electrical_conductivity
    secondary_electrical_conductivity = aluminum_electrical_conductivity
    primary_boundary = moving_block_right
    primary_subdomain = interface_primary_subdomain
    secondary_boundary = fixed_block_left
    secondary_subdomain = interface_secondary_subdomain
  []
[]
[Materials]
  [aluminum_thermal_properties]
    type = ADGenericConstantMaterial
    prop_names = 'aluminum_density aluminum_thermal_conductivity aluminum_heat_capacity aluminum_electrical_conductivity aluminum_hardness'
    prop_values = ' 2.7e3           210                           900.0                   3.7e7                           1.0' #for 99% pure Al
    block = 'left_block right_block interface_secondary_subdomain'
  []
[]
[UserObjects]
  [closed_temperature]
    type = GapFluxModelPressureDependentConduction
    primary_conductivity = aluminum_thermal_conductivity
    secondary_conductivity = aluminum_thermal_conductivity
    temperature = temperature
    contact_pressure = interface_normal_lm
    primary_hardness = aluminum_hardness
    secondary_hardness = aluminum_hardness
    boundary = moving_block_right
  []
  [closed_electric]
    type = GapFluxModelPressureDependentConduction
    primary_conductivity = aluminum_electrical_conductivity
    secondary_conductivity = aluminum_electrical_conductivity
    temperature = potential
    contact_pressure = interface_normal_lm
    primary_hardness = aluminum_hardness
    secondary_hardness = aluminum_hardness
    boundary = moving_block_right
  []
[]
[Postprocessors]
  [aluminum_interface_temperature]
    type = AverageNodalVariableValue
    variable = temperature
    block = interface_secondary_subdomain
  []
  [interface_heat_flux_aluminum]
    type = ADSideDiffusiveFluxAverage
    variable = temperature
    boundary = fixed_block_left
    diffusivity = aluminum_thermal_conductivity
  []
  [aluminum_interface_potential]
    type = AverageNodalVariableValue
    variable = potential
    block = interface_secondary_subdomain
  []
  [interface_electrical_flux_aluminum]
    type = ADSideDiffusiveFluxAverage
    variable = potential
    boundary = fixed_block_left
    diffusivity = aluminum_electrical_conductivity
  []
[]
[Executioner]
  type = Steady
  solve_type = NEWTON
  automatic_scaling = false
  line_search = 'none'
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-6
  nl_max_its = 50
  nl_forced_its = 1
[]
[Outputs]
  csv = true
  perf_graph = true
[]
(modules/thermal_hydraulics/test/tests/ics/flow_model_gas_mix_ic/flow_model_gas_mix_ic.i)
mass_fraction = 0.4
pressure = 1e5
temperature = 300
velocity = 10
area = 0.2
[GlobalParams]
  fluid_properties = mixture_fp
  mass_fraction = mass_frac_fn
  pressure = pressure_fn
  temperature = temperature_fn
  velocity = velocity_fn
  area = A
[]
[Mesh]
  type = GeneratedMesh
  dim = 1
  nx = 5
[]
[FluidProperties]
  [fp1]
    type = IdealGasFluidProperties
    gamma = 1.4
    molar_mass = 0.029
  []
  [fp2]
    type = IdealGasFluidProperties
    gamma = 1.5
    molar_mass = 0.04
  []
  [mixture_fp]
    type = IdealGasMixtureFluidProperties
    component_fluid_properties = 'fp1 fp2'
  []
[]
[Functions]
  [mass_frac_fn]
    type = ConstantFunction
    value = ${mass_fraction}
  []
  [pressure_fn]
    type = ConstantFunction
    value = ${pressure}
  []
  [temperature_fn]
    type = ConstantFunction
    value = ${temperature}
  []
  [velocity_fn]
    type = ConstantFunction
    value = ${velocity}
  []
[]
[AuxVariables]
  [A]
    initial_condition = ${area}
  []
  [rho]
  []
  [rhoEA]
  []
[]
[ICs]
  [rho_ic]
    type = FlowModelGasMixIC
    variable = rho
    quantity = rho
  []
  [rhoEA_ic]
    type = FlowModelGasMixIC
    variable = rhoEA
    quantity = rhoEA
  []
[]
[Postprocessors]
  [rho]
    type = AverageNodalVariableValue
    variable = rho
    execute_on = 'INITIAL'
  []
  [rhoEA]
    type = AverageNodalVariableValue
    variable = rhoEA
    execute_on = 'INITIAL'
  []
[]
[Problem]
  solve = false
[]
[Executioner]
  type = Steady
[]
[Outputs]
  csv = true
  execute_on = 'INITIAL'
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/closed_gap_prescribed_pressure.i)
## Units in the input file: m-Pa-s-K
[Mesh]
  [left_rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 40
    ny = 10
    xmax = 1
    ymin = 0
    ymax = 0.5
    boundary_name_prefix = moving_block
  []
  [left_block]
    type = SubdomainIDGenerator
    input = left_rectangle
    subdomain_id = 1
  []
  [right_rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 40
    ny = 10
    xmin = 1
    xmax = 2
    ymin = 0
    ymax = 0.5
    boundary_name_prefix = fixed_block
    boundary_id_offset = 4
  []
  [right_block]
    type = SubdomainIDGenerator
    input = right_rectangle
    subdomain_id = 2
  []
  [two_blocks]
    type = MeshCollectionGenerator
    inputs = 'left_block right_block'
  []
  [block_rename]
    type = RenameBlockGenerator
    input = two_blocks
    old_block = '1 2'
    new_block = 'left_block right_block'
  []
  [interface_secondary_subdomain]
    type = LowerDBlockFromSidesetGenerator
    sidesets = 'fixed_block_left'
    new_block_id = 3
    new_block_name = 'interface_secondary_subdomain'
    input = block_rename
  []
  [interface_primary_subdomain]
    type = LowerDBlockFromSidesetGenerator
    sidesets = 'moving_block_right'
    new_block_id = 4
    new_block_name = 'interface_primary_subdomain'
    input = interface_secondary_subdomain
  []
[]
[Variables]
  [temperature]
    initial_condition = 525.0
  []
  [temperature_interface_lm]
    block = 'interface_secondary_subdomain'
  []
[]
[AuxVariables]
  [interface_normal_lm]
    order = FIRST
    family = LAGRANGE
    block = 'interface_secondary_subdomain'
    initial_condition = 100.0
  []
[]
[Kernels]
  [HeatDiff_steel]
    type = ADHeatConduction
    variable = temperature
    thermal_conductivity = steel_thermal_conductivity
    block = 'left_block'
  []
  [HeatDiff_aluminum]
    type = ADHeatConduction
    variable = temperature
    thermal_conductivity = aluminum_thermal_conductivity
    block = 'right_block'
  []
[]
[BCs]
  [temperature_left]
    type = ADDirichletBC
    variable = temperature
    value = 800
    boundary = 'moving_block_left'
  []
  [temperature_right]
    type = ADDirichletBC
    variable = temperature
    value = 250
    boundary = 'fixed_block_right'
  []
[]
[Constraints]
  [thermal_contact]
    type = ModularGapConductanceConstraint
    variable = temperature_interface_lm
    secondary_variable = temperature
    primary_boundary = moving_block_right
    primary_subdomain = interface_primary_subdomain
    secondary_boundary = fixed_block_left
    secondary_subdomain = interface_secondary_subdomain
    gap_flux_models = 'closed'
  []
[]
[Materials]
  [steel_thermal_properties]
    type = ADGenericConstantMaterial
    prop_names = 'steel_density steel_thermal_conductivity steel_hardness'
    prop_values = '8e3            16.2                       129' ## for stainless steel 304
    block = 'left_block'
  []
  [aluminum_thermal_properties]
    type = ADGenericConstantMaterial
    prop_names = 'aluminum_density aluminum_thermal_conductivity aluminum_hardness'
    prop_values = ' 2.7e3           210                             15' #for 99% pure Al
    block = 'right_block'
  []
[]
[UserObjects]
  [closed]
    type = GapFluxModelPressureDependentConduction
    primary_conductivity = steel_thermal_conductivity
    secondary_conductivity = aluminum_thermal_conductivity
    temperature = temperature
    contact_pressure = interface_normal_lm
    primary_hardness = steel_hardness
    secondary_hardness = aluminum_hardness
    boundary = moving_block_right
  []
[]
[Postprocessors]
  [steel_interface_temperature]
    type = AverageNodalVariableValue
    variable = temperature
    block = interface_primary_subdomain
  []
  [aluminum_interface_temperature]
    type = AverageNodalVariableValue
    variable = temperature
    block = interface_secondary_subdomain
  []
  [interface_heat_flux_steel]
    type = ADSideDiffusiveFluxAverage
    variable = temperature
    boundary = moving_block_right
    diffusivity = steel_thermal_conductivity
  []
  [interface_heat_flux_aluminum]
    type = ADSideDiffusiveFluxAverage
    variable = temperature
    boundary = fixed_block_left
    diffusivity = aluminum_thermal_conductivity
  []
[]
[Executioner]
  type = Steady
  solve_type = NEWTON
  automatic_scaling = false
  nl_rel_tol = 1e-14
  nl_max_its = 20
[]
[Outputs]
  csv = true
  perf_graph = true
[]
(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 ComputeIncrementalStrain.  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 = ComputeIncrementalStrain
  [../]
  [./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
[]
(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
    expression = '1-x*x+2*t'
  [../]
  [./exact_fn]
    type = ParsedFunction
    expression = '(1-x*x)*t'
  [../]
  [./left_bc]
    type = ParsedFunction
    expression = 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/solid_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
    expression = t*(5000.0)+300.0
  [../]
[]
[Physics]
  [SolidMechanics]
    [QuasiStatic]
      [./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/solid_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
    expression = t*(500.0)+300.0
  [../]
[]
[Kernels]
  [SolidMechanics]
    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 = ComputeIncrementalStrain
    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
    mean_thermal_expansion_coefficient_name = mean1
  [../]
  [./thermal_expansion_strain2]
    type = ComputeThermalExpansionEigenstrain
    stress_free_temperature = 298
    thermal_expansion_coeff = 0.3e-5
    temperature = temp
    eigenstrain_name = eigenstrain2
    mean_thermal_expansion_coefficient_name = mean2
  [../]
[]
[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]
  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/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
  []
[]
(modules/stochastic_tools/test/tests/reporters/BFActiveLearning/sub_lf.i)
[Mesh]
  type = GeneratedMesh
  dim = 1
  nx = 5
  xmax = 0.09
  elem_type = EDGE3
[]
[Variables]
  [T]
    order = SECOND
    family = LAGRANGE
  []
[]
[Kernels]
  [diffusion]
    type = MatDiffusion
    variable = T
    diffusivity = k
  []
  [source]
    type = BodyForce
    variable = T
    value = 10951.864006672608
  []
[]
[Materials]
  [conductivity]
    type = GenericConstantMaterial
    prop_names = k
    prop_values = 10.320058433901163
  []
[]
[BCs]
  [right]
    type = DirichletBC
    variable = T
    boundary = right
    value = 279.8173854189593
  []
[]
[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
  []
[]
[Controls]
  [stochastic]
    type = SamplerReceiver
  []
[]
[Outputs]
[]
(test/tests/interfaces/coupleable/coupled_dots_nodal.i)
[Mesh]
  [gmg]
    type = GeneratedMeshGenerator
    dim = 1
    nx = 2
  []
[]
[Functions]
  [linear]
    type = ParsedFunction
    expression = 'x + 10*t + 2*t*t'
  []
[]
[Variables]
  [base]
  []
[]
[Kernels]
  [time]
    type = TimeDerivative
    variable = base
  []
  [source]
    type = BodyForce
    variable = base
    function = linear
  []
[]
[AuxVariables]
  [first]
  []
  [first_from_ad]
  []
[]
[AuxKernels]
  [set_first]
    type = DotCouplingAux
    variable = first
    v = base
  []
  [set_first_from_AD]
    type = ADDotCouplingAux
    variable = first_from_ad
    v = base
  []
[]
[Executioner]
  type = Transient
  num_steps = 3
[]
[Postprocessors]
  [dot]
    type = AverageNodalVariableValue
    variable = 'first'
  []
  [ad_dot]
    type = AverageNodalVariableValue
    variable = 'first_from_ad'
  []
  # Ideally we would test the second derivative here, but it's not implemented yet for nodal variables
  # through the coupleable API
[]
[Outputs]
  csv = true
[]
(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/functormaterials/functor_change/fp_parent.i)
# Heat conduction with fixed temperature on left and convection BC on right:
#
#   d/dx(-k dT/dx) = S'''(T)    (0,1)X(0,1)
#   T = T_inf                    x = 0
#   -k dT/dx = htc (T - T_inf)   x = 1
#
# Source is temperature-dependent and is calculated in the child app:
#   S(T) = B - A * (T - T_inf)^2
k = 15.0
htc = 100.0
T_ambient = 300.0
[Mesh]
  type = GeneratedMesh
  dim = 2
  nx = 5
  ny = 5
[]
[Variables]
  [T_nodal]
  []
  [T_elem]
    type = MooseVariableFVReal
  []
[]
[AuxVariables]
  [S_parent]
  []
[]
[FunctorMaterials]
  [heat_flux_mat_nodal]
    type = ADParsedFunctorMaterial
    expression = 'htc * (T - T_inf)'
    functor_symbols = 'T T_inf htc'
    functor_names = 'T_nodal ${T_ambient} ${htc}'
    property_name = 'heat_flux_nodal'
  []
  [heat_flux_mat_elem]
    type = ADParsedFunctorMaterial
    expression = 'htc * (T - T_inf)'
    functor_symbols = 'T T_inf htc'
    functor_names = 'T_elem ${T_ambient} ${htc}'
    property_name = 'heat_flux_elem'
  []
[]
[Kernels]
  [T_nodal_diff]
    type = FunctionDiffusion
    variable = T_nodal
    function = ${k}
  []
  [T_nodal_source]
    type = CoupledForce
    variable = T_nodal
    v = S_parent
  []
[]
[FVKernels]
  [T_elem_diff]
    type = FVDiffusion
    variable = T_elem
    coeff = ${k}
  []
  [T_elem_source]
    type = FVCoupledForce
    variable = T_elem
    v = S_parent
  []
[]
[BCs]
  [left_bc_nodal]
    type = DirichletBC
    variable = T_nodal
    boundary = left
    value = ${T_ambient}
  []
  [right_bc_nodal]
    type = FunctorNeumannBC
    variable = T_nodal
    boundary = right
    functor = heat_flux_nodal
    flux_is_inward = false
  []
[]
[FVBCs]
  [left_bc_elem]
    type = FVDirichletBC
    variable = T_elem
    boundary = left
    value = ${T_ambient}
  []
  [right_bc_elem]
    type = FVFunctorNeumannBC
    variable = T_elem
    boundary = right
    functor = heat_flux_elem
    factor = -1
  []
[]
[MultiApps]
  [source_app]
    type = FullSolveMultiApp
    positions = '0 0 0'
    input_files = fp_child.i
    execute_on = 'TIMESTEP_END'
  []
[]
[Transfers]
  [T_to_child]
    type = MultiAppCopyTransfer
    to_multi_app = source_app
    source_variable = T_nodal
    variable = T_child
    execute_on = 'SAME_AS_MULTIAPP'
  []
  [S_from_child]
    type = MultiAppCopyTransfer
    from_multi_app = source_app
    source_variable = S
    variable = S_parent
    execute_on = 'SAME_AS_MULTIAPP'
  []
[]
[FunctorMaterials]
  [nodal_mat]
    type = ADFunctorChangeFunctorMaterial
    functor = T_nodal
    change_over = fixed_point
    take_absolute_value = false
    prop_name = T_nodal_change
  []
  [elem_mat]
    type = ADFunctorChangeFunctorMaterial
    functor = T_elem
    change_over = fixed_point
    take_absolute_value = false
    prop_name = T_elem_change
  []
  [S_mat]
    type = ADFunctorChangeFunctorMaterial
    functor = S_parent
    change_over = fixed_point
    take_absolute_value = false
    prop_name = S_change
  []
[]
[Postprocessors]
  [T_nodal_avg]
    type = AverageNodalVariableValue
    variable = T_nodal
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [T_elem_avg]
    type = ElementAverageValue
    variable = T_elem
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [S_avg]
    type = ElementAverageValue
    variable = S_parent
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [T_nodal_max_change]
    type = ElementExtremeFunctorValue
    functor = T_nodal_change
    value_type = max
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [T_elem_max_change]
    type = ElementExtremeFunctorValue
    functor = T_elem_change
    value_type = max
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [S_max_change]
    type = ElementExtremeFunctorValue
    functor = S_change
    value_type = max
    execute_on = 'TIMESTEP_BEGIN'
  []
  [fp_it]
    type = NumFixedPointIterations
    get_index_instead_of_count = true
    execute_on = 'INITIAL TIMESTEP_END'
  []
[]
[Convergence]
  [fp_conv]
    type = IterationCountConvergence
    max_iterations = 5
    converge_at_max_iterations = true
  []
[]
[Executioner]
  type = Steady
  solve_type = NEWTON
  multiapp_fixed_point_convergence = fp_conv
[]
[Outputs]
  [console]
    type = Console
    new_row_detection_columns = all
    execute_postprocessors_on = 'INITIAL MULTIAPP_FIXED_POINT_ITERATION_END'
  []
  [out]
    type = CSV
    new_row_detection_columns = all
    execute_on = 'INITIAL MULTIAPP_FIXED_POINT_ITERATION_END'
  []
[]
(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/thermal_hydraulics/test/tests/auxkernels/flow_model_gas_mix_aux/flow_model_gas_mix_aux.i)
mass_fraction = 0.4
vel = 10
area = 0.2
# computed at p = 1e5 Pa, T = 300 K:
rho = 1.30632939267729
e_value = 1.789042384551724e+05
E = ${fparse e_value + 0.5 * vel * vel}
rhoA = ${fparse rho * area}
xirhoA = ${fparse mass_fraction * rhoA}
rhouA = ${fparse rhoA * vel}
rhoEA = ${fparse rhoA * E}
[GlobalParams]
  fluid_properties = mixture_fp
  xirhoA = xirhoA
  rhoA = rhoA
  rhouA = rhouA
  rhoEA = rhoEA
  area = A
[]
[Mesh]
  type = GeneratedMesh
  dim = 1
  nx = 5
[]
[FluidProperties]
  [fp1]
    type = IdealGasFluidProperties
    gamma = 1.4
    molar_mass = 0.029
  []
  [fp2]
    type = IdealGasFluidProperties
    gamma = 1.5
    molar_mass = 0.04
  []
  [mixture_fp]
    type = IdealGasMixtureFluidProperties
    component_fluid_properties = 'fp1 fp2'
  []
[]
[AuxVariables]
  [A]
    initial_condition = ${area}
  []
  [xirhoA]
    initial_condition = ${xirhoA}
  []
  [rhoA]
    initial_condition = ${rhoA}
  []
  [rhouA]
    initial_condition = ${rhouA}
  []
  [rhoEA]
    initial_condition = ${rhoEA}
  []
  [p]
  []
  [T]
  []
[]
[AuxKernels]
  [p_aux]
    type = FlowModelGasMixAux
    variable = p
    quantity = p
    execute_on = 'INITIAL'
  []
  [T_aux]
    type = FlowModelGasMixAux
    variable = T
    quantity = T
    execute_on = 'INITIAL'
  []
[]
[Postprocessors]
  [p]
    type = AverageNodalVariableValue
    variable = p
    execute_on = 'INITIAL'
  []
  [T]
    type = AverageNodalVariableValue
    variable = T
    execute_on = 'INITIAL'
  []
[]
[Problem]
  solve = false
[]
[Executioner]
  type = Steady
[]
[Outputs]
  csv = true
  execute_on = 'INITIAL'
[]
(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
  []
[]
[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
    indirect_dependencies = 'kg_H_produced_this_timestep dt'
  []
  [mole_rate_Cl_produced]
    type = FunctionValuePostprocessor
    function = moles_Cl
    indirect_dependencies = 'kg_Cl_produced_this_timestep dt'
  []
  [mole_rate_SO4_produced]
    type = FunctionValuePostprocessor
    function = moles_SO4
    indirect_dependencies = 'kg_SO4_produced_this_timestep dt'
  []
  [mole_rate_HCO3_produced]
    type = FunctionValuePostprocessor
    function = moles_HCO3
    indirect_dependencies = 'kg_HCO3_produced_this_timestep dt'
  []
  [mole_rate_SiO2aq_produced]
    type = FunctionValuePostprocessor
    function = moles_SiO2aq
    indirect_dependencies = 'kg_SiO2aq_produced_this_timestep dt'
  []
  [mole_rate_Al_produced]
    type = FunctionValuePostprocessor
    function = moles_Al
    indirect_dependencies = 'kg_Al_produced_this_timestep dt'
  []
  [mole_rate_Ca_produced]
    type = FunctionValuePostprocessor
    function = moles_Ca
    indirect_dependencies = 'kg_Ca_produced_this_timestep dt'
  []
  [mole_rate_Mg_produced]
    type = FunctionValuePostprocessor
    function = moles_Mg
    indirect_dependencies = 'kg_Mg_produced_this_timestep dt'
  []
  [mole_rate_Fe_produced]
    type = FunctionValuePostprocessor
    function = moles_Fe
    indirect_dependencies = 'kg_Fe_produced_this_timestep dt'
  []
  [mole_rate_K_produced]
    type = FunctionValuePostprocessor
    function = moles_K
    indirect_dependencies = 'kg_K_produced_this_timestep dt'
  []
  [mole_rate_Na_produced]
    type = FunctionValuePostprocessor
    function = moles_Na
    indirect_dependencies = 'kg_Na_produced_this_timestep dt'
  []
  [mole_rate_Sr_produced]
    type = FunctionValuePostprocessor
    function = moles_Sr
    indirect_dependencies = 'kg_Sr_produced_this_timestep dt'
  []
  [mole_rate_F_produced]
    type = FunctionValuePostprocessor
    function = moles_F
    indirect_dependencies = 'kg_F_produced_this_timestep dt'
  []
  [mole_rate_BOH_produced]
    type = FunctionValuePostprocessor
    function = moles_BOH
    indirect_dependencies = 'kg_BOH_produced_this_timestep dt'
  []
  [mole_rate_Br_produced]
    type = FunctionValuePostprocessor
    function = moles_Br
    indirect_dependencies = 'kg_Br_produced_this_timestep dt'
  []
  [mole_rate_Ba_produced]
    type = FunctionValuePostprocessor
    function = moles_Ba
    indirect_dependencies = 'kg_Ba_produced_this_timestep dt'
  []
  [mole_rate_Li_produced]
    type = FunctionValuePostprocessor
    function = moles_Li
    indirect_dependencies = 'kg_Li_produced_this_timestep dt'
  []
  [mole_rate_NO3_produced]
    type = FunctionValuePostprocessor
    function = moles_NO3
    indirect_dependencies = 'kg_NO3_produced_this_timestep dt'
  []
  [mole_rate_O2aq_produced]
    type = FunctionValuePostprocessor
    function = moles_O2aq
    indirect_dependencies = 'kg_O2aq_produced_this_timestep dt'
  []
  [mole_rate_H2O_produced]
    type = FunctionValuePostprocessor
    function = moles_H2O
    indirect_dependencies = 'kg_H2O_produced_this_timestep dt'
  []
  [heat_joules_extracted_this_timestep]
    type = PorousFlowPlotQuantity
    uo = produced_heat
  []
  [production_temperature]
    type = AverageNodalVariableValue
    boundary = production_nodes
    variable = temperature
  []
[]
[Functions]
  [moles_H]
    type = ParsedFunction
    symbol_names = 'kg_H dt'
    symbol_values = 'kg_H_produced_this_timestep dt'
    expression = 'kg_H * 1000 / 1.0079 / dt'
  []
  [moles_Cl]
    type = ParsedFunction
    symbol_names = 'kg_Cl dt'
    symbol_values = 'kg_Cl_produced_this_timestep dt'
    expression = 'kg_Cl * 1000 / 35.453 / dt'
  []
  [moles_SO4]
    type = ParsedFunction
    symbol_names = 'kg_SO4 dt'
    symbol_values = 'kg_SO4_produced_this_timestep dt'
    expression = 'kg_SO4 * 1000 / 96.0576 / dt'
  []
  [moles_HCO3]
    type = ParsedFunction
    symbol_names = 'kg_HCO3 dt'
    symbol_values = 'kg_HCO3_produced_this_timestep dt'
    expression = 'kg_HCO3 * 1000 / 61.0171 / dt'
  []
  [moles_SiO2aq]
    type = ParsedFunction
    symbol_names = 'kg_SiO2aq dt'
    symbol_values = 'kg_SiO2aq_produced_this_timestep dt'
    expression = 'kg_SiO2aq * 1000 / 60.0843 / dt'
  []
  [moles_Al]
    type = ParsedFunction
    symbol_names = 'kg_Al dt'
    symbol_values = 'kg_Al_produced_this_timestep dt'
    expression = 'kg_Al * 1000 / 26.9815 / dt'
  []
  [moles_Ca]
    type = ParsedFunction
    symbol_names = 'kg_Ca dt'
    symbol_values = 'kg_Ca_produced_this_timestep dt'
    expression = 'kg_Ca * 1000 / 40.08 / dt'
  []
  [moles_Mg]
    type = ParsedFunction
    symbol_names = 'kg_Mg dt'
    symbol_values = 'kg_Mg_produced_this_timestep dt'
    expression = 'kg_Mg * 1000 / 24.305 / dt'
  []
  [moles_Fe]
    type = ParsedFunction
    symbol_names = 'kg_Fe dt'
    symbol_values = 'kg_Fe_produced_this_timestep dt'
    expression = 'kg_Fe * 1000 / 55.847 / dt'
  []
  [moles_K]
    type = ParsedFunction
    symbol_names = 'kg_K dt'
    symbol_values = 'kg_K_produced_this_timestep dt'
    expression = 'kg_K * 1000 / 39.0983 / dt'
  []
  [moles_Na]
    type = ParsedFunction
    symbol_names = 'kg_Na dt'
    symbol_values = 'kg_Na_produced_this_timestep dt'
    expression = 'kg_Na * 1000 / 22.9898 / dt'
  []
  [moles_Sr]
    type = ParsedFunction
    symbol_names = 'kg_Sr dt'
    symbol_values = 'kg_Sr_produced_this_timestep dt'
    expression = 'kg_Sr * 1000 / 87.62 / dt'
  []
  [moles_F]
    type = ParsedFunction
    symbol_names = 'kg_F dt'
    symbol_values = 'kg_F_produced_this_timestep dt'
    expression = 'kg_F * 1000 / 18.9984 / dt'
  []
  [moles_BOH]
    type = ParsedFunction
    symbol_names = 'kg_BOH dt'
    symbol_values = 'kg_BOH_produced_this_timestep dt'
    expression = 'kg_BOH * 1000 / 61.8329 / dt'
  []
  [moles_Br]
    type = ParsedFunction
    symbol_names = 'kg_Br dt'
    symbol_values = 'kg_Br_produced_this_timestep dt'
    expression = 'kg_Br * 1000 / 79.904 / dt'
  []
  [moles_Ba]
    type = ParsedFunction
    symbol_names = 'kg_Ba dt'
    symbol_values = 'kg_Ba_produced_this_timestep dt'
    expression = 'kg_Ba * 1000 / 137.33 / dt'
  []
  [moles_Li]
    type = ParsedFunction
    symbol_names = 'kg_Li dt'
    symbol_values = 'kg_Li_produced_this_timestep dt'
    expression = 'kg_Li * 1000 / 6.941 / dt'
  []
  [moles_NO3]
    type = ParsedFunction
    symbol_names = 'kg_NO3 dt'
    symbol_values = 'kg_NO3_produced_this_timestep dt'
    expression = 'kg_NO3 * 1000 / 62.0049 / dt'
  []
  [moles_O2aq]
    type = ParsedFunction
    symbol_names = 'kg_O2aq dt'
    symbol_values = 'kg_O2aq_produced_this_timestep dt'
    expression = 'kg_O2aq * 1000 / 31.9988 / dt'
  []
  [moles_H2O]
    type = ParsedFunction
    symbol_names = 'kg_H2O dt'
    symbol_values = 'kg_H2O_produced_this_timestep dt'
    expression = '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
    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'
    to_multi_app = react
  []
  [massfrac_from_geochem]
    type = MultiAppCopyTransfer
    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 '
    from_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
  []
[]
(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
  []
[]
(modules/solid_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 SolidMechanics QuasiStatic Physics,
# the QuasiStatic Physics 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
    expression = t*(500.0)+300.0
  [../]
[]
[Physics/SolidMechanics/QuasiStatic]
  [./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]
  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
  [../]
[]
(test/tests/functormaterials/functor_change/time_step.i)
# Solves the IVP
#
#   dU/dt = -C U
#   U(0) = U0
C = 1.0
U0 = 1.0
[Mesh]
  type = GeneratedMesh
  dim = 1
  nx = 1
[]
[Variables]
  [U]
    initial_condition = ${U0}
  []
[]
[Kernels]
  [time_derivative]
    type = TimeDerivative
    variable = U
  []
  [source]
    type = Reaction
    variable = U
    rate = ${C}
  []
[]
[FunctorMaterials]
  [mat]
    type = ADFunctorChangeFunctorMaterial
    functor = U
    change_over = time_step
    take_absolute_value = false
    prop_name = U_change
  []
[]
[Postprocessors]
  [U_avg]
    type = AverageNodalVariableValue
    variable = U
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [U_max_change]
    type = ElementExtremeFunctorValue
    functor = U_change
    value_type = max
    execute_on = 'INITIAL TIMESTEP_END'
  []
[]
[Executioner]
  type = Transient
  dt = 1.0
  num_steps = 5
  solve_type = NEWTON
[]
[Outputs]
  csv = true
[]
(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/heat_transfer/test/tests/interface_heating_mortar/constraint_joule_heating_single_material_insulated.i)
## Units in the input file: m-Pa-s-K-V
# In this steady-state, symmetric simulation, the temperature at the interface between
# the two blocks of aluminum can be calculated through Fourier's law (see the documentation
# page for ADInterfaceJouleHeatingConstraint for the relevant formulas).
#
# With the prescribed 0.0 V (left) and 0.3V (right) potential boundary conditions, the
# electric potential drop is 9.25e6 [V * S / m^2]. From this current-density-like LM variable,
# the volumetric heat source at the interface is calculated as
#   q = 1.15625e6 [W/m^3}
# Because of the 2D nature of this problem, the volumetric heat source is equal to
# the negative of the heat flux at the interface.
#
# Finally, the temperature at the interface is computed as a function of the block width,
# thermal conductivity, and specified temperature boundary condition (300K on both the
# left and right edges):
#   T_{interface} = 850.5952K
# which matches the simulation result to the 6 decimal places shown.
[Mesh]
  [left_rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 100
    ny = 10
    xmax = 0.1
    ymin = 0
    ymax = 0.5
    boundary_name_prefix = moving_block
  []
  [left_block]
    type = SubdomainIDGenerator
    input = left_rectangle
    subdomain_id = 1
  []
  [right_rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 100
    ny = 10
    xmin = 0.1
    xmax = 0.2
    ymin = 0
    ymax = 0.5
    boundary_name_prefix = fixed_block
    boundary_id_offset = 4
  []
  [right_block]
    type = SubdomainIDGenerator
    input = right_rectangle
    subdomain_id = 2
  []
  [two_blocks]
    type = MeshCollectionGenerator
    inputs = 'left_block right_block'
  []
  [block_rename]
    type = RenameBlockGenerator
    input = two_blocks
    old_block = '1 2'
    new_block = 'left_block right_block'
  []
  [interface_secondary_subdomain]
    type = LowerDBlockFromSidesetGenerator
    sidesets = 'fixed_block_left'
    new_block_id = 3
    new_block_name = 'interface_secondary_subdomain'
    input = block_rename
  []
  [interface_primary_subdomain]
    type = LowerDBlockFromSidesetGenerator
    sidesets = 'moving_block_right'
    new_block_id = 4
    new_block_name = 'interface_primary_subdomain'
    input = interface_secondary_subdomain
  []
[]
[Problem]
  type = ReferenceResidualProblem
  reference_vector = 'ref'
  extra_tag_vectors = 'ref'
[]
[Variables]
  [temperature]
    initial_condition = 300.0
  []
  [potential]
  []
  [potential_interface_lm]
    block = 'interface_secondary_subdomain'
  []
[]
[AuxVariables]
  [interface_normal_lm]
    order = FIRST
    family = LAGRANGE
    block = 'interface_secondary_subdomain'
    initial_condition = 1.0
  []
[]
[Kernels]
  [HeatDiff_aluminum]
    type = ADHeatConduction
    variable = temperature
    thermal_conductivity = aluminum_thermal_conductivity
    extra_vector_tags = 'ref'
    block = 'left_block right_block'
  []
  [electric_aluminum]
    type = ADMatDiffusion
    variable = potential
    diffusivity = aluminum_electrical_conductivity
    extra_vector_tags = 'ref'
    block = 'left_block right_block'
  []
[]
[BCs]
  [temperature_left]
    type = ADDirichletBC
    variable = temperature
    value = 300
    boundary = 'moving_block_left'
  []
  [temperature_right]
    type = ADDirichletBC
    variable = temperature
    value = 300
    boundary = 'fixed_block_right'
  []
  [electric_left]
    type = ADDirichletBC
    variable = potential
    value = 0.0
    boundary = moving_block_left
  []
  [electric_right]
    type = ADDirichletBC
    variable = potential
    value = 3.0e-1
    boundary = fixed_block_right
  []
[]
[Constraints]
  [electrical_contact]
    type = ModularGapConductanceConstraint
    variable = potential_interface_lm
    secondary_variable = potential
    primary_boundary = moving_block_right
    primary_subdomain = interface_primary_subdomain
    secondary_boundary = fixed_block_left
    secondary_subdomain = interface_secondary_subdomain
    gap_flux_models = 'closed_electric'
  []
  [interface_heating]
    type = ADInterfaceJouleHeatingConstraint
    potential_lagrange_multiplier = potential_interface_lm
    secondary_variable = temperature
    primary_electrical_conductivity = aluminum_electrical_conductivity
    secondary_electrical_conductivity = aluminum_electrical_conductivity
    primary_boundary = moving_block_right
    primary_subdomain = interface_primary_subdomain
    secondary_boundary = fixed_block_left
    secondary_subdomain = interface_secondary_subdomain
  []
[]
[Materials]
  [aluminum_thermal_properties]
    type = ADGenericConstantMaterial
    prop_names = 'aluminum_density aluminum_thermal_conductivity aluminum_heat_capacity aluminum_electrical_conductivity aluminum_hardness'
    prop_values = ' 2.7e3           210                           900.0                   3.7e7                           1.0' #for 99% pure Al
    block = 'left_block right_block interface_secondary_subdomain'
  []
[]
[UserObjects]
  [closed_electric]
    type = GapFluxModelPressureDependentConduction
    primary_conductivity = aluminum_electrical_conductivity
    secondary_conductivity = aluminum_electrical_conductivity
    temperature = potential
    contact_pressure = interface_normal_lm
    primary_hardness = aluminum_hardness
    secondary_hardness = aluminum_hardness
    boundary = moving_block_right
  []
[]
[Postprocessors]
  [aluminum_interface_temperature]
    type = AverageNodalVariableValue
    variable = temperature
    block = interface_secondary_subdomain
  []
  [interface_heat_flux_aluminum]
    type = ADSideDiffusiveFluxAverage
    variable = temperature
    boundary = fixed_block_left
    diffusivity = aluminum_thermal_conductivity
  []
  [aluminum_interface_potential]
    type = AverageNodalVariableValue
    variable = potential
    block = interface_secondary_subdomain
  []
  [interface_electrical_flux_aluminum]
    type = ADSideDiffusiveFluxAverage
    variable = potential
    boundary = fixed_block_left
    diffusivity = aluminum_electrical_conductivity
  []
[]
[Executioner]
  type = Steady
  solve_type = NEWTON
  automatic_scaling = false
  line_search = 'none'
  nl_abs_tol = 2e-10
  nl_rel_tol = 1e-6
  nl_max_its = 50
  nl_forced_its = 1
[]
[Outputs]
  csv = true
  perf_graph = 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
  []
[]
(modules/solid_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
    expression = t*(500.0)+300.0
  [../]
[]
[Physics]
  [SolidMechanics]
    [QuasiStatic]
      [./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]
  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/paper/sub.i)
[Mesh]
  type = GeneratedMesh
  dim = 3
  nx = 10
  ny = 10
  nz = 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
  []
[]
[Postprocessors]
  [average]
    type = AverageNodalVariableValue
    variable = u
  []
[]
[Executioner]
  type = Transient
  num_steps = 5
  dt = 0.25
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Controls]
  [receiver]
    type = SamplerReceiver
  []
[]
[Outputs]
  console = false
[]
(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 ComputeIncrementalStrain.  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 = ADComputeIncrementalStrain
  [../]
  [./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/stochastic_tools/test/tests/reporters/ActiveLearningGP/sub.i)
[Mesh]
  type = GeneratedMesh
  dim = 1
  nx = 100
  xmax = 0.13061533868990033
  elem_type = EDGE3
[]
[Variables]
  [T]
    order = SECOND
    family = LAGRANGE
  []
[]
[Kernels]
  [diffusion]
    type = MatDiffusion
    variable = T
    diffusivity = k
  []
  [source]
    type = BodyForce
    variable = T
    value = 10951.864006672608
  []
[]
[Materials]
  [conductivity]
    type = GenericConstantMaterial
    prop_names = k
    prop_values = 10.320058433901163
  []
[]
[BCs]
  [right]
    type = DirichletBC
    variable = T
    boundary = right
    value = 279.8173854189593
  []
[]
[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
  []
[]
[Controls]
  [stochastic]
    type = SamplerReceiver
  []
[]
[Outputs]
[]
(modules/solid_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
    expression = t*(5000.0)+300.0
  [../]
[]
[Physics]
  [SolidMechanics]
    [QuasiStatic]
      [./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/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/combined/test/tests/gap_heat_transfer_mortar/finite-2d/varied_pressure_thermomechanical_mortar.i)
## Units in the input file: m-Pa-s-K
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [left_rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 20
    ny = 10
    xmax = 0.25
    ymin = 0
    ymax = 0.5
    boundary_name_prefix = moving_block
  []
  [left_block]
    type = SubdomainIDGenerator
    input = left_rectangle
    subdomain_id = 1
  []
  [right_rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 20
    ny = 13
    xmin = 0.25
    xmax = 0.5
    ymin = 0
    ymax = 0.5
    boundary_name_prefix = fixed_block
    boundary_id_offset = 4
  []
  [right_block]
    type = SubdomainIDGenerator
    input = right_rectangle
    subdomain_id = 2
  []
  [two_blocks]
    type = MeshCollectionGenerator
    inputs = 'left_block right_block'
  []
  [block_rename]
    type = RenameBlockGenerator
    input = two_blocks
    old_block = '1 2'
    new_block = 'left_block right_block'
  []
  patch_update_strategy = iteration
[]
[Variables]
  [disp_x]
    block = 'left_block right_block'
  []
  [disp_y]
    block = 'left_block right_block'
  []
  [temperature]
    initial_condition = 300.0
  []
  [temperature_interface_lm]
    block = 'interface_secondary_subdomain'
  []
[]
[Physics]
  [SolidMechanics/QuasiStatic]
    [steel]
      strain = FINITE
      add_variables = false
      use_automatic_differentiation = true
      generate_output = 'strain_xx strain_xy strain_yy stress_xx stress_xy stress_yy'
      additional_generate_output = 'vonmises_stress'
      additional_material_output_family = 'MONOMIAL'
      additional_material_output_order = 'FIRST'
      block = 'left_block'
    []
    [aluminum]
      strain = FINITE
      add_variables = false
      use_automatic_differentiation = true
      generate_output = 'strain_xx strain_xy strain_yy stress_xx stress_xy stress_yy'
      additional_generate_output = 'vonmises_stress'
      additional_material_output_family = 'MONOMIAL'
      additional_material_output_order = 'FIRST'
      block = 'right_block'
    []
  []
[]
[Kernels]
  [HeatDiff_steel]
    type = ADHeatConduction
    variable = temperature
    thermal_conductivity = steel_thermal_conductivity
    block = 'left_block'
  []
  [HeatTdot_steel]
    type = ADHeatConductionTimeDerivative
    variable = temperature
    specific_heat = steel_heat_capacity
    density_name = steel_density
    block = 'left_block'
  []
  [HeatDiff_aluminum]
    type = ADHeatConduction
    variable = temperature
    thermal_conductivity = aluminum_thermal_conductivity
    block = 'right_block'
  []
  [HeatTdot_aluminum]
    type = ADHeatConductionTimeDerivative
    variable = temperature
    specific_heat = aluminum_heat_capacity
    density_name = aluminum_density
    block = 'right_block'
  []
[]
[BCs]
  [fixed_bottom_edge]
    type = ADDirichletBC
    variable = disp_y
    value = 0
    boundary = 'moving_block_bottom fixed_block_bottom'
  []
  [fixed_outer_edge]
    type = ADDirichletBC
    variable = disp_x
    value = 0
    boundary = 'fixed_block_right'
  []
  [pressure_left_block]
    type = ADPressure
    variable = disp_x
    boundary = 'moving_block_left'
    function = '1e4*t*y'
  []
  [temperature_left]
    type = ADDirichletBC
    variable = temperature
    value = 300
    boundary = 'moving_block_left'
  []
  [temperature_right]
    type = ADDirichletBC
    variable = temperature
    value = 800
    boundary = 'fixed_block_right'
  []
[]
[Contact]
  [interface]
    primary = moving_block_right
    secondary = fixed_block_left
    model = frictionless
    formulation = mortar
    correct_edge_dropping = true
  []
[]
[Constraints]
  [thermal_contact]
    type = ModularGapConductanceConstraint
    variable = temperature_interface_lm
    secondary_variable = temperature
    primary_boundary = moving_block_right
    primary_subdomain = interface_primary_subdomain
    secondary_boundary = fixed_block_left
    secondary_subdomain = interface_secondary_subdomain
    gap_flux_models = 'closed'
    use_displaced_mesh = true
  []
[]
[Materials]
  [steel_elasticity_tensor]
    type = ADComputeIsotropicElasticityTensor
    youngs_modulus = 1.93e11 #in Pa, 193 GPa, stainless steel 304
    poissons_ratio = 0.29
    block = 'left_block'
  []
  [steel_stress]
    type = ADComputeFiniteStrainElasticStress
    block = 'left_block'
  []
  [steel_thermal_properties]
    type = ADGenericConstantMaterial
    prop_names = 'steel_density steel_thermal_conductivity steel_heat_capacity steel_hardness'
    prop_values = ' 8e3            16.2                     0.5                 129' ## for stainless steel 304
    block = 'left_block'
  []
  [aluminum_elasticity_tensor]
    type = ADComputeIsotropicElasticityTensor
    youngs_modulus = 6.8e10 #in Pa, 68 GPa, aluminum
    poissons_ratio = 0.36
    block = 'right_block'
  []
  [aluminum_stress]
    type = ADComputeFiniteStrainElasticStress
    block = 'right_block'
  []
  [aluminum_thermal_properties]
    type = ADGenericConstantMaterial
    prop_names = 'aluminum_density aluminum_thermal_conductivity aluminum_heat_capacity aluminum_hardness'
    prop_values = ' 2.7e3            210                           0.9                   15' #for 99% pure Al
    block = 'right_block'
  []
[]
[UserObjects]
  [closed]
    type = GapFluxModelPressureDependentConduction
    primary_conductivity = steel_thermal_conductivity
    secondary_conductivity = aluminum_thermal_conductivity
    temperature = temperature
    contact_pressure = interface_normal_lm
    primary_hardness = steel_hardness
    secondary_hardness = aluminum_hardness
    boundary = moving_block_right
  []
[]
[Postprocessors]
  [contact_pressure_max]
    type = NodalExtremeValue
    variable = interface_normal_lm
    block = interface_secondary_subdomain
    value_type = max
  []
  [contact_pressure_average]
    type = AverageNodalVariableValue
    variable = interface_normal_lm
    block = interface_secondary_subdomain
  []
  [contact_pressure_min]
    type = NodalExtremeValue
    variable = interface_normal_lm
    block = interface_secondary_subdomain
    value_type = min
  []
  [interface_temperature_max]
    type = NodalExtremeValue
    variable = temperature
    block = interface_secondary_subdomain
    value_type = max
  []
  [interface_temperature_average]
    type = AverageNodalVariableValue
    variable = temperature
    block = interface_secondary_subdomain
  []
  [interface_temperature_min]
    type = NodalExtremeValue
    variable = temperature
    block = interface_secondary_subdomain
    value_type = min
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  automatic_scaling = false
  line_search = 'none'
  # mortar contact solver options
  petsc_options = '-snes_converged_reason -pc_svd_monitor'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
  petsc_options_value = ' lu       superlu_dist'
  snesmf_reuse_base = false
  nl_rel_tol = 1e-7
  nl_max_its = 20
  l_max_its = 50
  dt = 0.125
  end_time = 1
[]
[Outputs]
  csv = true
  perf_graph = true
[]
(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
    expression = '1-x*x+2*t'
  [../]
  [./exact_fn]
    type = ParsedFunction
    expression = '(1-x*x)*t'
  [../]
  [./left_bc]
    type = ParsedFunction
    expression = 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
[]