- postprocessorThe name of the postprocessor used for reporting time extreme values
C++ Type:PostprocessorName
Unit:(no unit assumed)
Controllable:No
Description:The name of the postprocessor used for reporting time extreme values
 
TimeExtremeValue
The TimeExtremeValue Postprocessor reports the extreme value of coupled Postprocessor seen over time. For example, this Postprocessor can be used to record the peak temperature or maximum stress in a simulation with an oscillating force. The minimum, absolute minimum, and absolute maximum over time are also options in addition to the default maximum.
The parameter "output_type" allows the user to select whether to output the extreme value requested as described above or the time at which the extreme value occurred.
A postprocessor for reporting the extreme value of another postprocessor over time.
Input Parameters
- output_typeextreme_valueOutput to return. 'extreme_value' returns the extreme_value. 'time' returns the time at which the extreme_value occurred.
Default:extreme_value
C++ Type:MooseEnum
Options:extreme_value, time
Controllable:No
Description:Output to return. 'extreme_value' returns the extreme_value. 'time' returns the time at which the extreme_value occurred.
 - value_typemaxType of extreme value to return.'max' returns the maximum value.'min' returns the minimum value.'abs_max' returns the maximum absolute value.'abs_min' returns the minimum absolute value.
Default:max
C++ Type:MooseEnum
Options:max, min, abs_max, abs_min
Controllable:No
Description:Type of extreme value to return.'max' returns the maximum value.'min' returns the minimum value.'abs_max' returns the maximum absolute value.'abs_min' returns the minimum absolute value.
 
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
 - 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
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
 - use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
Controllable:No
Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
 
Material Property Retrieval Parameters
Input Files
- (modules/solid_mechanics/test/tests/rom_stress_update/verification.i)
 - (modules/solid_mechanics/test/tests/strain_adjusted_density/exact_2drz.i)
 - (modules/solid_mechanics/test/tests/rom_stress_update/nonad_verification.i)
 - (test/tests/time_integrators/scalar/stiff.i)
 - (test/tests/postprocessors/time_extreme_value/time_extreme_value.i)
 - (modules/solid_mechanics/test/tests/rom_stress_update/ADverification.i)
 - (modules/solid_mechanics/test/tests/rom_stress_update/ad_verification.i)
 - (modules/stochastic_tools/examples/surrogates/combined/trans_diff_2d/trans_diff_sub.i)
 - (modules/solid_mechanics/test/tests/strain_adjusted_density/exact_3D.i)
 - (modules/solid_mechanics/test/tests/strain_adjusted_density/exact_rspherical.i)
 
References
No citations exist within this document.output_type
Default:extreme_value
C++ Type:MooseEnum
Options:extreme_value, time
Controllable:No
Description:Output to return. 'extreme_value' returns the extreme_value. 'time' returns the time at which the extreme_value occurred.
(modules/solid_mechanics/test/tests/rom_stress_update/verification.i)
[Mesh]
  type = GeneratedMesh
  dim = 3
[]
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
  [./temperature]
  [../]
[]
[AuxKernels]
  [./temp_aux]
    type = FunctionAux
    variable = temperature
    function = temp_fcn
    execute_on = 'initial timestep_begin'
  [../]
[]
[Functions]
  [./rhom_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 1
    format = columns
    xy_in_file_only = false
    direction = right
  [../]
  [./rhoi_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 2
    format = columns
    xy_in_file_only = false
    direction = right
  [../]
  [./vmJ2_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 3
    format = columns
    xy_in_file_only = false
    direction = right
  [../]
  [./evm_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 4
    format = columns
    xy_in_file_only = false
    direction = right
  [../]
  [./temp_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 5
    format = columns
    xy_in_file_only = false
    direction = right
  [../]
  [./rhom_soln_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 7
    format = columns
    xy_in_file_only = false
    direction = right
  [../]
  [./rhoi_soln_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 8
    format = columns
    xy_in_file_only = false
    direction = right
  [../]
  [./creep_rate_soln_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 10
    format = columns
    xy_in_file_only = false
    direction = right
  [../]
  [./rhom_diff_fcn]
    type = ParsedFunction
    symbol_names = 'rhom_soln rhom'
    symbol_values = 'rhom_soln rhom'
    expression = 'abs(rhom_soln - rhom) / rhom_soln'
  [../]
  [./rhoi_diff_fcn]
    type = ParsedFunction
    symbol_names = 'rhoi_soln rhoi'
    symbol_values = 'rhoi_soln rhoi'
    expression = 'abs(rhoi_soln - rhoi) / rhoi_soln'
  [../]
  [./creep_rate_diff_fcn]
    type = ParsedFunction
    symbol_names = 'creep_rate_soln creep_rate'
    symbol_values = 'creep_rate_soln creep_rate'
    expression = 'abs(creep_rate_soln - creep_rate) / creep_rate_soln'
  [../]
[]
[Physics/SolidMechanics/QuasiStatic]
  [./all]
    strain = FINITE
    add_variables = true
    generate_output = 'vonmises_stress'
  [../]
[]
[BCs]
  [./symmx]
    type = DirichletBC
    variable = disp_x
    boundary = left
    value = 0
  [../]
  [./symmy]
    type = DirichletBC
    variable = disp_y
    boundary = bottom
    value = 0
  [../]
  [./symmz]
    type = DirichletBC
    variable = disp_z
    boundary = back
    value = 0
  [../]
  [./pressure_x]
    type = Pressure
    variable = disp_x
    boundary = right
    function = vmJ2_fcn
    factor = 0.5e6
  [../]
  [./pressure_y]
    type = Pressure
    variable = disp_y
    boundary = top
    function = vmJ2_fcn
    factor = -0.5e6
  [../]
  [./pressure_z]
    type = Pressure
    variable = disp_z
    boundary = front
    function = vmJ2_fcn
    factor = -0.5e6
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1e11
    poissons_ratio = 0.3
  [../]
  [./stress]
    type = ComputeMultipleInelasticStress
    inelastic_models = rom_stress_prediction
  [../]
  [./rom_stress_prediction]
    type = SS316HLAROMANCEStressUpdateTest
    temperature = temperature
    effective_inelastic_strain_name = effective_creep_strain
    internal_solve_full_iteration_history = true
    outputs = all
    wall_dislocation_density_forcing_function = rhoi_fcn
    cell_dislocation_density_forcing_function = rhom_fcn
    old_creep_strain_forcing_function = evm_fcn
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-snes_ksp_ew -snes_converged_reason -ksp_converged_reason'# -ksp_error_if_not_converged -snes_error_if_not_converged'
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  line_search = 'none'
  automatic_scaling = true
  compute_scaling_once = false
  nl_abs_tol = 1e-10
  dt = 1e-3
  end_time = 1e-2
[]
[Postprocessors]
  [./effective_strain_avg]
    type = ElementAverageValue
    variable = effective_creep_strain
    outputs = console
  [../]
  [./temperature]
    type = ElementAverageValue
    variable = temperature
    outputs = console
  [../]
  [./rhom]
    type = ElementAverageValue
    variable = cell_dislocations
  [../]
  [./rhoi]
    type = ElementAverageValue
    variable = wall_dislocations
  [../]
  [./vonmises_stress]
    type = ElementAverageValue
    variable = vonmises_stress
    outputs = console
  [../]
  [./creep_rate]
    type = ElementAverageValue
    variable = creep_rate
  [../]
  [./rhom_in]
    type = FunctionValuePostprocessor
    function = rhom_fcn
    execute_on = 'TIMESTEP_END initial'
    outputs = console
  [../]
  [./rhoi_in]
    type = FunctionValuePostprocessor
    function = rhoi_fcn
    execute_on = 'TIMESTEP_END initial'
    outputs = console
  [../]
  [./vmJ2_in]
    type = FunctionValuePostprocessor
    function = vmJ2_fcn
    execute_on = 'TIMESTEP_END initial'
    outputs = console
  [../]
  [./rhom_soln]
    type = FunctionValuePostprocessor
    function = rhom_soln_fcn
    outputs = console
  [../]
  [./rhoi_soln]
    type = FunctionValuePostprocessor
    function = rhoi_soln_fcn
    outputs = console
  [../]
  [./creep_rate_soln]
    type = FunctionValuePostprocessor
    function = creep_rate_soln_fcn
    outputs = console
  [../]
  [./rhom_diff]
    type = FunctionValuePostprocessor
    function = rhom_diff_fcn
    outputs = console
  [../]
  [./rhoi_diff]
    type = FunctionValuePostprocessor
    function = rhoi_diff_fcn
    outputs = console
  [../]
  [./creep_rate_diff]
    type = FunctionValuePostprocessor
    function = creep_rate_diff_fcn
    outputs = console
  [../]
  [./rhom_max_diff]
    type = TimeExtremeValue
    postprocessor = rhom_diff
    outputs = console
  [../]
  [./rhoi_max_diff]
    type = TimeExtremeValue
    postprocessor = rhoi_diff
    outputs = console
  [../]
  [./creep_rate_max_diff]
    type = TimeExtremeValue
    postprocessor = creep_rate_diff
    outputs = console
  [../]
[]
[Outputs]
  csv = true
  file_base = 'verification_1e-3_out'
[]
(modules/solid_mechanics/test/tests/strain_adjusted_density/exact_2drz.i)
x_length = 0.2
y_length = 0.1
[Mesh]
  [mesh]
    type = ExamplePatchMeshGenerator
    dim = 2
    x_length = ${x_length}
    y_length = ${y_length}
  []
  coord_type = 'RZ'
[]
[Problem]
  solve = false
[]
[AuxVariables]
  [disp_r]
    initial_condition = 0
  []
  [disp_z]
    initial_condition = 0
  []
[]
[AuxKernels]
  [disp_r_aux]
    type = ParsedAux
    variable = disp_r
    expression = 't * 1e-2 * x'
    use_xyzt = true
  []
  [disp_z_aux]
    type = ParsedAux
    variable = disp_z
    expression = 't * 2e-2 * y'
    use_xyzt = true
  []
[]
[Materials]
  [some_density]
    type = ParsedMaterial
    property_name = some_density
    expression = t
    extra_symbols = t
    outputs = all
  []
  [density]
    type = StrainAdjustedDensity
    strain_free_density = some_density
    displacements = 'disp_r disp_z'
    outputs = all
  []
[]
[Executioner]
  type = Transient
  num_steps = 10
[]
[Postprocessors]
  [disp_r]
    type = SideAverageValue
    variable = disp_r
    boundary = right
  []
  [disp_z]
    type = SideAverageValue
    variable = disp_z
    boundary = top
  []
  [some_density]
    type = ElementAverageValue
    variable = some_density
  []
  [density]
    type = ElementAverageValue
    variable = density
  []
  [density_exact]
    type = ParsedPostprocessor
    pp_names = 'disp_r disp_z'
    expression = 't / (1 + disp_r / ${x_length})^2 / (1 + disp_z / ${y_length})'
    use_t = true
    outputs = console
  []
  [density_diff]
    type = ParsedPostprocessor
    expression = '(density_exact - density) / density_exact'
    pp_names = 'density density_exact'
    outputs = console
  []
  [density_diff_max]
    type = TimeExtremeValue
    postprocessor = density_diff
    value_type = ABS_MAX
  []
[]
[Outputs]
  csv = true
[]
(modules/solid_mechanics/test/tests/rom_stress_update/nonad_verification.i)
[Mesh]
  type = GeneratedMesh
  dim = 3
[]
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
  [temperature]
  []
[]
[AuxKernels]
  [temp_aux]
    type = FunctionAux
    variable = temperature
    function = temp_fcn
    execute_on = 'initial timestep_begin'
  []
[]
[Functions]
  [rhom_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 1
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
  [rhoi_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 2
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
  [vmJ2_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 3
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
  [evm_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 4
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
  [temp_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 5
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
  [rhom_soln_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 7
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
  [rhoi_soln_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 8
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
  [creep_rate_soln_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 10
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    strain = FINITE
    add_variables = true
    generate_output = 'vonmises_stress'
  []
[]
[BCs]
  [symmx]
    type = DirichletBC
    variable = disp_x
    boundary = left
    value = 0
  []
  [symmy]
    type = DirichletBC
    variable = disp_y
    boundary = bottom
    value = 0
  []
  [symmz]
    type = DirichletBC
    variable = disp_z
    boundary = back
    value = 0
  []
  [pull_x]
    type = DirichletBC
    variable = disp_x
    boundary = right
    value = 1e-5 # This is required to make a non-zero effective trial stress so radial return is engaged
  []
[]
[Materials]
  [elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    shear_modulus = 1e13
    poissons_ratio = 0.3
  []
  [stress]
    type = ComputeMultipleInelasticStress
    inelastic_models = rom_stress_prediction
  []
  [rom_stress_prediction]
    type =  SS316HLAROMANCEStressUpdateTest
    temperature = temperature
    effective_inelastic_strain_name = effective_creep_strain
    internal_solve_full_iteration_history = true
    apply_strain = false
    outputs = all
    wall_dislocation_density_forcing_function = rhoi_fcn
    cell_dislocation_density_forcing_function = rhom_fcn
    old_creep_strain_forcing_function = evm_fcn
    wall_input_window_low_failure = ERROR
    wall_input_window_high_failure = ERROR
    cell_input_window_low_failure = ERROR
    cell_input_window_high_failure = ERROR
    temperature_input_window_low_failure = ERROR
    temperature_input_window_high_failure = ERROR
    stress_input_window_low_failure = ERROR
    stress_input_window_high_failure = ERROR
    old_strain_input_window_low_failure = ERROR
    old_strain_input_window_high_failure = ERROR
    environment_input_window_low_failure = ERROR
    environment_input_window_high_failure = ERROR
    effective_stress_forcing_function = vmJ2_fcn
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  nl_abs_tol = 1e-1 # Nothing is really being solved here, so loose tolerances are okay
  dt = 1e-3
  end_time = 1e-2
  timestep_tolerance = 1e-3
[]
[Postprocessors]
  [extrapolation]
    type = ElementAverageValue
    variable = ROM_extrapolation
    outputs = console
  []
  [old_strain_in]
    type = FunctionValuePostprocessor
    function = evm_fcn
    execute_on = 'TIMESTEP_END initial'
    outputs = console
  []
  [temperature]
    type = ElementAverageValue
    variable = temperature
    outputs = console
  []
  [rhom]
    type = ElementAverageValue
    variable = cell_dislocations
  []
  [rhoi]
    type = ElementAverageValue
    variable = wall_dislocations
  []
  [creep_rate]
    type = ElementAverageValue
    variable = creep_rate
  []
  [rhom_in]
    type = FunctionValuePostprocessor
    function = rhom_fcn
    execute_on = 'TIMESTEP_END initial'
    outputs = console
  []
  [rhoi_in]
    type = FunctionValuePostprocessor
    function = rhoi_fcn
    execute_on = 'TIMESTEP_END initial'
    outputs = console
  []
  [vmJ2_in]
    type = FunctionValuePostprocessor
    function = vmJ2_fcn
    execute_on = 'TIMESTEP_END initial'
    outputs = console
  []
  [rhom_soln]
    type = FunctionValuePostprocessor
    function = rhom_soln_fcn
    outputs = console
  []
  [rhoi_soln]
    type = FunctionValuePostprocessor
    function = rhoi_soln_fcn
    outputs = console
  []
  [creep_rate_soln]
    type = FunctionValuePostprocessor
    function = creep_rate_soln_fcn
  []
  [rhom_diff]
    type = ParsedPostprocessor
    pp_names = 'rhom_soln rhom'
    expression = '(rhom_soln - rhom) / rhom_soln'
    outputs = console
  []
  [rhoi_diff]
    type = ParsedPostprocessor
    pp_names = 'rhoi_soln rhoi'
    expression = '(rhoi_soln - rhoi) / rhoi_soln'
    outputs = console
  []
  [creep_rate_diff]
    type = ParsedPostprocessor
    pp_names = 'creep_rate creep_rate_soln'
    expression = '(creep_rate_soln - creep_rate) / creep_rate_soln'
    outputs = console
  []
  [z_rhom_max_diff]
    type = TimeExtremeValue
    postprocessor = rhom_diff
    value_type = abs_max
  []
  [z_rhoi_max_diff]
    type = TimeExtremeValue
    postprocessor = rhoi_diff
    value_type = abs_max
  []
  [z_creep_rate_max_diff]
    type = TimeExtremeValue
    postprocessor = creep_rate_diff
    value_type = abs_max
  []
[]
[Outputs]
  csv = true
  execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
(test/tests/time_integrators/scalar/stiff.i)
# This is a linear model problem described in Frank et al, "Order
# results for implicit Runge-Kutta methods applied to stiff systems",
# SIAM J. Numerical Analysis, vol. 22, no. 3, 1985, pp. 515-534.
#
# Problems "PL" and "PNL" from page 527 of the paper:
# { dy1/dt = lambda*y1 + y2**p, y1(0) = -1/(lambda+p)
# { dy2/dt = -y2,               y2(0) = 1
#
# The exact solution is:
# y1 = -exp(-p*t)/(lambda+p)
# y2 = exp(-t)
#
# According to the following paragraph from the reference above, the
# p=1 version of this problem should not exhibit order reductions
# regardless of stiffness, while the nonlinear version (p>=2) will
# exhibit order reductions down to the "stage order" of the method for
# lambda large, negative.
# Use Dollar Bracket Expressions (DBEs) to set the value of LAMBDA in
# a single place.  You can also set this on the command line with
# e.g. LAMBDA=-4, but note that this does not seem to override the
# value set in the input file.  This is a bit different from the way
# that command line values normally work...
# Note that LAMBDA == Y2_EXPONENT is not allowed!
# LAMBDA = -10
# Y2_EXPONENT = 2
[Mesh]
  type = GeneratedMesh
  dim = 2
  xmin = 0
  xmax = 1
  ymin = 0
  ymax = 1
  nx = 1
  ny = 1
  elem_type = QUAD4
[]
[Variables]
  [./y1]
    family = SCALAR
    order = FIRST
  [../]
  [./y2]
    family = SCALAR
    order = FIRST
  [../]
[]
[ICs]
  [./y1_init]
    type = FunctionScalarIC
    variable = y1
    function = y1_exact
  [../]
  [./y2_init]
    type = FunctionScalarIC
    variable = y2
    function = y2_exact
  [../]
[]
[ScalarKernels]
  [./y1_time]
    type = ODETimeDerivative
    variable = y1
  [../]
  [./y1_space]
    type = ParsedODEKernel
    variable = y1
    expression = '-(${LAMBDA})*y1 - y2^${Y2_EXPONENT}'
    coupled_variables = 'y2'
  [../]
  [./y2_time]
    type = ODETimeDerivative
    variable = y2
  [../]
  [./y2_space]
    type = ParsedODEKernel
    variable = y2
    expression = 'y2'
  [../]
[]
[Executioner]
  type = Transient
  [./TimeIntegrator]
    type = LStableDirk2
  [../]
  start_time = 0
  end_time = 1
  dt = 0.125
  solve_type = 'PJFNK'
  nl_max_its = 6
  nl_abs_tol = 1.e-13
  nl_rel_tol = 1.e-32 # Force nl_abs_tol to be used.
  line_search = 'none'
[]
[Functions]
  [./y1_exact]
    type = ParsedFunction
    expression = '-exp(-${Y2_EXPONENT}*t)/(lambda+${Y2_EXPONENT})'
    symbol_names = 'lambda'
    symbol_values = ${LAMBDA}
  [../]
  [./y2_exact]
    type = ParsedFunction
    expression = exp(-t)
  [../]
[]
[Postprocessors]
  [./error_y1]
    type = ScalarL2Error
    variable = y1
    function = y1_exact
    execute_on = 'initial timestep_end'
  [../]
  [./error_y2]
    type = ScalarL2Error
    variable = y2
    function = y2_exact
    execute_on = 'initial timestep_end'
  [../]
  [./max_error_y1]
    # Estimate ||e_1||_{\infty}
    type = TimeExtremeValue
    value_type = max
    postprocessor = error_y1
    execute_on = 'initial timestep_end'
  [../]
  [./max_error_y2]
    # Estimate ||e_2||_{\infty}
    type = TimeExtremeValue
    value_type = max
    postprocessor = error_y2
    execute_on = 'initial timestep_end'
  [../]
  [./value_y1]
    type = ScalarVariable
    variable = y1
    execute_on = 'initial timestep_end'
  [../]
  [./value_y2]
    type = ScalarVariable
    variable = y2
    execute_on = 'initial timestep_end'
  [../]
  [./value_y1_abs_max]
    type = TimeExtremeValue
    value_type = abs_max
    postprocessor = value_y1
    execute_on = 'initial timestep_end'
  [../]
  [./value_y2_abs_max]
    type = TimeExtremeValue
    value_type = abs_max
    postprocessor = value_y2
    execute_on = 'initial timestep_end'
  [../]
[]
[Outputs]
  csv = true
[]
(test/tests/postprocessors/time_extreme_value/time_extreme_value.i)
[Mesh]
  type = GeneratedMesh
  dim = 2
  nx = 2
  ny = 2
[]
[Variables]
  [u]
  []
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = u
  []
  [time]
    type = TimeDerivative
    variable = u
  []
[]
[BCs]
  [left]
    type = FunctionDirichletBC
    variable = u
    boundary = left
    function = 'if(t<1.0,t,1.0)'
  []
  [right]
    type = FunctionDirichletBC
    variable = u
    boundary = right
    function = 'if(t<1.0,2.0-t,1.0)'
  []
[]
[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'
[]
[Postprocessors]
  active = 'max_nl_dofs nl_dofs'
  [max_nl_dofs]
    type = TimeExtremeValue
    value_type = max
    postprocessor = nl_dofs
    execute_on = 'initial timestep_end'
  []
  [time_of_max_nl_dofs]
    type = TimeExtremeValue
    value_type = max
    output_type = time
    postprocessor = nl_dofs
    execute_on = 'initial timestep_end'
  []
  [nl_dofs]
    type = NumDOFs
    system = NL
    execute_on = 'initial timestep_end'
  []
[]
[Adaptivity]
  marker = marker
  max_h_level = 2
  [Markers]
    [marker]
      type = ValueRangeMarker
      lower_bound = 0.7
      upper_bound = 1.3
      buffer_size = 0.2
      variable = u
      invert = true
      third_state = DO_NOTHING
    []
  []
[]
[Outputs]
  csv = true
[]
(modules/solid_mechanics/test/tests/rom_stress_update/ADverification.i)
[Mesh]
  type = GeneratedMesh
  dim = 3
[]
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
  [temperature]
  []
[]
[AuxKernels]
  [temp_aux]
    type = FunctionAux
    variable = temperature
    function = temp_fcn
    execute_on = 'initial timestep_begin'
  []
[]
[Functions]
  [rhom_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 1
    format = columns
    xy_in_file_only = false
    direction = right
  []
  [rhoi_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 2
    format = columns
    xy_in_file_only = false
    direction = right
  []
  [vmJ2_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 3
    format = columns
    xy_in_file_only = false
    direction = right
  []
  [evm_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 4
    format = columns
    xy_in_file_only = false
    direction = right
  []
  [temp_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 5
    format = columns
    xy_in_file_only = false
    direction = right
  []
  [rhom_soln_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 7
    format = columns
    xy_in_file_only = false
    direction = right
  []
  [rhoi_soln_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 8
    format = columns
    xy_in_file_only = false
    direction = right
  []
  [creep_rate_soln_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 10
    format = columns
    xy_in_file_only = false
    direction = right
  []
  [rhom_diff_fcn]
    type = ParsedFunction
    symbol_names = 'rhom_soln rhom'
    symbol_values = 'rhom_soln rhom'
    expression = 'abs(rhom_soln - rhom) / rhom_soln'
  []
  [rhoi_diff_fcn]
    type = ParsedFunction
    symbol_names = 'rhoi_soln rhoi'
    symbol_values = 'rhoi_soln rhoi'
    expression = 'abs(rhoi_soln - rhoi) / rhoi_soln'
  []
  [creep_rate_diff_fcn]
    type = ParsedFunction
    symbol_names = 'creep_rate_soln creep_rate'
    symbol_values = 'creep_rate_soln creep_rate'
    expression = 'abs(creep_rate_soln - creep_rate) / creep_rate_soln'
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    strain = FINITE
    add_variables = true
    generate_output = 'vonmises_stress'
    use_automatic_differentiation = true
  []
[]
[BCs]
  [symmx]
    type = ADDirichletBC
    variable = disp_x
    boundary = left
    value = 0
  []
  [symmy]
    type = ADDirichletBC
    variable = disp_y
    boundary = bottom
    value = 0
  []
  [symmz]
    type = ADDirichletBC
    variable = disp_z
    boundary = back
    value = 0
  []
  [pressure_x]
    type = ADPressure
    variable = disp_x
    boundary = right
    function = vmJ2_fcn
    factor = 0.5e6
  []
  [pressure_y]
    type = ADPressure
    variable = disp_y
    boundary = top
    function = vmJ2_fcn
    factor = -0.5e6
  []
  [pressure_z]
    type = ADPressure
    variable = disp_z
    boundary = front
    function = vmJ2_fcn
    factor = -0.5e6
  []
[]
[Materials]
  [elasticity_tensor]
    type = ADComputeIsotropicElasticityTensor
    youngs_modulus = 1e11
    poissons_ratio = 0.3
  []
  [stress]
    type = ADComputeMultipleInelasticStress
    inelastic_models = rom_stress_prediction
  []
  [rom_stress_prediction]
    type = ADSS316HLAROMANCEStressUpdateTest
    temperature = temperature
    effective_inelastic_strain_name = effective_creep_strain
    internal_solve_full_iteration_history = true
    outputs = all
    wall_dislocation_density_forcing_function = rhoi_fcn
    cell_dislocation_density_forcing_function = rhom_fcn
    old_creep_strain_forcing_function = evm_fcn
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-snes_ksp_ew -snes_converged_reason -ksp_converged_reason'# -ksp_error_if_not_converged -snes_error_if_not_converged'
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  line_search = 'none'
  automatic_scaling = true
  compute_scaling_once = false
  nl_abs_tol = 1e-10
  dt = 1e-3
  end_time = 1e-2
[]
[Postprocessors]
  [effective_strain_avg]
    type = ElementAverageValue
    variable = effective_creep_strain
    outputs = console
  []
  [temperature]
    type = ElementAverageValue
    variable = temperature
    outputs = console
  []
  [rhom]
    type = ElementAverageValue
    variable = cell_dislocations
  []
  [rhoi]
    type = ElementAverageValue
    variable = wall_dislocations
  []
  [vonmises_stress]
    type = ElementAverageValue
    variable = vonmises_stress
    outputs = console
  []
  [creep_rate]
    type = ElementAverageValue
    variable = creep_rate
  []
  [rhom_in]
    type = FunctionValuePostprocessor
    function = rhom_fcn
    execute_on = 'TIMESTEP_END initial'
    outputs = console
  []
  [rhoi_in]
    type = FunctionValuePostprocessor
    function = rhoi_fcn
    execute_on = 'TIMESTEP_END initial'
    outputs = console
  []
  [vmJ2_in]
    type = FunctionValuePostprocessor
    function = vmJ2_fcn
    execute_on = 'TIMESTEP_END initial'
    outputs = console
  []
  [rhom_soln]
    type = FunctionValuePostprocessor
    function = rhom_soln_fcn
    outputs = console
  []
  [rhoi_soln]
    type = FunctionValuePostprocessor
    function = rhoi_soln_fcn
    outputs = console
  []
  [creep_rate_soln]
    type = FunctionValuePostprocessor
    function = creep_rate_soln_fcn
    outputs = console
  []
  [rhom_diff]
    type = FunctionValuePostprocessor
    function = rhom_diff_fcn
    outputs = console
  []
  [rhoi_diff]
    type = FunctionValuePostprocessor
    function = rhoi_diff_fcn
    outputs = console
  []
  [creep_rate_diff]
    type = FunctionValuePostprocessor
    function = creep_rate_diff_fcn
    outputs = console
  []
  [rhom_max_diff]
    type = TimeExtremeValue
    postprocessor = rhom_diff
    outputs = console
  []
  [rhoi_max_diff]
    type = TimeExtremeValue
    postprocessor = rhoi_diff
    outputs = console
  []
  [creep_rate_max_diff]
    type = TimeExtremeValue
    postprocessor = creep_rate_diff
    outputs = console
  []
[]
[Outputs]
  csv = true
  file_base = 'verification_1e-3_out'
[]
(modules/solid_mechanics/test/tests/rom_stress_update/ad_verification.i)
[Mesh]
  type = GeneratedMesh
  dim = 3
[]
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
  [temperature]
  []
[]
[AuxKernels]
  [temp_aux]
    type = FunctionAux
    variable = temperature
    function = temp_fcn
    execute_on = 'initial timestep_begin'
  []
[]
[Functions]
  [rhom_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 1
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
  [rhoi_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 2
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
  [vmJ2_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 3
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
  [evm_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 4
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
  [temp_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 5
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
  [rhom_soln_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 7
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
  [rhoi_soln_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 8
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
  [creep_rate_soln_fcn]
    type = PiecewiseConstant
    data_file = ss316_verification_data.csv
    x_index_in_file = 0
    y_index_in_file = 10
    format = columns
    xy_in_file_only = false
    direction = LEFT_INCLUSIVE
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    strain = FINITE
    add_variables = true
    generate_output = 'vonmises_stress'
    use_automatic_differentiation = true
  []
[]
[BCs]
  [symmx]
    type = ADDirichletBC
    variable = disp_x
    boundary = left
    value = 0
  []
  [symmy]
    type = ADDirichletBC
    variable = disp_y
    boundary = bottom
    value = 0
  []
  [symmz]
    type = ADDirichletBC
    variable = disp_z
    boundary = back
    value = 0
  []
  [pull_x]
    type = ADDirichletBC
    variable = disp_x
    boundary = right
    value = 1e-5 # This is required to make a non-zero effective trial stress so radial return is engaged
  []
[]
[Materials]
  [elasticity_tensor]
    type = ADComputeIsotropicElasticityTensor
    shear_modulus = 1e13
    poissons_ratio = 0.3
  []
  [stress]
    type = ADComputeMultipleInelasticStress
    inelastic_models = rom_stress_prediction
  []
  [rom_stress_prediction]
    type = ADSS316HLAROMANCEStressUpdateTest
    temperature = temperature
    effective_inelastic_strain_name = effective_creep_strain
    internal_solve_full_iteration_history = true
    apply_strain = false
    outputs = all
    wall_dislocation_density_forcing_function = rhoi_fcn
    cell_dislocation_density_forcing_function = rhom_fcn
    old_creep_strain_forcing_function = evm_fcn
    wall_input_window_low_failure = ERROR
    wall_input_window_high_failure = ERROR
    cell_input_window_low_failure = ERROR
    cell_input_window_high_failure = ERROR
    temperature_input_window_low_failure = ERROR
    temperature_input_window_high_failure = ERROR
    stress_input_window_low_failure = ERROR
    stress_input_window_high_failure = ERROR
    old_strain_input_window_low_failure = ERROR
    old_strain_input_window_high_failure = ERROR
    environment_input_window_low_failure = ERROR
    environment_input_window_high_failure = ERROR
    effective_stress_forcing_function = vmJ2_fcn
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  nl_abs_tol = 1e-1 # Nothing is really being solved here, so loose tolerances are okay
  dt = 1e-3
  end_time = 1e-2
  timestep_tolerance = 1e-3
[]
[Postprocessors]
  [extrapolation]
    type = ElementAverageValue
    variable = ROM_extrapolation
    outputs = console
  []
  [old_strain_in]
    type = FunctionValuePostprocessor
    function = evm_fcn
    execute_on = 'TIMESTEP_END initial'
    outputs = console
  []
  [temperature]
    type = ElementAverageValue
    variable = temperature
    outputs = console
  []
  [rhom]
    type = ElementAverageValue
    variable = cell_dislocations
  []
  [rhoi]
    type = ElementAverageValue
    variable = wall_dislocations
  []
  [creep_rate]
    type = ElementAverageValue
    variable = creep_rate
  []
  [rhom_in]
    type = FunctionValuePostprocessor
    function = rhom_fcn
    execute_on = 'TIMESTEP_END initial'
    outputs = console
  []
  [rhoi_in]
    type = FunctionValuePostprocessor
    function = rhoi_fcn
    execute_on = 'TIMESTEP_END initial'
    outputs = console
  []
  [vmJ2_in]
    type = FunctionValuePostprocessor
    function = vmJ2_fcn
    execute_on = 'TIMESTEP_END initial'
    outputs = console
  []
  [rhom_soln]
    type = FunctionValuePostprocessor
    function = rhom_soln_fcn
    outputs = console
  []
  [rhoi_soln]
    type = FunctionValuePostprocessor
    function = rhoi_soln_fcn
    outputs = console
  []
  [creep_rate_soln]
    type = FunctionValuePostprocessor
    function = creep_rate_soln_fcn
  []
  [rhom_diff]
    type = ParsedPostprocessor
    pp_names = 'rhom_soln rhom'
    expression = '(rhom_soln - rhom) / rhom_soln'
    outputs = console
  []
  [rhoi_diff]
    type = ParsedPostprocessor
    pp_names = 'rhoi_soln rhoi'
    expression = '(rhoi_soln - rhoi) / rhoi_soln'
    outputs = console
  []
  [creep_rate_diff]
    type = ParsedPostprocessor
    pp_names = 'creep_rate creep_rate_soln'
    expression = '(creep_rate_soln - creep_rate) / creep_rate_soln'
    outputs = console
  []
  [z_rhom_max_diff]
    type = TimeExtremeValue
    postprocessor = rhom_diff
    value_type = abs_max
  []
  [z_rhoi_max_diff]
    type = TimeExtremeValue
    postprocessor = rhoi_diff
    value_type = abs_max
  []
  [z_creep_rate_max_diff]
    type = TimeExtremeValue
    postprocessor = creep_rate_diff
    value_type = abs_max
  []
[]
[Outputs]
  csv = true
  execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
(modules/stochastic_tools/examples/surrogates/combined/trans_diff_2d/trans_diff_sub.i)
[Functions]
  [src_func]
    type = ParsedFunction
    expression = "1000*sin(f*t)"
    symbol_names = 'f'
    symbol_values = '20'
  []
[]
[Mesh]
  [msh]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 100
    xmin = -0.5
    xmax = 0.5
    ny = 100
    ymin = -0.5
    ymax = 0.5
  []
  [source_domain]
    type = ParsedSubdomainMeshGenerator
    input = msh
    combinatorial_geometry = '(x<0.1 & x>-0.1) & (y<0.1 & y>-0.1)'
    block_id=1
  []
[]
[Variables]
  [T]
    initial_condition = 300
  []
[]
[Kernels]
  [diffusion]
    type = MatDiffusion
    variable = T
    diffusivity = diff_coeff
  []
  [source]
    type = BodyForce
    variable = T
    function = src_func
    block = 1
  []
  [time_deriv]
    type = TimeDerivative
    variable = T
  []
[]
[Materials]
  [diff_coeff]
    type = ParsedMaterial
    property_name = diff_coeff
    coupled_variables = 'T'
    constant_names = 'C'
    constant_expressions = 0.02
    expression = 'C * pow(300/T, 2)'
  []
[]
[BCs]
  [neumann_all]
    type = NeumannBC
    variable = T
    boundary = 'left right top bottom'
    value = 0
  []
[]
[Executioner]
  type = Transient
  num_steps = 100
  dt = 0.01
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
  nl_rel_tol = 1e-6
  l_abs_tol = 1e-6
  timestep_tolerance = 1e-6
[]
[Postprocessors]
  [max]
    type = NodalExtremeValue
    variable = T
  []
  [min]
    type = NodalExtremeValue
    variable = T
    value_type = min
  []
  [time_max]
    type = TimeExtremeValue
    postprocessor = max
  []
  [time_min]
    type = TimeExtremeValue
    postprocessor = min
    value_type = min
  []
[]
(modules/solid_mechanics/test/tests/strain_adjusted_density/exact_3D.i)
x_length = 0.2
y_length = 0.1
z_length = 0.3
[Mesh]
  [mesh]
    type = ExamplePatchMeshGenerator
    dim = 3
    x_length = ${x_length}
    y_length = ${y_length}
    z_length = ${z_length}
  []
[]
[Problem]
  solve = false
[]
[AuxVariables]
  [disp_x]
    initial_condition = 0
  []
  [disp_y]
    initial_condition = 0
  []
  [disp_z]
    initial_condition = 0
  []
[]
[AuxKernels]
  [disp_x_aux]
    type = ParsedAux
    variable = disp_x
    expression = 't * 1e-2 * x'
    use_xyzt = true
  []
  [disp_y_aux]
    type = ParsedAux
    variable = disp_y
    expression = 't * 2e-2 * y'
    use_xyzt = true
  []
  [disp_z_aux]
    type = ParsedAux
    variable = disp_z
    expression = 't * 3e-2 * z'
    use_xyzt = true
  []
[]
[Materials]
  [some_density]
    type = ParsedMaterial
    property_name = some_density
    expression = t
    extra_symbols = t
    outputs = all
  []
  [density]
    type = StrainAdjustedDensity
    strain_free_density = some_density
    displacements = 'disp_x disp_y disp_z'
    outputs = all
  []
[]
[Executioner]
  type = Transient
  num_steps = 10
[]
[Postprocessors]
  [disp_x]
    type = SideAverageValue
    variable = disp_x
    boundary = right
  []
  [disp_y]
    type = SideAverageValue
    variable = disp_y
    boundary = top
  []
  [disp_z]
    type = SideAverageValue
    variable = disp_z
    boundary = front
  []
  [some_density]
    type = ElementAverageValue
    variable = some_density
  []
  [density]
    type = ElementAverageValue
    variable = density
  []
  [density_exact]
    type = ParsedPostprocessor
    pp_names = 'disp_x disp_y disp_z'
    expression = 't / (1 + disp_x / ${x_length}) / (1 + disp_y / ${y_length}) / (1 + disp_z / ${z_length})'
    use_t = true
    outputs = console
  []
  [density_diff]
    type = ParsedPostprocessor
    expression = '(density_exact - density) / density_exact'
    pp_names = 'density density_exact'
    outputs = console
  []
  [density_diff_max]
    type = TimeExtremeValue
    postprocessor = density_diff
    value_type = ABS_MAX
  []
[]
[Outputs]
  csv = true
[]
(modules/solid_mechanics/test/tests/strain_adjusted_density/exact_rspherical.i)
x_length = 0.2
[Mesh]
  [mesh]
    type = GeneratedMeshGenerator
    dim = 1
    nx = 3
    xmax = ${x_length}
  []
  coord_type = RSPHERICAL
[]
[Problem]
  solve = false
[]
[AuxVariables]
  [disp_r]
    initial_condition = 0
  []
[]
[AuxKernels]
  [disp_r_aux]
    type = ParsedAux
    variable = disp_r
    expression = 't * 1e-2 * x'
    use_xyzt = true
  []
[]
[Materials]
  [some_density]
    type = ParsedMaterial
    property_name = some_density
    expression = t
    extra_symbols = t
    outputs = all
  []
  [density]
    type = StrainAdjustedDensity
    strain_free_density = some_density
    displacements = 'disp_r'
    outputs = all
  []
[]
[Executioner]
  type = Transient
  num_steps = 10
[]
[Postprocessors]
  [disp_r]
    type = SideAverageValue
    variable = disp_r
    boundary = right
  []
  [some_density]
    type = ElementAverageValue
    variable = some_density
  []
  [density]
    type = ElementAverageValue
    variable = density
  []
  [density_exact]
    type = ParsedPostprocessor
    pp_names = 'disp_r'
    expression = 't / (1 + disp_r / ${x_length})^3'
    use_t = true
    outputs = console
  []
  [density_diff]
    type = ParsedPostprocessor
    expression = '(density_exact - density) / density_exact'
    pp_names = 'density density_exact'
    outputs = console
  []
  [density_diff_max]
    type = TimeExtremeValue
    postprocessor = density_diff
    value_type = ABS_MAX
  []
[]
[Outputs]
  csv = true
[]