- variableThe name of the variable that this residual object operates onC++ Type:NonlinearVariableName Unit:(no unit assumed) Controllable:No Description:The name of the variable that this residual object operates on 
HeatConductionTimeDerivative
Description
HeatConductionTimeDerivative implements the time derivative term in the thermal energy conservation equation. The strong form is
(1)
where is density, is the volumetric isobaric specific heat, and is temperature.
This strong form does not assume that or are constant. Eq. Eq. (1) is the rigorously-derived form which can be used for and which are not constant.
The corresponding weak form using inner-product notation is
where is the approximate solution and is a finite element test function.
The density and specific heat are specified with material properties, and the "density_name" and "specific_heat" parameters are used to define the material property name providing those properties. The Jacobian will account for partial derivatives of and with respect to the unknown variable if the "density_name_dT" and "specific_heat_dT" property names are also provided.
See also HeatCapacityConductionTimeDerivative and SpecificHeatConductionTimeDerivative.
Example Input File Syntax
The case below demonstrates the use of HeatConductionTimeDerivative where the density and specific heat are defined by a HeatConductionMaterial (for specific heat) and a ParsedMaterial for density.
[Kernels<<<{"href": "../../syntax/Kernels/index.html"}>>>]
  [heat]
    type = HeatConduction<<<{"description": "Diffusive heat conduction term $-\\nabla\\cdot(k\\nabla T)$ of the thermal energy conservation equation", "href": "HeatConduction.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temp
  []
  [ie]
    type = HeatConductionTimeDerivative<<<{"description": "Time derivative term $\\rho c_p \\frac{\\partial T}{\\partial t}$ of the thermal energy conservation equation.", "href": "HeatConductionTimeDerivative.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temp
    specific_heat_dT<<<{"description": "Name of the material property for the derivative of the specific heat with respect to the variable."}>>> = specific_heat_dT
    density_name_dT<<<{"description": "Name of material property for the derivative of the density with respect to the variable."}>>> = density_dT
  []
[]
[Functions<<<{"href": "../../syntax/Functions/index.html"}>>>]
  [spheat]
    type = ParsedFunction<<<{"description": "Function created by parsing a string", "href": "../functions/MooseParsedFunction.html"}>>>
    expression<<<{"description": "The user defined function."}>>> = 't^4'
  []
  [thcond]
    type = ParsedFunction<<<{"description": "Function created by parsing a string", "href": "../functions/MooseParsedFunction.html"}>>>
    expression<<<{"description": "The user defined function."}>>> = 'exp(t)'
  []
[]
[Materials<<<{"href": "../../syntax/Materials/index.html"}>>>]
  [constant]
    type = HeatConductionMaterial<<<{"description": "General-purpose material model for heat conduction", "href": "../materials/HeatConductionMaterial.html"}>>>
    thermal_conductivity_temperature_function<<<{"description": "Thermal conductivity as a function of temperature."}>>> = thcond
    specific_heat_temperature_function<<<{"description": "Specific heat as a function of temperature."}>>> = spheat
    temp<<<{"description": "Coupled Temperature"}>>> = temp
  []
  [density]
    type = ParsedMaterial<<<{"description": "Parsed expression Material.", "href": "../materials/ParsedMaterial.html"}>>>
    property_name<<<{"description": "Name of the parsed material property"}>>> = density
    coupled_variables<<<{"description": "Vector of variables used in the parsed function"}>>> = temp
    expression<<<{"description": "Parsed function (see FParser) expression for the parsed material"}>>> = 'temp^3 + 2/temp'
  []
  [density_dT]
    type = ParsedMaterial<<<{"description": "Parsed expression Material.", "href": "../materials/ParsedMaterial.html"}>>>
    property_name<<<{"description": "Name of the parsed material property"}>>> = density_dT
    coupled_variables<<<{"description": "Vector of variables used in the parsed function"}>>> = temp
    expression<<<{"description": "Parsed function (see FParser) expression for the parsed material"}>>> = '3 * temp^2 - 2/temp/temp'
  []
[]Input Parameters
- blockThe list of blocks (ids or names) that this object will be appliedC++ Type:std::vector<SubdomainName> Controllable:No Description:The list of blocks (ids or names) that this object will be applied 
- density_namedensityProperty name of the density material propertyDefault:density C++ Type:MaterialPropertyName Unit:(no unit assumed) Controllable:No Description:Property name of the density material property 
- density_name_dTName of material property for the derivative of the density with respect to the variable.C++ Type:MaterialPropertyName Unit:(no unit assumed) Controllable:No Description:Name of material property for the derivative of the density with respect to the variable. 
- displacementsThe displacementsC++ Type:std::vector<VariableName> Unit:(no unit assumed) Controllable:No Description:The displacements 
- lumpingFalseTrue for mass matrix lumping, false otherwiseDefault:False C++ Type:bool Controllable:No Description:True for mass matrix lumping, false otherwise 
- matrix_onlyFalseWhether this object is only doing assembly to matrices (no vectors)Default:False C++ Type:bool Controllable:No Description:Whether this object is only doing assembly to matrices (no vectors) 
- specific_heatspecific_heatName of the volumetric isobaric specific heat material propertyDefault:specific_heat C++ Type:MaterialPropertyName Unit:(no unit assumed) Controllable:No Description:Name of the volumetric isobaric specific heat material property 
- specific_heat_dTName of the material property for the derivative of the specific heat with respect to the variable.C++ Type:MaterialPropertyName Unit:(no unit assumed) Controllable:No Description:Name of the material property for the derivative of the specific heat with respect to the variable. 
Optional Parameters
- absolute_value_vector_tagsThe tags for the vectors this residual object should fill with the absolute value of the residual contributionC++ Type:std::vector<TagName> Controllable:No Description:The tags for the vectors this residual object should fill with the absolute value of the residual contribution 
- extra_matrix_tagsThe extra tags for the matrices this Kernel should fillC++ Type:std::vector<TagName> Controllable:No Description:The extra tags for the matrices this Kernel should fill 
- extra_vector_tagsThe extra tags for the vectors this Kernel should fillC++ Type:std::vector<TagName> Controllable:No Description:The extra tags for the vectors this Kernel should fill 
- matrix_tagssystem timeThe tag for the matrices this Kernel should fillDefault:system time C++ Type:MultiMooseEnum Options:nontime, system, time Controllable:No Description:The tag for the matrices this Kernel should fill 
- vector_tagstimeThe tag for the vectors this Kernel should fillDefault:time C++ Type:MultiMooseEnum Options:nontime, time Controllable:No Description:The tag for the vectors this Kernel should fill 
Contribution To Tagged Field Data 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. 
- diag_save_inThe name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)C++ Type:std::vector<AuxVariableName> Unit:(no unit assumed) Controllable:No Description:The name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.) 
- enableTrueSet the enabled status of the MooseObject.Default:True C++ Type:bool Controllable:Yes Description:Set the enabled status of the MooseObject. 
- implicitTrueDetermines whether this object is calculated using an implicit or explicit formDefault:True C++ Type:bool Controllable:No Description:Determines whether this object is calculated using an implicit or explicit form 
- save_inThe name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)C++ Type:std::vector<AuxVariableName> Unit:(no unit assumed) Controllable:No Description:The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.) 
- search_methodnearest_node_connected_sidesChoice of search algorithm. All options begin by finding the nearest node in the primary boundary to a query point in the secondary boundary. In the default nearest_node_connected_sides algorithm, primary boundary elements are searched iff that nearest node is one of their nodes. This is fast to determine via a pregenerated node-to-elem map and is robust on conforming meshes. In the optional all_proximate_sides algorithm, primary boundary elements are searched iff they touch that nearest node, even if they are not topologically connected to it. This is more CPU-intensive but is necessary for robustness on any boundary surfaces which has disconnections (such as Flex IGA meshes) or non-conformity (such as hanging nodes in adaptively h-refined meshes).Default:nearest_node_connected_sides C++ Type:MooseEnum Options:nearest_node_connected_sides, all_proximate_sides Controllable:No Description:Choice of search algorithm. All options begin by finding the nearest node in the primary boundary to a query point in the secondary boundary. In the default nearest_node_connected_sides algorithm, primary boundary elements are searched iff that nearest node is one of their nodes. This is fast to determine via a pregenerated node-to-elem map and is robust on conforming meshes. In the optional all_proximate_sides algorithm, primary boundary elements are searched iff they touch that nearest node, even if they are not topologically connected to it. This is more CPU-intensive but is necessary for robustness on any boundary surfaces which has disconnections (such as Flex IGA meshes) or non-conformity (such as hanging nodes in adaptively h-refined meshes). 
- seed0The seed for the master random number generatorDefault:0 C++ Type:unsigned int Controllable:No Description:The seed for the master random number generator 
- use_displaced_meshTrueWhether 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:True 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/heat_transfer/test/tests/thin_layer_heat_transfer/transient_2d.i)
- (modules/heat_transfer/tutorials/introduction/therm_step03.i)
- (modules/functional_expansion_tools/examples/3D_volumetric_Cartesian_different_submesh/main.i)
- (modules/combined/test/tests/heat_convection/heat_convection_3d_test.i)
- (modules/heat_transfer/test/tests/joule_heating/transient_jouleheating.i)
- (modules/combined/test/tests/heat_convection/heat_convection_3d_tf_test.i)
- (modules/functional_expansion_tools/examples/2D_interface/sub.i)
- (tutorials/tutorial03_verification/app/test/tests/step04_mms/2d_main.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/line.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/block_w_bar.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/block_w_line.i)
- (modules/combined/test/tests/heat_convection/heat_convection_rz_test.i)
- (modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_force_step.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/strip.i)
- (modules/functional_expansion_tools/examples/2D_volumetric_Cartesian/main.i)
- (modules/combined/test/tests/restart-transient-from-ss-with-stateful/parent_tr.i)
- (modules/heat_transfer/tutorials/introduction/therm_step03a.i)
- (modules/combined/test/tests/inelastic_strain/creep/creep_nl1.i)
- (modules/functional_expansion_tools/examples/2D_interface_different_submesh/main.i)
- (modules/combined/tutorials/introduction/thermal_mechanical_contact/thermomech_cont_step02.i)
- (modules/functional_expansion_tools/examples/3D_volumetric_cylindrical_subapp_mesh_refine/main.i)
- (tutorials/tutorial03_verification/app/test/tests/step03_analytical/1d_analytical.i)
- (modules/functional_expansion_tools/examples/3D_volumetric_cylindrical/main.i)
- (modules/functional_expansion_tools/examples/3D_volumetric_Cartesian_direct/main.i)
- (modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_change.i)
- (modules/heat_transfer/test/tests/verify_against_analytical/1D_transient.i)
- (modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_hex_template.i)
- (modules/heat_transfer/test/tests/transient_heat/transient_heat_derivatives.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/rectangle_w_line.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/rectangle_w_strip.i)
- (modules/functional_expansion_tools/examples/3D_volumetric_Cartesian/main.i)
- (modules/functional_expansion_tools/examples/1D_volumetric_Cartesian/main.i)
- (modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_change_restart2.i)
- (modules/combined/test/tests/heat_convection/heat_convection_rz_tf_test.i)
- (modules/heat_transfer/test/tests/thin_layer_heat_transfer/transient_3d.i)
- (modules/functional_expansion_tools/examples/2D_interface_different_submesh/sub.i)
- (modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_quad_template.i)
- (modules/functional_expansion_tools/examples/2D_interface/main.i)
- (modules/combined/tutorials/introduction/thermal_mechanical/thermomech_step01.i)
- (modules/combined/tutorials/introduction/thermal_mechanical_contact/thermomech_cont_step01.i)
- (modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_change_restart1.i)
- (modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_edge_template.i)
Child Objects
density_name
Default:density
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:Property name of the density material property
specific_heat
Default:specific_heat
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:Name of the volumetric isobaric specific heat material property
density_name_dT
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:Name of material property for the derivative of the density with respect to the variable.
specific_heat_dT
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:Name of the material property for the derivative of the specific heat with respect to the variable.
(modules/heat_transfer/test/tests/transient_heat/transient_heat_derivatives.i)
[Mesh]
  [gen]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 10
    ny = 10
  []
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    initial_condition = 2
  []
[]
[Kernels]
  [heat]
    type = HeatConduction
    variable = temp
  []
  [ie]
    type = HeatConductionTimeDerivative
    variable = temp
    specific_heat_dT = specific_heat_dT
    density_name_dT = density_dT
  []
[]
[Functions]
  [spheat]
    type = ParsedFunction
    expression = 't^4'
  []
  [thcond]
    type = ParsedFunction
    expression = 'exp(t)'
  []
[]
[BCs]
  [bottom]
    type = DirichletBC
    variable = temp
    boundary = 1
    value = 4
  []
  [top]
    type = DirichletBC
    variable = temp
    boundary = 2
    value = 1
  []
[]
[Materials]
  [constant]
    type = HeatConductionMaterial
    thermal_conductivity_temperature_function = thcond
    specific_heat_temperature_function = spheat
    temp = temp
  []
  [density]
    type = ParsedMaterial
    property_name = density
    coupled_variables = temp
    expression = 'temp^3 + 2/temp'
  []
  [density_dT]
    type = ParsedMaterial
    property_name = density_dT
    coupled_variables = temp
    expression = '3 * temp^2 - 2/temp/temp'
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  num_steps = 1
  dt = .1
  nl_max_its = 10
  dtmin = .1
[]
[Postprocessors]
  [avg]
    type = ElementAverageValue
    variable = temp
  []
[]
[Outputs]
  csv = true
[]
(modules/heat_transfer/test/tests/thin_layer_heat_transfer/transient_2d.i)
[Mesh]
  [gen]
    type = GeneratedMeshGenerator
    nx = 10
    ny = 10
    dim = 2
  []
  [block1]
    type = SubdomainBoundingBoxGenerator
    block_id = 1
    bottom_left = '0 0 0'
    top_right = '0.5 1 0'
    input = gen
  []
  [block2]
    type = SubdomainBoundingBoxGenerator
    block_id = 2
    bottom_left = '0.5 0 0'
    top_right = '1 1 0'
    input = block1
  []
  [breakmesh]
    input = block2
    type = BreakMeshByBlockGenerator
    block_pairs = '1 2'
    split_interface = true
    add_interface_on_two_sides = true
  []
[]
[Variables]
  [temperature]
  []
[]
[Kernels]
  [time]
    type = HeatConductionTimeDerivative
    variable = temperature
  []
  [thermal_cond]
    type = HeatConduction
    variable = temperature
  []
[]
[InterfaceKernels]
  [thin_layer]
    type = ThinLayerHeatTransfer
    thermal_conductivity = thermal_conductivity_layer
    specific_heat = specific_heat_layer
    density = density_layer
    heat_source = heat_source_layer
    thickness = 0.01
    variable = temperature
    neighbor_var = temperature
    boundary = Block1_Block2
  []
[]
[BCs]
  [left_temp]
    type = DirichletBC
    value = 0
    variable = temperature
    boundary = left
  []
  [right_temp]
    type = DirichletBC
    value = 0
    variable = temperature
    boundary = right
  []
[]
[Materials]
  [thermal_cond]
    type = GenericConstantMaterial
    prop_names = 'thermal_conductivity specific_heat density'
    prop_values = '1 1 1'
  []
  [thermal_cond_layer]
    type = GenericConstantMaterial
    prop_names = 'thermal_conductivity_layer specific_heat_layer heat_source_layer density_layer'
    prop_values = '0.05 1 10000 1'
    boundary = Block1_Block2
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  nl_rel_tol = 1e-10
  nl_abs_tol = 1e-10
  dt = 0.05
  num_steps = 2
[]
[Outputs]
  print_linear_residuals = false
  exodus = true
[]
(modules/heat_transfer/tutorials/introduction/therm_step03.i)
#
# Single block thermal input with time derivative term
# https://mooseframework.inl.gov/modules/heat_transfer/tutorials/introduction/therm_step03.html
#
[Mesh]
  [generated]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 10
    ny = 10
    xmax = 2
    ymax = 1
  []
[]
[Variables]
  [T]
    initial_condition = 300.0
  []
[]
[Kernels]
  [heat_conduction]
    type = HeatConduction
    variable = T
  []
  [time_derivative]
    type = HeatConductionTimeDerivative
    variable = T
  []
[]
[Materials]
  [thermal]
    type = HeatConductionMaterial
    thermal_conductivity = 45.0
    specific_heat = 0.5
  []
  [density]
    type = GenericConstantMaterial
    prop_names = 'density'
    prop_values = 8000.0
  []
[]
[BCs]
  [t_left]
    type = DirichletBC
    variable = T
    value = 300
    boundary = 'left'
  []
  [t_right]
    type = FunctionDirichletBC
    variable = T
    function = '300+5*t'
    boundary = 'right'
  []
[]
[Executioner]
  type = Transient
  end_time = 5
  dt = 1
[]
[VectorPostprocessors]
  [t_sampler]
    type = LineValueSampler
    variable = T
    start_point = '0 0.5 0'
    end_point = '2 0.5 0'
    num_points = 20
    sort_by = x
  []
[]
[Outputs]
  exodus = true
  [csv]
    type = CSV
    file_base = therm_step03_out
    execute_on = final
  []
[]
(modules/functional_expansion_tools/examples/3D_volumetric_Cartesian_different_submesh/main.i)
# Derived from the example '3D_volumetric_Cartesian' with the following differences:
#
#   1) The number of x and y divisions in the sub app is not the same as the master app
#   2) The subapp mesh is skewed in x and z
[Mesh]
  type = GeneratedMesh
  dim = 3
  xmin = 0.0
  xmax = 10.0
  nx = 15
  ymin = 1.0
  ymax = 11.0
  ny = 25
  zmin = 2.0
  zmax = 12.0
  nz = 35
[]
[Variables]
  [./m]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[AuxVariables]
  [./s_in]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./diff_m]
    type = HeatConduction
    variable = m
  [../]
  [./time_diff_m]
    type = HeatConductionTimeDerivative
    variable = m
  [../]
  [./s_in] # Add in the contribution from the SubApp
    type = CoupledForce
    variable = m
    v = s_in
  [../]
[]
[AuxKernels]
  [./reconstruct_s_in]
    type = FunctionSeriesToAux
    variable = s_in
    function = FX_Basis_Value_Main
  [../]
[]
[Materials]
  [./Unobtanium]
    type = GenericConstantMaterial
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '1.0                  1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  [../]
[]
[ICs]
  [./start_m]
    type = ConstantIC
    variable = m
    value = 1
  [../]
[]
[BCs]
  [./surround]
    type = DirichletBC
    variable = m
    value = 1
    boundary = 'top bottom left right front back'
  [../]
[]
[Functions]
  [./FX_Basis_Value_Main]
    type = FunctionSeries
    series_type = Cartesian
    orders = '3   4   5'
    physical_bounds = '0.0  10.0    1.0 11.0    2.0 12.0'
    x = Legendre
    y = Legendre
    z = Legendre
  [../]
[]
[UserObjects]
  [./FX_Value_UserObject_Main]
    type = FXVolumeUserObject
    function = FX_Basis_Value_Main
    variable = m
  [../]
[]
[Postprocessors]
  [./average_value]
    type = ElementAverageValue
    variable = m
  [../]
  [./peak_value]
    type = ElementExtremeValue
    value_type = max
    variable = m
  [../]
  [./picard_iterations]
    type = NumFixedPointIterations
  [../]
[]
[Executioner]
  type = Transient
  num_steps = 10
  dt = 0.5
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
  fixed_point_max_its = 30
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-9
  fixed_point_rel_tol = 1e-8
  fixed_point_abs_tol = 1e-9
[]
[Outputs]
  exodus = true
[]
[MultiApps]
  [./FXTransferApp]
    type = TransientMultiApp
    input_files = sub.i
  [../]
[]
[Transfers]
  [./ValueToSub]
    type = MultiAppFXTransfer
    to_multi_app = FXTransferApp
    this_app_object_name = FX_Value_UserObject_Main
    multi_app_object_name = FX_Basis_Value_Sub
  [../]
  [./ValueToMe]
    type = MultiAppFXTransfer
    from_multi_app = FXTransferApp
    this_app_object_name = FX_Basis_Value_Main
    multi_app_object_name = FX_Value_UserObject_Sub
  [../]
[]
(modules/combined/test/tests/heat_convection/heat_convection_3d_test.i)
# Test cases for convective boundary conditions.
# Input file for htc_3dtest1
# TKLarson
# 11/02/11
# Revision 0
#
# Goals of this test are:
#  1) show that the 'fluid' temperature for convective boundary condition
#    is behaving as expected/desired
#  2) show that expected results ensue from application of convective boundary conditions
# Convective boundary condition:
#  q = h*A*(Tw - Tf)
#  where
#    q - heat transfer rate (w)
#    h - heat transfer coefficient (w/m^2-K)
#    A - surface area (m^2)
#    Tw - surface temperature (K)
#    Tf - fluid temperature adjacent to the surface (K)
# The heat transfer coefficient (h) is input as a variable called 'rate'
# Tf is a two valued function specified by 'initial' and 'final' along with a variable
#  called 'duration,' the length of time in seconds that it takes initial to linearly ramp
#  to 'final.'
# The mesh for this test case is concocted from an ASTM standard for the so-called Brazillian Cylinder test
# (ASTM International, Standard Test Method for Splitting Tensile Strength of Cylindrical Concrete
# Specimens, C 496/C 496M-04, 2004).  I turned a cylinder model into a rectangular parallelpiped,
# because I already had the cylinder model.
# The model is 3-d xyz coordinates.
#
# Brazillian Parallelpiped sample dimensions:
#       z = 10.3 cm, 0.103 m, (4 in)
#       y = 5.08 cm, 0.0508 m, (2 in)
#       x = 5.08 cm, 0.0508 m, (2 in)
# Material properties are:
#   density = 2405.28 km/m^3
#   specific heat = 826.4 J/kg-K
#   thermal conductivity 1.937 w/m-K
#  alpha (thermal conductivity/(density*specific heat) is then 9.74e-7 m^2/s
#
# Initial parallelpiped temperature is room temperature 294.26 K (70 F)
# The initial fluid temperature is room temperature. We will ramp it to 477.6 K (400 F) in 10 minutes.
# We will use an h representative of natural convection conditions as the boundary condition for all sides
# on the parallelpiped.  Akin to putting the object in an oven and turning the oven on.
#  This is essentially a thermal soak.
#
# What we expect for this problem:
#  1) Use of h = 284 w/m^2-K (50 BTU/hr-ft^2-F) should cause the parallelpiped to slowly heat up to 477K.
#  2) The fluid temperature should rise from initial (294.26 K) to final (477.6 K) in 600 s.
#  3) 1) and 2) should show the convective BC is working as desired.
#
[Mesh]    # Mesh Start
# 5cm x 5cm x 10cm parallelpiped not so detailed mesh, 4 elements each end, 8 elements each long face
# Only one block (Block 1), all concrete
# Sideset definitions:
#    1 - xy plane at z=0,
#    2 - xy plane at z=-0.103,
#    3 - xz plane at y=0,
#    4 - yz plane at x=0,
#    5 - xz plane at y=0.0508,
#    6 - yz plane at x=0.0508
  file = heat_convection_3d_mesh.e
#
[]    # Mesh END
[Variables]  # Variables Start
  [./temp]
    order = FIRST
    family = LAGRANGE
    initial_condition = 294.26 # Initial parallelpiped temperature
  [../]
[]    # Variables END
[Kernels]  # Kernels Start
  [./heat]
#    type = HeatConductionRZ
     type = HeatConduction
     variable = temp
  [../]
  [./heat_ie]
#  type = HeatConductionTimeDerivativeRZ
  type = HeatConductionTimeDerivative
  variable = temp
  [../]
[]    # Kernels END
[BCs]    # Boundary Conditions Start
# Heat transfer coefficient on outer parallelpiped radius and ends
  [./convective_clad_surface]    # Convective Start
#         type = ConvectiveFluxRZ  # Convective flux, e.g. q'' = h*(Tw - Tf)
         type = ConvectiveFluxBC  # Convective flux, e.g. q'' = h*(Tw - Tf)
         boundary = '1 2 3 4 5 6'  # BC applied on top, along length, and bottom
         variable = temp
   rate = 284.      # convective heat transfer coefficient (w/m^2-K)[50 BTU/hr-ft^2-F]
         initial = 294.26    # initial ambient (lab or oven) temperature (K)
         final = 477.6      # final ambient (lab or oven) temperature (K)
   duration = 600.    # length of time in seconds that it takes the ambient
           #     temperature to ramp from initial to final
  [../]          # Convective End
[]    # BCs END
[Materials]    # Materials Start
  [./thermal]
    type = HeatConductionMaterial
    block = 1
    specific_heat = 826.4
    #thermal_conductivity = 1.937  # this makes alpha 9.74e-7 m^2/s
    thermal_conductivity = 193.7  # this makes alpha 9.74e-5 m^2/s
          # above conductivity arbitrarily increased by 2 decades to make the
          #   object soak faster for the present purposes
  [../]
  [./density]
    type = Density
    block = 1
    density = 2405.28
  [../]
[]      # Materials END
[Executioner]    # Executioner Start
   type = Transient
#   type = Steady
  #Preconditioned JFNK (default)
  solve_type = 'PJFNK'
   petsc_options = '-snes_ksp_ew '
   petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
   petsc_options_value = '70 hypre boomeramg'
   l_max_its = 60
   nl_rel_tol = 1e-8
   nl_abs_tol = 1e-10
   l_tol = 1e-5
   start_time = 0.0
  dt = 60.
  num_steps = 20  # Total run time 1200 s
[]      # Executioner END
[Outputs]    # Output Start
  # Output Start
  file_base = out_3d
  exodus = true
[]      # Output END
#      # Input file END
(modules/heat_transfer/test/tests/joule_heating/transient_jouleheating.i)
[Mesh]
  type = GeneratedMesh
  dim = 2
  nx = 10
  ny = 10
  xmax = 5
  ymax = 5
[]
[Variables]
  [./T]
    initial_condition = 293.0 #in K
  [../]
  [./elec]
  [../]
[]
[Kernels]
  [./HeatDiff]
    type = HeatConduction
    variable = T
  [../]
  [./HeatTdot]
    type = HeatConductionTimeDerivative
    variable = T
  [../]
  [./HeatSrc]
    type = JouleHeatingSource
    variable = T
    elec = elec
  [../]
  [./electric]
    type = HeatConduction
    variable = elec
    diffusion_coefficient = electrical_conductivity
  [../]
[]
[BCs]
  [./lefttemp]
    type = DirichletBC
    boundary = left
    variable = T
    value = 293 #in K
  [../]
  [./elec_left]
    type = DirichletBC
    variable = elec
    boundary = left
    value = 1 #in V
  [../]
  [./elec_right]
    type = DirichletBC
    variable = elec
    boundary = right
    value = 0
  [../]
[]
[Materials]
  [./k]
    type = GenericConstantMaterial
    prop_names = 'thermal_conductivity'
    prop_values = '397.48' #copper in W/(m K)
    block = 0
  [../]
  [./cp]
    type = GenericConstantMaterial
    prop_names = 'specific_heat'
    prop_values = '385.0' #copper in J/(kg K)
    block = 0
  [../]
  [./rho]
    type = GenericConstantMaterial
    prop_names = 'density'
    prop_values = '8920.0' #copper in kg/(m^3)
    block = 0
  [../]
  [./sigma] #copper is default material
    type = ElectricalConductivity
    temperature = T
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  scheme = bdf2
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -ksp_grmres_restart -sub_ksp_type -sub_pc_type -pc_asm_overlap'
  petsc_options_value = 'asm         101   preonly   ilu      1'
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  l_tol = 1e-4
  dt = 1
  end_time = 5
  automatic_scaling = true
[]
[Outputs]
  exodus = true
  perf_graph = true
[]
(modules/combined/test/tests/heat_convection/heat_convection_3d_tf_test.i)
# Test cases for convective boundary conditions.
# Input file for htc_3dtest0
# TKLarson
# 11/02/11
# Revision 0
#
# Goals of this test are:
#  1) show that the 'fluid' temperature for convective boundary condition
#    is behaving as expected/desired
#  2) show that expected results ensue from application of convective boundary conditions
# Convective boundary condition:
#  q = h*A*(Tw - Tf)
#  where
#    q - heat transfer rate (w)
#    h - heat transfer coefficient (w/m^2-K)
#    A - surface area (m^2)
#    Tw - surface temperature (K)
#    Tf - fluid temperature adjacent to the surface (K)
# The heat transfer coefficient (h) is input as a variable called 'rate'
# Tf is a two valued function specified by 'initial' and 'final' along with a variable
#  called 'duration,' the length of time in seconds that it takes initial to linearly ramp
#  to 'final.'
# The mesh for this test case is concocted from an ASTM standard for the so-called Brazillian Cylinder test
# (ASTM International, Standard Test Method for Splitting Tensile Strength of Cylindrical Concrete
# Specimens, C 496/C 496M-04, 2004).  I turned a cylinder model into a rectangular parallelpiped,
# because I already had the cylinder model.
# The model is 3-d xyz coordinates.
#
# Brazillian Parallelpiped sample dimensions:
#       z = 10.3 cm, 0.103 m, (4 in)
#       y = 5.08 cm, 0.0508 m, (2 in)
#       x = 5.08 cm, 0.0508 m, (2 in)
# Material properties are:
#   density = 2405.28 km/m^3
#   specific heat = 826.4 J/kg-K
#   thermal conductivity 1.937 w/m-K
#  alpha (thermal conductivity/(density*specific heat) is then 9.74e-7 m^2/s
#
# Initial parallelpiped temperature is room temperature 294.26 K (70 F)
# The initial fluid temperature is room temperature. We will ramp it to 477.6 K (400 F) in 10 minutes.
# We will use a very large h (1000000) to make the surface temperature mimick the fluid temperature.
# What we expect for this problem:
#  1) Use of h = 1000000 should cause the parallelpiped surface temperature to track the fluid temperature
#  2) The fluid temperature should rise from initial (294.26 K) to final (477.6 K) in 600 s.
#  3) 1) and 2) should prove that the Tf boundary condition is ramping as desired.
# Note, we do the above because there is no way to plot a variable that is not on a mesh node!
[Mesh]    # Mesh Start
# 5cm x 5cm x 10cm parallelpiped not so detailed mesh, 4 elements each end, 8 elements each long face
# Only one block (Block 1), all concrete
# Sideset definitions:
#    1 - xy plane at z=0,
#    2 - xy plane at z=-0.103,
#    3 - xz plane at y=0,
#    4 - yz plane at x=0,
#    5 - xz plane at y=0.0508,
#    6 - yz plane at x=0.0508
  file = heat_convection_3d_mesh.e
#
[]    # Mesh END
[Variables]  # Variables Start
  [./temp]
    order = FIRST
    family = LAGRANGE
    initial_condition = 294.26 # Initial parallelpiped temperature
  [../]
[]    # Variables END
[Kernels]  # Kernels Start
  [./heat]
#    type = HeatConductionRZ
     type = HeatConduction
     variable = temp
  [../]
  [./heat_ie]
#  type = HeatConductionTimeDerivativeRZ
  type = HeatConductionTimeDerivative
  variable = temp
  [../]
[]    # Kernels END
[BCs]    # Boundary Conditions Start
# Heat transfer coefficient on outer parallelpiped radius and ends
  [./convective_clad_surface]    # Convective Start
#         type = ConvectiveFluxRZ  # Convective flux, e.g. q'' = h*(Tw - Tf)
         type = ConvectiveFluxBC  # Convective flux, e.g. q'' = h*(Tw - Tf)
         boundary = '1 2 3 4 5 6'  # BC applied on top, along length, and bottom
         variable = temp
   rate = 1000000.   # convective heat transfer coefficient (w/m^2-K)[176000 "]
#         #  the above h is ~ infinity for present purposes
         initial = 294.26         # initial ambient (lab or oven) temperature (K)
         final = 477.6            # final ambient (lab or oven) temperature (K)
   duration = 600.   # length of time in seconds that it takes the ambient
         #     temperature to ramp from initial to final
  [../]          # Convective End
[]    # BCs END
[Materials]    # Materials Start
  [./thermal]
    type = HeatConductionMaterial
    block = 1
    specific_heat = 826.4
    thermal_conductivity = 1.937  # this makes alpha 9.74e-7 m^2/s
  [../]
  [./density]
    type = Density
    block = 1
    density = 2405.28
  [../]
[]      # Materials END
[Executioner]    # Executioner Start
   type = Transient
#   type = Steady
  #Preconditioned JFNK (default)
  solve_type = 'PJFNK'
   petsc_options = '-snes_ksp_ew '
   petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
   petsc_options_value = '70 hypre boomeramg'
   l_max_its = 60
   nl_rel_tol = 1e-8
   nl_abs_tol = 1e-10
   l_tol = 1e-5
   start_time = 0.0
  dt = 60.
  num_steps = 20  # Total run time 1200 s
[]      # Executioner END
[Outputs]    # Output Start
  # Output Start
  file_base = out_3d_tf
  exodus = true
[]      # Output END
#      # Input file END
(modules/functional_expansion_tools/examples/2D_interface/sub.i)
# Basic example coupling a master and sub app at an interface in a 2D model.
# The master app provides a flux term to the sub app via Functional Expansions, which then performs
# its calculations.  The sub app's interface conditions, both value and flux, are transferred back
# to the master app
[Mesh]
  type = GeneratedMesh
  dim = 2
  xmin = 0.4
  xmax = 2.4
  nx = 30
  ymin = 0.0
  ymax = 10.0
  ny = 20
[]
[Variables]
  [./s]
  [../]
[]
[Kernels]
  [./diff_s]
    type = HeatConduction
    variable = s
  [../]
  [./time_diff_s]
    type = HeatConductionTimeDerivative
    variable = s
  [../]
[]
[Materials]
  [./Unobtanium]
    type = GenericConstantMaterial
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '1.0                  1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  [../]
[]
[ICs]
  [./start_s]
    type = ConstantIC
    value = 2
    variable = s
  [../]
[]
[BCs]
  [./bottom]
    type = DirichletBC
    variable = s
    boundary = bottom
    value = 0.1
  [../]
  [./interface_flux]
    type = FXFluxBC
    boundary = left
    variable = s
    function = FX_Basis_Flux_Sub
  [../]
[]
[Functions]
  [./FX_Basis_Value_Sub]
    type = FunctionSeries
    series_type = Cartesian
    orders = '4'
    physical_bounds = '0.0 10'
    y = Legendre
  [../]
  [./FX_Basis_Flux_Sub]
    type = FunctionSeries
    series_type = Cartesian
    orders = '5'
    physical_bounds = '0.0 10'
    y = Legendre
  [../]
[]
[UserObjects]
  [./FX_Value_UserObject_Sub]
    type = FXBoundaryValueUserObject
    function = FX_Basis_Value_Sub
    variable = s
    boundary = left
  [../]
  [./FX_Flux_UserObject_Sub]
    type = FXBoundaryFluxUserObject
    function = FX_Basis_Flux_Sub
    variable = s
    boundary = left
    diffusivity = thermal_conductivity
  [../]
[]
[Executioner]
  type = Transient
  num_steps = 10
  dt = 1.0
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
(tutorials/tutorial03_verification/app/test/tests/step04_mms/2d_main.i)
[Mesh]
  [gen]
    type = GeneratedMeshGenerator
    dim = 2
    ymax = 0
    ymin = -0.2
    nx = 20
    ny = 4
  []
[]
[Variables]
  [T]
  []
[]
[ICs]
  [T_O]
    type = ConstantIC
    variable = T
    value = 263.15
  []
[]
[Functions]
  [source]
    type = ParsedFunction
    symbol_names = 'hours shortwave kappa'
    symbol_values = '9     650      40'
    expression = 'shortwave*sin(0.5*x*pi)*exp(kappa*y)*sin(1/(hours*3600)*pi*t)'
  []
[]
[Kernels]
  [T_time]
    type = HeatConductionTimeDerivative
    variable = T
    density_name = 150
    specific_heat = 2000
  []
  [T_cond]
    type = HeatConduction
    variable = T
    diffusion_coefficient = 0.01
  []
  [T_source]
    type = HeatSource
    variable = T
    function = source
  []
[]
[BCs]
  [top]
    type = NeumannBC
    boundary = top
    variable = T
    value = -5
  []
  [bottom]
    type = DirichletBC
    boundary = bottom
    variable = T
    value = 263.15
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  dt = 600 # 10 min
  end_time = 32400 # 9 hour
[]
[Outputs]
  exodus = true
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/line.i)
[Mesh]
  [gmg]
    type = GeneratedMeshGenerator
    dim = 1
    nx = 10
    xmax = 0.5
    xmin = -0.5
  []
  [left_line]
    type = SubdomainBoundingBoxGenerator
    input = gmg
    bottom_left = '-0.5 0 0'
    top_right = '0 0 0'
    block_id = 1
    block_name = 'left_line'
    location = INSIDE
  []
  [right_line]
    type = SubdomainBoundingBoxGenerator
    input = left_line
    bottom_left = '0 0 0'
    top_right = '0.5 0 0'
    block_id = 2
    block_name = 'right_line'
    location = INSIDE
  []
[]
[Variables]
  [temperature]
  []
[]
[Kernels]
  [time_derivative]
    # type = HeatConductionTimeDerivative
    type = TrussHeatConductionTimeDerivative
    variable = temperature
    area = area
  []
  [heat_conduction]
    # type = HeatConduction
    type = TrussHeatConduction
    variable = temperature
    area = area
  []
[]
[AuxVariables]
  [area]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [area]
    type = ConstantAux
    variable = area
    value = 0.1
    execute_on = 'initial timestep_begin'
  []
[]
[Materials]
  [left_line]
    type = GenericConstantMaterial
    block = 'left_line'
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '0.1                 1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  []
  [right_line]
    type = GenericConstantMaterial
    block = 'right_line'
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '5.0e-3                  1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  []
[]
[BCs]
  [right]
    type = FunctionDirichletBC
    variable = temperature
    boundary = 'right'
    function = '10*t'
  []
[]
[VectorPostprocessors]
  [center]
    type = LineValueSampler
    start_point = '-0.5 0 0'
    end_point = '0.5 0 0'
    num_points = 40
    variable = 'temperature'
    sort_by = id
  []
[]
[Executioner]
  type = Transient
  start_time = 0
  dt = 1
  end_time = 1
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
  [csv]
    type = CSV
    file_base = 'csv/line'
    time_data = true
  []
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/block_w_bar.i)
[Mesh]
  [whole]
    type = GeneratedMeshGenerator
    dim = 3
    nx = 3
    ny = 50
    nz = 1
    xmin = -0.5
    xmax = 0.5
    ymin = -1.25
    ymax = 1.25
    zmin = -0.04
    zmax = 0.04
  []
  [bar]
    type = SubdomainBoundingBoxGenerator
    input = whole
    bottom_left = '-0.6 -0.05 -0.04'
    top_right = '0.6 0.05 0.04'
    block_id = 2
    block_name = 'bar'
    location = INSIDE
  []
  [block]
    type = SubdomainBoundingBoxGenerator
    input = bar
    bottom_left = '-0.6 -0.05 -0.04'
    top_right = '0.6 0.05 0.04'
    block_id = 1
    block_name = 'block'
    location = OUTSIDE
  []
[]
[Variables]
  [temperature]
  []
[]
[Kernels]
  [time_derivative]
    type = HeatConductionTimeDerivative
    variable = temperature
  []
  [heat_conduction]
    type = HeatConduction
    variable = temperature
  []
[]
[Materials]
  [block]
    type = GenericConstantMaterial
    block = 'block'
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '1.0                 1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  []
  [line]
    type = GenericConstantMaterial
    block = 'bar'
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '10.0                 1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  []
[]
[BCs]
  [right]
    type = FunctionDirichletBC
    variable = temperature
    boundary = 'right'
    function = '10*t'
  []
[]
[VectorPostprocessors]
  [x_n0_25]
    type = LineValueSampler
    start_point = '-0.25 0 0'
    end_point = '-0.25 1.25 0'
    num_points = 100
    variable = 'temperature'
    sort_by = id
  []
  [x_0_25]
    type = LineValueSampler
    start_point = '0.25 0 0'
    end_point = '0.25 1.25 0'
    num_points = 100
    variable = 'temperature'
    sort_by = id
  []
[]
[Executioner]
  type = Transient
  start_time = 0
  dt = 1
  end_time = 1
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
  [csv]
    type = CSV
    file_base = 'csv/block_w_bar'
    time_data = true
  []
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/block_w_line.i)
[Mesh]
  parallel_type = 'replicated'
  [block]
    type = GeneratedMeshGenerator
    dim = 3
    nx = 3
    ny = 50
    nz = 1
    xmin = -0.5
    xmax = 0.5
    ymin = -1.25
    ymax = 1.25
    zmin = -0.04
    zmax = 0.04
    boundary_name_prefix = block
  []
  [block_id]
    type = SubdomainIDGenerator
    input = block
    subdomain_id = 1
  []
  [line]
    type = GeneratedMeshGenerator
    dim = 1
    xmin = -0.5
    xmax = 0.5
    nx = 10
    boundary_name_prefix = line
    boundary_id_offset = 10
  []
  [line_id]
    type = SubdomainIDGenerator
    input = line
    subdomain_id = 2
  []
  [combined]
    type = MeshCollectionGenerator
    inputs = 'block_id line_id'
  []
  [line_rename]
    type = RenameBlockGenerator
    input = combined
    old_block = '1 2'
    new_block = 'block line'
  []
[]
[Variables]
  [temperature]
  []
[]
[Kernels]
  [time_derivative]
    type = HeatConductionTimeDerivative
    variable = temperature
    block = 'block'
  []
  [heat_conduction]
    type = HeatConduction
    variable = temperature
    block = 'block'
  []
  [time_derivative_line]
    type = TrussHeatConductionTimeDerivative
    variable = temperature
    area = area
    block = 'line'
  []
  [heat_conduction_line]
    type = TrussHeatConduction
    variable = temperature
    area = area
    block = 'line'
  []
[]
[AuxVariables]
  [area]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [area]
    type = ConstantAux
    variable = area
    value = 0.008
    execute_on = 'initial timestep_begin'
  []
[]
[Constraints]
  [equalvalue]
    type = EqualValueEmbeddedConstraint
    secondary = 'line'
    primary = 'block'
    penalty = 1e6
    formulation = kinematic
    primary_variable = temperature
    variable = temperature
  []
[]
[Materials]
  [block]
    type = GenericConstantMaterial
    block = 'block'
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '1.0                 1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  []
  [line]
    type = GenericConstantMaterial
    block = 'line'
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '10.0                 1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  []
[]
[BCs]
  [right]
    type = FunctionDirichletBC
    variable = temperature
    boundary = 'block_right line_right'
    function = '10*t'
  []
[]
[VectorPostprocessors]
  [x_n0_25]
    type = LineValueSampler
    start_point = '-0.25 0 0'
    end_point = '-0.25 1.25 0'
    num_points = 100
    variable = 'temperature'
    sort_by = id
  []
  [x_0_25]
    type = LineValueSampler
    start_point = '0.25 0 0'
    end_point = '0.25 1.25 0'
    num_points = 100
    variable = 'temperature'
    sort_by = id
  []
[]
[Executioner]
  type = Transient
  start_time = 0
  dt = 1
  end_time = 1
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  nl_rel_tol = 1e-12
[]
[Outputs]
  exodus = true
  [csv]
    type = CSV
    file_base = 'csv/block_w_line'
    time_data = true
  []
[]
(modules/combined/test/tests/heat_convection/heat_convection_rz_test.i)
# Test cases for convective boundary conditions. TKLarson, 11/01/11, rev. 0.
# Input file for htc_2dtest1
# TKLarson
# 11/01/11
# Revision 0
#
# Goals of this test are:
#  1) show that expected results ensue from application of convective boundary conditions
# Convective boundary condition:
#  q = h*A*(Tw - Tf)
#  where
#    q - heat transfer rate (w)
#    h - heat transfer coefficient (w/m^2-K)
#    A - surface area (m^2)
#    Tw - surface temperature (K)
#    Tf - fluid temperature adjacent to the surface (K)
# The heat transfer coefficient (h) is input as a variable called 'rate'
# Tf is a two valued function specified by 'initial' and 'final' along with a variable
#  called 'duration,' the length of time in seconds that it takes initial to linearly ramp
#  to 'final.'
# The mesh for this test case is based on an ASTM standard for the so-called Brazillian Cylinder test
# (ASTM International, Standard Test Method for Splitting Tensile Strength of Cylindrical Concrete
# Specimens, C 496/C 496M-04, 2004) (because I already had a version of the model).  While the
# Brazillian Cylinder test is for dynamic tensile testing of concrete, the model works for the present
# purposes.  The model is 2-d RZ coordinates.
#
# Brazillian Cylinder sample dimensions:
#       L = 20.3 cm, 0.203 m, (8 in)
#       r = 5.08 cm, 0.0508 m, (2 in)
# Material properties are:
#   density = 2405.28 km/m^3
#   specific heat = 826.4 J/kg-K
#   thermal conductivity 1.937 w/m-K
#  alpha (thermal conductivity/(density*specific heat) is then 9.74e-7 m^2/s
#
# Initial cylinder temperature is room temperature 294.26 K (70 F)
# The initial fluid temperature is room temperature. We will ramp it to 477.6 K (400 F) in 10 minutes.
# We will use a natural convection h (284 w/m^2-K (50 BTU/hr-ft^2-F)) on all faces of the cylinder.
# This is akin to putting the cylinder in an oven (nonconvection type) and turning the oven on.
# What we expect for this problem:
#  1) Use of h = 284 should cause the cylinder to slowly warm up
#  2) The fluid temperature should rise from initial (294 K) to final (477 K) in 600 s.
#  3) 1) and 2) should cause the cylinder to become soaked at 477.6 K after sufficient time(i.e. ~ 1/2 hr).
# This is a simple thermal soak problem.
[Mesh]    # Mesh Start
# 10cm x 20cm cylinder not so detailed mesh, 2 radial, 6 axial nodes
# Only one block (Block 1), all concrete
# Sideset 1 - top of cylinder, Sideset 2 - length of cylinder, Sideset 3 - bottom of cylinder
  file = heat_convection_rz_mesh.e
  coord_type = RZ
[]    # Mesh END
[Variables]  # Variables Start
  [./temp]
    order = FIRST
    family = LAGRANGE
    initial_condition = 294.26 # Initial cylinder temperature
  [../]
[]    # Variables END
[Kernels]  # Kernels Start
  [./heat]
    type = HeatConduction
    variable = temp
  [../]
  [./heat_ie]
    type = HeatConductionTimeDerivative
    variable = temp
  [../]
[]    # Kernels END
[BCs]    # Boundary Conditions Start
# Heat transfer coefficient on outer cylinder radius and ends
  [./convective_clad_surface]    # Convective Start
         type = ConvectiveFluxBC  # Convective flux, e.g. q'' = h*(Tw - Tf)
         boundary = '1 2 3'    # BC applied on top, along length, and bottom
         variable = temp
   rate = 284.      # (w/m^2-K)[50 BTU/hr/-ft^2-F]
          # the above h is a reasonable natural convection value
         initial = 294.26    # initial ambient (lab or oven) temperature (K)
         final = 477.6      # final ambient (lab or oven) temperature (K)
   duration = 600.    # length of time in seconds that it takes the ambient
          #   temperature to ramp from initial to final
  [../]          # Convective End
[]    # BCs END
[Materials]    # Materials Start
  [./thermal]
    type = HeatConductionMaterial
    block = 1
    specific_heat = 826.4
#    thermal_conductivity = 1.937  # this makes alpha 9.74e-7 m^2/s
#    thermal_conductivity = 19.37  # this makes alpha 9.74e-6 m^2/s
          # thermal conductivity arbitrarily increased by a decade to
          #    make the cylinder thermally soak faster (only for the purposes
          #    of this test problem
    thermal_conductivity = 193.7  # this makes alpha 9.74e-5 m^2/s
          # thermal conductivity arbitrarily increased by 2 decade to
          #    make the cylinder thermally soak faster (only for the purposes
          #    of this test problem
  [../]
  [./density]
    type = Density
    block = 1
    density = 2405.28
  [../]
[]      # Materials END
[Executioner]    # Executioner Start
   type = Transient
#   type = Steady
  #Preconditioned JFNK (default)
  solve_type = 'PJFNK'
   petsc_options = '-snes_ksp_ew '
   petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
   petsc_options_value = '70 hypre boomeramg'
   l_max_its = 60
   nl_rel_tol = 1e-8
   nl_abs_tol = 1e-10
   l_tol = 1e-5
   start_time = 0.0
  dt = 60.
  num_steps = 20  # Total run time 1200 s
[]      # Executioner END
[Outputs]    # Output Start
  # Output Start
  file_base = out_rz
  exodus = true
[]      # Output END
#      # Input file END
(modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_force_step.i)
# This is a test designed to evaluate the cabability of the
# IterationAdaptiveDT TimeStepper to adjust time step size according to
# a function.  For example, if the power input function for a BISON
# simulation rapidly increases or decreases, the IterationAdaptiveDT
# TimeStepper should take time steps small enough to capture the
# oscillation.
[GlobalParams]
  order = FIRST
  family = LAGRANGE
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
  file = 1hex8_10mm_cube.e
[]
[Functions]
  [./Fiss_Function]
    type = PiecewiseLinear
    data_file = blip.csv
    format = columns
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./disp_z]
  [../]
  [./temp]
    initial_condition = 300.0
  [../]
[]
[Physics/SolidMechanics/QuasiStatic]
  [./all]
    strain = FINITE
    incremental = true
    eigenstrain_names = thermal_expansion
    add_variables  = true
    generate_output = 'vonmises_stress'
    temperature = temp
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConduction
    variable = temp
  [../]
  [./heat_ie]
    type = HeatConductionTimeDerivative
    variable = temp
  [../]
  [./heat_source]
     type = HeatSource
     variable = temp
     value = 1.0
     function = Fiss_Function
  [../]
[]
[BCs]
 [./bottom_temp]
   type = DirichletBC
   variable = temp
   boundary = 1
   value = 300
 [../]
 [./top_bottom_disp_x]
   type = DirichletBC
   variable = disp_x
   boundary = '1'
   value = 0
 [../]
 [./top_bottom_disp_y]
   type = DirichletBC
   variable = disp_y
   boundary = '1'
   value = 0
 [../]
 [./top_bottom_disp_z]
   type = DirichletBC
   variable = disp_z
   boundary = '1'
   value = 0
 [../]
[]
[Materials]
 [./thermal]
    type = HeatConductionMaterial
    temp = temp
    specific_heat = 1.0
    thermal_conductivity = 1.0
  [../]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 300e6
    poissons_ratio = .3
  [../]
  [./stress]
    type = ComputeFiniteStrainElasticStress
  [../]
  [./thermal_expansion]
    type = ComputeThermalExpansionEigenstrain
    thermal_expansion_coeff = 5e-6
    stress_free_temperature = 300.0
    temperature = temp
    eigenstrain_name = thermal_expansion
  [../]
  [./density]
    type = Density
    density = 10963.0
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  verbose = true
  nl_abs_tol = 1e-10
  start_time = 0.0
  num_steps = 50000
  end_time = 5.1e3
  [./TimeStepper]
    type = IterationAdaptiveDT
    timestep_limiting_function = Fiss_Function
    max_function_change = 3e20
    force_step_every_function_point = true
    dt = 1e2
  [../]
[]
[Postprocessors]
  [./Temperature_of_Block]
    type = ElementAverageValue
    variable = temp
    execute_on = 'initial timestep_end'
  [../]
  [./vonMises]
    type = ElementAverageValue
    variable = vonmises_stress
    execute_on = 'initial timestep_end'
  [../]
[]
[Outputs]
  [./out]
    type = Exodus
    elemental_as_nodal = true
  [../]
  [./console]
    type = Console
    max_rows = 10
  [../]
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/strip.i)
[Mesh]
  [gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 10
    ny = 1
    xmax = 0.5
    xmin = -0.5
    ymin = -0.05
    ymax = 0.05
  []
  [left_line]
    type = SubdomainBoundingBoxGenerator
    input = gmg
    bottom_left = '-0.5 0 0'
    top_right = '0 0 0'
    block_id = 1
    block_name = 'left_strip'
    location = INSIDE
  []
  [right_line]
    type = SubdomainBoundingBoxGenerator
    input = left_line
    bottom_left = '0 0 0'
    top_right = '0.5 0 0'
    block_id = 2
    block_name = 'right_strip'
    location = INSIDE
  []
[]
[Variables]
  [temperature]
  []
[]
[Kernels]
  [time_derivative]
    type = HeatConductionTimeDerivative
    variable = temperature
  []
  [heat_conduction]
    type = HeatConduction
    variable = temperature
  []
[]
[Materials]
  [left_strip]
    type = GenericConstantMaterial
    block = 'left_strip'
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '0.1                 1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  []
  [right_strip]
    type = GenericConstantMaterial
    block = 'right_strip'
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '5.0e-3                  1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  []
[]
[BCs]
  [right]
    type = FunctionDirichletBC
    variable = temperature
    boundary = 'right'
    function = '10*t'
  []
[]
[VectorPostprocessors]
  [center]
    type = LineValueSampler
    start_point = '-0.5 0 0'
    end_point = '0.5 0 0'
    num_points = 40
    variable = 'temperature'
    sort_by = id
  []
[]
[Executioner]
  type = Transient
  start_time = 0
  dt = 1
  end_time = 1
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
  [csv]
    type = CSV
    file_base = 'csv/strip'
    time_data = true
  []
[]
(modules/functional_expansion_tools/examples/2D_volumetric_Cartesian/main.i)
# Basic example coupling a master and sub app in a 2D Cartesian volume.
#
# The master app provides field values to the sub app via Functional Expansions, which then performs
# its calculations. The sub app's solution field values are then transferred back to the master app
# and coupled into the solution of the master app solution.
#
# This example couples Functional Expansions via AuxVariable.
[Mesh]
  type = GeneratedMesh
  dim = 2
  xmin = 0.0
  xmax = 10.0
  nx = 15
  ymin = 1.0
  ymax = 11.0
  ny = 25
[]
[Variables]
  [./m]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[AuxVariables]
  [./s_in]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./diff_m]
    type = HeatConduction
    variable = m
  [../]
  [./time_diff_m]
    type = HeatConductionTimeDerivative
    variable = m
  [../]
  [./s_in] # Add in the contribution from the SubApp
    type = CoupledForce
    variable = m
    v = s_in
  [../]
[]
[AuxKernels]
  [./reconstruct_s_in]
    type = FunctionSeriesToAux
    variable = s_in
    function = FX_Basis_Value_Main
  [../]
[]
[Materials]
  [./Unobtanium]
    type = GenericConstantMaterial
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '1.0                  1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  [../]
[]
[ICs]
  [./start_m]
    type = ConstantIC
    variable = m
    value = 1
  [../]
[]
[BCs]
  [./surround]
    type = DirichletBC
    variable = m
    value = 1
    boundary = 'top bottom left right'
  [../]
[]
[Functions]
  [./FX_Basis_Value_Main]
    type = FunctionSeries
    series_type = Cartesian
    orders = '3   4'
    physical_bounds = '0.0  10.0    1.0 11.0'
    x = Legendre
    y = Legendre
  [../]
[]
[UserObjects]
  [./FX_Value_UserObject_Main]
    type = FXVolumeUserObject
    function = FX_Basis_Value_Main
    variable = m
  [../]
[]
[Postprocessors]
  [./average_value]
    type = ElementAverageValue
    variable = m
  [../]
  [./peak_value]
    type = ElementExtremeValue
    value_type = max
    variable = m
  [../]
  [./picard_iterations]
    type = NumFixedPointIterations
  [../]
[]
[Executioner]
  type = Transient
  num_steps = 10
  dt = 0.5
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
  fixed_point_max_its = 30
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-9
  fixed_point_rel_tol = 1e-8
  fixed_point_abs_tol = 1e-9
[]
[Outputs]
  exodus = true
[]
[MultiApps]
  [./FXTransferApp]
    type = TransientMultiApp
    input_files = sub.i
  [../]
[]
[Transfers]
  [./ValueToSub]
    type = MultiAppFXTransfer
    to_multi_app = FXTransferApp
    this_app_object_name = FX_Value_UserObject_Main
    multi_app_object_name = FX_Basis_Value_Sub
  [../]
  [./ValueToMe]
    type = MultiAppFXTransfer
    from_multi_app = FXTransferApp
    this_app_object_name = FX_Basis_Value_Main
    multi_app_object_name = FX_Value_UserObject_Sub
  [../]
[]
(modules/combined/test/tests/restart-transient-from-ss-with-stateful/parent_tr.i)
[Problem]
  restart_file_base = parent_ss_checkpoint_cp/LATEST
  force_restart = true
  # The auxiliary field has an initial condition
  allow_initial_conditions_with_restart = true
[]
[Mesh]
  file = parent_ss_checkpoint_cp/LATEST
[]
[Variables]
  [temp]
    # no initial condition for restart.
  []
[]
[AuxVariables]
  [power]
    order = FIRST
    family = L2_LAGRANGE
    initial_condition = 350
  []
[]
[Kernels]
  [heat]
    type = HeatConduction
    variable = temp
  []
  [heat_ie]
    type = HeatConductionTimeDerivative
    variable = temp
  []
  [heat_source_fuel]
    type = CoupledForce
    variable = temp
    v = 'power'
  []
[]
[BCs]
  [all]
    type = DirichletBC
    variable = temp
    boundary = 'bottom top left right'
    value = 300
  []
[]
[Materials]
  [heat_material]
    type = HeatConductionMaterial
    temp = temp
    specific_heat = 1000
    thermal_conductivity = 500
  []
  [density]
    type = Density
    density = 2000
  []
[]
[Postprocessors]
  [avg_temp]
    type = ElementAverageValue
    variable = temp
    execute_on = 'timestep_end'
  []
  [avg_power]
    type = ElementAverageValue
    variable = power
    execute_on = 'timestep_end'
  []
[]
[Executioner]
  type = Transient
  petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
  petsc_options_value = 'hypre boomeramg 300'
  line_search = 'none'
  l_tol = 1e-02
  nl_rel_tol = 5e-05
  nl_abs_tol = 5e-05
  l_max_its = 50
  nl_max_its = 25
  start_time = 0
  end_time = 40
  dt = 10
[]
[Outputs]
  print_linear_residuals = false
  perf_graph = true
  color = true
  exodus = true
[]
[MultiApps]
  [bison]
    type = TransientMultiApp
    positions = '0 0 0'
    input_files = 'sub_tr.i'
    execute_on = 'timestep_end'
  []
[]
[Transfers]
  [to_bison_mechanics]
    type = MultiAppProjectionTransfer
    to_multi_app = bison
    variable = temp
    source_variable = temp
    execute_on = 'timestep_end'
  []
[]
(modules/heat_transfer/tutorials/introduction/therm_step03a.i)
#
# Single block thermal input with time derivative and volumetric heat source terms
# https://mooseframework.inl.gov/modules/heat_transfer/tutorials/introduction/therm_step03.html
#
[Mesh]
  [generated]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 10
    ny = 10
    xmax = 2
    ymax = 1
  []
[]
[Variables]
  [T]
    initial_condition = 300.0
  []
[]
[Kernels]
  [heat_conduction]
    type = HeatConduction
    variable = T
  []
  [time_derivative]
    type = HeatConductionTimeDerivative
    variable = T
  []
  [heat_source]
    type = HeatSource
    variable = T
    value = 1e4
  []
[]
[Materials]
  [thermal]
    type = HeatConductionMaterial
    thermal_conductivity = 45.0
    specific_heat = 0.5
  []
  [density]
    type = GenericConstantMaterial
    prop_names = 'density'
    prop_values = 8000.0
  []
[]
[BCs]
  [t_left]
    type = DirichletBC
    variable = T
    value = 300
    boundary = 'left'
  []
  [t_right]
    type = FunctionDirichletBC
    variable = T
    function = '300+5*t'
    boundary = 'right'
  []
[]
[Executioner]
  type = Transient
  end_time = 5
  dt = 1
[]
[VectorPostprocessors]
  [t_sampler]
    type = LineValueSampler
    variable = T
    start_point = '0 0.5 0'
    end_point = '2 0.5 0'
    num_points = 20
    sort_by = x
  []
[]
[Outputs]
  exodus = true
  [csv]
    type = CSV
    file_base = therm_step03a_out
    execute_on = final
  []
[]
(modules/combined/test/tests/inelastic_strain/creep/creep_nl1.i)
#
# Test for effective strain calculation.
# Boundary conditions from NAFEMS test NL1
#
# This is not a verification test. This is the creep analog of the same test
# in the elas_plas directory. Instead of using the IsotropicPlasticity
# material model this test uses the PowerLawCreep material model.
#
[GlobalParams]
  temperature = temp
  order = FIRST
  family = LAGRANGE
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  file = one_elem2.e
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./temp]
    initial_condition = 600.0
  [../]
[]
[AuxVariables]
  [./stress_xx]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_yy]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_zz]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_xy]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./vonmises]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./pressure]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./elastic_strain_xx]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./elastic_strain_yy]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./elastic_strain_zz]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./creep_strain_xx]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./creep_strain_yy]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./creep_strain_zz]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./tot_strain_xx]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./tot_strain_yy]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./tot_strain_zz]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./eff_creep_strain]
    order = CONSTANT
    family = MONOMIAL
  [../]
[]
[Kernels]
  [./TensorMechanics]
    use_displaced_mesh = true
    decomposition_method = EigenSolution
  [../]
  [./heat]
    type = HeatConduction
    variable = temp
  [../]
  [./heat_ie]
    type = HeatConductionTimeDerivative
    variable = temp
  [../]
[]
[AuxKernels]
  [./stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  [../]
  [./stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  [../]
  [./stress_zz]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  [../]
  [./stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  [../]
  [./vonmises]
    type = RankTwoScalarAux
    rank_two_tensor = stress
    variable = vonmises
    scalar_type = VonMisesStress
    execute_on = timestep_end
  [../]
  [./pressure]
    type = RankTwoScalarAux
    rank_two_tensor = stress
    variable = pressure
    scalar_type = Hydrostatic
    execute_on = timestep_end
  [../]
  [./elastic_strain_xx]
    type = RankTwoAux
    rank_two_tensor = elastic_strain
    variable = elastic_strain_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  [../]
  [./elastic_strain_yy]
    type = RankTwoAux
    rank_two_tensor = elastic_strain
    variable = elastic_strain_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  [../]
  [./elastic_strain_zz]
    type = RankTwoAux
    rank_two_tensor = elastic_strain
    variable = elastic_strain_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  [../]
  [./creep_strain_xx]
    type = RankTwoAux
    rank_two_tensor = creep_strain
    variable = creep_strain_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  [../]
  [./creep_strain_yy]
    type = RankTwoAux
    rank_two_tensor = creep_strain
    variable = creep_strain_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  [../]
  [./creep_strain_zz]
    type = RankTwoAux
    rank_two_tensor = creep_strain
    variable = creep_strain_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  [../]
  [./tot_strain_xx]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = tot_strain_xx
    index_i = 0
    index_j = 0
  [../]
  [./tot_strain_yy]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = tot_strain_yy
    index_i = 1
    index_j = 1
  [../]
  [./tot_strain_zz]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = tot_strain_zz
    index_i = 2
    index_j = 2
  [../]
  [./eff_creep_strain]
    type = MaterialRealAux
    property = effective_creep_strain
    variable = eff_creep_strain
  [../]
[]
[Functions]
  [./appl_dispy]
    type = PiecewiseLinear
    x = '0     1.0     2.0'
    y = '0.0 0.25e-4 0.50e-4'
  [../]
[]
[BCs]
  [./side_x]
    type = DirichletBC
    variable = disp_x
    boundary = 101
    value = 0.0
  [../]
  [./origin_x]
    type = DirichletBC
    variable = disp_x
    boundary = 103
    value = 0.0
  [../]
  [./bot_y]
    type = DirichletBC
    variable = disp_y
    boundary = 102
    value = 0.0
  [../]
  [./origin_y]
    type = DirichletBC
    variable = disp_y
    boundary = 103
    value = 0.0
  [../]
  [./top_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 1
    function = appl_dispy
  [../]
  [./temp_fix]
    type = DirichletBC
    variable = temp
    boundary = '1 2'
    value = 600.0
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    block = 1
    youngs_modulus = 250e9
    poissons_ratio = 0.25
  [../]
  [./strain]
    type = ComputePlaneFiniteStrain
    block = 1
  [../]
  [./radial_return_stress]
    type = ComputeMultipleInelasticStress
    block = 1
    inelastic_models = 'powerlawcrp'
  [../]
  [./powerlawcrp]
    type = PowerLawCreepStressUpdate
    block = 1
    coefficient = 3.125e-14
    n_exponent = 5.0
    m_exponent = 0.0
    activation_energy = 0.0
  [../]
  [./thermal]
    type = HeatConductionMaterial
    block = 1
    specific_heat = 1.0
    thermal_conductivity = 100.
  [../]
  [./density]
    type = Density
    block = 1
    density = 1.0
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  nl_rel_tol = 1e-10
  nl_abs_tol = 1e-12
  l_tol = 1e-6
  l_max_its = 100
  nl_max_its = 20
  dt = 1.0
  start_time = 0.0
  num_steps = 100
  end_time = 2.0
[]
[Postprocessors]
  [./stress_xx]
    type = ElementAverageValue
    variable = stress_xx
  [../]
  [./stress_yy]
    type = ElementAverageValue
    variable = stress_yy
  [../]
  [./stress_zz]
    type = ElementAverageValue
    variable = stress_zz
  [../]
  [./stress_xy]
    type = ElementAverageValue
    variable = stress_xy
  [../]
  [./vonmises]
    type = ElementAverageValue
    variable = vonmises
  [../]
  [./pressure]
    type = ElementAverageValue
    variable = pressure
  [../]
  [./el_strain_xx]
    type = ElementAverageValue
    variable = elastic_strain_xx
  [../]
  [./el_strain_yy]
    type = ElementAverageValue
    variable = elastic_strain_yy
  [../]
  [./el_strain_zz]
    type = ElementAverageValue
    variable = elastic_strain_zz
  [../]
  [./crp_strain_xx]
    type = ElementAverageValue
    variable = creep_strain_xx
  [../]
  [./crp_strain_yy]
    type = ElementAverageValue
    variable = creep_strain_yy
  [../]
  [./crp_strain_zz]
    type = ElementAverageValue
    variable = creep_strain_zz
  [../]
  [./eff_creep_strain]
    type = ElementAverageValue
    variable = eff_creep_strain
  [../]
  [./tot_strain_xx]
    type = ElementAverageValue
    variable = tot_strain_xx
  [../]
  [./tot_strain_yy]
    type = ElementAverageValue
    variable = tot_strain_yy
  [../]
  [./tot_strain_zz]
    type = ElementAverageValue
    variable = tot_strain_zz
  [../]
  [./disp_x1]
    type = NodalVariableValue
    nodeid = 0
    variable = disp_x
  [../]
  [./disp_x4]
    type = NodalVariableValue
    nodeid = 3
    variable = disp_x
  [../]
  [./disp_y1]
    type = NodalVariableValue
    nodeid = 0
    variable = disp_y
  [../]
  [./disp_y4]
    type = NodalVariableValue
    nodeid = 3
    variable = disp_y
  [../]
  [./_dt]
    type = TimestepSize
  [../]
[]
[Outputs]
  exodus = true
  [./console]
    type = Console
    output_linear = true
  [../]
[]
(modules/functional_expansion_tools/examples/2D_interface_different_submesh/main.i)
# Derived from the example '2D_interface' with the following differences:
#
#   1) The number of y divisions in the sub app is not the same as the master app
#   2) The subapp mesh is skewed in y
#   3) The Functional Expansion order for the flux term was increased to 7
[Mesh]
  type = GeneratedMesh
  dim = 2
  xmin = 0.0
  xmax = 0.4
  nx = 6
  ymin = 0.0
  ymax = 10.0
  ny = 20
[]
[Variables]
  [./m]
  [../]
[]
[Kernels]
  [./diff_m]
    type = HeatConduction
    variable = m
  [../]
  [./time_diff_m]
    type = HeatConductionTimeDerivative
    variable = m
  [../]
  [./source_m]
    type = BodyForce
    variable = m
    value = 100
  [../]
[]
[Materials]
  [./Impervium]
    type = GenericConstantMaterial
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '0.00001              50.0          100.0' # W/(cm K), J/(g K), g/cm^3
  [../]
[]
[ICs]
  [./start_m]
    type = ConstantIC
    value = 2
    variable = m
  [../]
[]
[BCs]
  [./interface_value]
    type = FXValueBC
    variable = m
    boundary = right
    function = FX_Basis_Value_Main
  [../]
  [./interface_flux]
    type = FXFluxBC
    boundary = right
    variable = m
    function = FX_Basis_Flux_Main
  [../]
[]
[Functions]
  [./FX_Basis_Value_Main]
    type = FunctionSeries
    series_type = Cartesian
    orders = '4'
    physical_bounds = '0.0 10'
    y = Legendre
  [../]
  [./FX_Basis_Flux_Main]
    type = FunctionSeries
    series_type = Cartesian
    orders = '7'
    physical_bounds = '0.0 10'
    y = Legendre
  [../]
[]
[UserObjects]
  [./FX_Flux_UserObject_Main]
    type = FXBoundaryFluxUserObject
    function = FX_Basis_Flux_Main
    variable = m
    boundary = right
    diffusivity = thermal_conductivity
  [../]
[]
[Postprocessors]
  [./average_interface_value]
    type = SideAverageValue
    variable = m
    boundary = right
  [../]
  [./total_flux]
    type = SideDiffusiveFluxIntegral
    variable = m
    boundary = right
    diffusivity = thermal_conductivity
  [../]
  [./picard_iterations]
    type = NumFixedPointIterations
    execute_on = 'initial timestep_end'
  [../]
[]
[Executioner]
  type = Transient
  num_steps = 10
  dt = 1.0
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
  fixed_point_max_its = 30
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-9
  fixed_point_rel_tol = 1e-8
  fixed_point_abs_tol = 1e-9
[]
[Outputs]
  exodus = true
[]
[MultiApps]
  [./FXTransferApp]
    type = TransientMultiApp
    input_files = sub.i
    sub_cycling = true
  [../]
[]
[Transfers]
  [./FluxToSub]
    type = MultiAppFXTransfer
    to_multi_app = FXTransferApp
    this_app_object_name = FX_Flux_UserObject_Main
    multi_app_object_name = FX_Basis_Flux_Sub
  [../]
  [./ValueToMe]
    type = MultiAppFXTransfer
    from_multi_app = FXTransferApp
    this_app_object_name = FX_Basis_Value_Main
    multi_app_object_name = FX_Value_UserObject_Sub
  [../]
  [./FluxToMe]
    type = MultiAppFXTransfer
    from_multi_app = FXTransferApp
    this_app_object_name = FX_Basis_Flux_Main
    multi_app_object_name = FX_Flux_UserObject_Sub
  [../]
[]
(modules/combined/tutorials/introduction/thermal_mechanical_contact/thermomech_cont_step02.i)
#
# Three shell thermo mechanical contact
# https://mooseframework.inl.gov/modules/combined/tutorials/introduction/step02.html
#
[GlobalParams]
  displacements = 'disp_x disp_y'
  block = '0 1 2'
[]
[Mesh]
  # inner cylinder
  [inner]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 10
    ny = 40
    xmax = 1
    ymin = -1.75
    ymax = 1.75
    boundary_name_prefix = inner
  []
  # middle shell with subdomain ID 1
  [middle_elements]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 10
    ny = 40
    xmin = 1.1
    xmax = 2.1
    ymin = -2.5
    ymax = 2.5
    boundary_name_prefix = middle
    boundary_id_offset = 4
  []
  [middle]
    type = SubdomainIDGenerator
    input = middle_elements
    subdomain_id = 1
  []
  # outer shell with subdomain ID 2
  [outer_elements]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 10
    ny = 48
    xmin = 2.2
    xmax = 3.2
    ymin = -3
    ymax = 3
    boundary_name_prefix = outer
    boundary_id_offset = 8
  []
  [outer]
    type = SubdomainIDGenerator
    input = outer_elements
    subdomain_id = 2
  []
  [collect_meshes]
    type = MeshCollectionGenerator
    inputs = 'inner middle outer'
  []
  # add set of 3 nodes to remove rigid body modes for y-translation in each block
  [pin]
    type = ExtraNodesetGenerator
    input = collect_meshes
    new_boundary = pin
    coord = '0 0 0; 1.6 0 0; 2.7 0 0'
  []
  patch_update_strategy = iteration
  # switch to an axisymmetric coordinate system
  coord_type = RZ
[]
[Variables]
  # temperature field variable (first order Lagrange by default)
  [T]
  []
  # temperature lagrange multipliers
  [Tlm1]
    block = 'inner_gap_secondary_subdomain'
  []
  [Tlm2]
    block = 'outer_gap_secondary_subdomain'
  []
[]
[Kernels]
  [heat_conduction]
    type = HeatConduction
    variable = T
  []
  [dTdt]
    type = HeatConductionTimeDerivative
    variable = T
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = true
    strain = FINITE
    eigenstrain_names = thermal
    generate_output = 'vonmises_stress stress_xx strain_xx stress_yy strain_yy'
    volumetric_locking_correction = true
    temperature = T
  []
[]
[Contact]
  [inner_gap]
    primary = middle_left
    secondary = inner_right
    model = frictionless
    formulation = mortar
    c_normal = 1e+0
  []
  [outer_gap]
    primary = outer_left
    secondary = middle_right
    model = frictionless
    formulation = mortar
    c_normal = 1e+0
  []
[]
[Constraints]
  # thermal contact constraint
  [Tlm1]
    type = GapConductanceConstraint
    variable = Tlm1
    secondary_variable = T
    use_displaced_mesh = true
    k = 1e-1
    primary_boundary = middle_left
    primary_subdomain = inner_gap_secondary_subdomain
    secondary_boundary = inner_right
    secondary_subdomain = inner_gap_primary_subdomain
  []
  [Tlm2]
    type = GapConductanceConstraint
    variable = Tlm2
    secondary_variable = T
    use_displaced_mesh = true
    k = 1e-1
    primary_boundary = outer_left
    primary_subdomain = outer_gap_secondary_subdomain
    secondary_boundary = middle_right
    secondary_subdomain = outer_gap_primary_subdomain
  []
[]
[BCs]
  [center_axis_fix]
    type = DirichletBC
    variable = disp_x
    boundary = 'inner_left'
    value = 0
  []
  [y_translation_fix]
    type = DirichletBC
    variable = disp_y
    boundary = 'pin'
    value = 0
  []
  [heat_center]
    type = FunctionDirichletBC
    variable = T
    boundary = 'inner_left'
    function = t*40
  []
  [cool_right]
    type = DirichletBC
    variable = T
    boundary = 'outer_right'
    value = 0
  []
[]
[Materials]
  [eigen_strain_inner]
    type = ComputeThermalExpansionEigenstrain
    eigenstrain_name = thermal
    temperature = T
    thermal_expansion_coeff = 1e-3
    stress_free_temperature = 0
    block = 0
  []
  [eigen_strain_middle]
    type = ComputeThermalExpansionEigenstrain
    eigenstrain_name = thermal
    temperature = T
    thermal_expansion_coeff = 2e-4
    stress_free_temperature = 0
    block = 1
  []
  [eigen_strain_outer]
    type = ComputeThermalExpansionEigenstrain
    eigenstrain_name = thermal
    temperature = T
    thermal_expansion_coeff = 1e-5
    stress_free_temperature = 0
    block = 2
  []
  [elasticity]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1
    poissons_ratio = 0.3
  []
  [stress]
    type = ComputeFiniteStrainElasticStress
  []
  # thermal properties
  [thermal_conductivity_0]
    type = HeatConductionMaterial
    thermal_conductivity = 50
    specific_heat = 1
    block = 0
  []
  [thermal_conductivity_1]
    type = HeatConductionMaterial
    thermal_conductivity = 5
    specific_heat = 1
    block = 1
  []
  [thermal_conductivity_2]
    type = HeatConductionMaterial
    thermal_conductivity = 1
    specific_heat = 1
    block = 2
  []
  [density]
    type = Density
    density = 1
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
# [Debug]
#   show_var_residual_norms = true
# []
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  petsc_options_iname = '-pc_type -pc_factor_shift_type'
  petsc_options_value = 'lu       nonzero              '
  snesmf_reuse_base = false
  end_time = 7
  dt = 0.05
  nl_rel_tol = 1e-08
  nl_abs_tol = 1e-50
  [Predictor]
    type = SimplePredictor
    scale = 0.5
  []
[]
[Outputs]
  exodus = true
  print_linear_residuals = false
  perf_graph = true
[]
(modules/functional_expansion_tools/examples/3D_volumetric_cylindrical_subapp_mesh_refine/main.i)
# Derived from the example '3D_volumetric_cylindrical' with the following differences:
#
#   1) The model mesh is refined in the MasterApp by 1
#   2) Mesh adaptivity is enabled for the SubApp
#   3) Output from the SubApp is enabled so that the mesh changes can be visualized
[Mesh]
  type = FileMesh
  file = cyl-tet.e
  uniform_refine = 1
[]
[Variables]
  [./m]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[AuxVariables]
  [./s_in]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./diff_m]
    type = HeatConduction
    variable = m
  [../]
  [./time_diff_m]
    type = HeatConductionTimeDerivative
    variable = m
  [../]
  [./s_in] # Add in the contribution from the SubApp
    type = CoupledForce
    variable = m
    v = s_in
  [../]
[]
[AuxKernels]
  [./reconstruct_s_in]
    type = FunctionSeriesToAux
    variable = s_in
    function = FX_Basis_Value_Main
  [../]
[]
[Materials]
  [./Unobtanium]
    type = GenericConstantMaterial
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '1.0                  1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  [../]
[]
[ICs]
  [./start_m]
    type = ConstantIC
    variable = m
    value = 1
  [../]
[]
[BCs]
  [./surround]
    type = DirichletBC
    variable = m
    value = 1
    boundary = 'top bottom outside'
  [../]
[]
[Functions]
  [./FX_Basis_Value_Main]
    type = FunctionSeries
    series_type = CylindricalDuo
    orders = '5   3' # Axial first, then (r, t) FX
    physical_bounds = '-2.5 2.5   0 0 1' # z_min z_max   x_center y_center radius
    z = Legendre # Axial in z
    disc = Zernike # (r, t) default to unit disc in x-y plane
  [../]
[]
[UserObjects]
  [./FX_Value_UserObject_Main]
    type = FXVolumeUserObject
    function = FX_Basis_Value_Main
    variable = m
  [../]
[]
[Postprocessors]
  [./average_value]
    type = ElementAverageValue
    variable = m
  [../]
  [./peak_value]
    type = ElementExtremeValue
    value_type = max
    variable = m
  [../]
  [./picard_iterations]
    type = NumFixedPointIterations
  [../]
[]
[Executioner]
  type = Transient
  num_steps = 10
  dt = 0.5
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
  fixed_point_max_its = 30
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-9
  fixed_point_rel_tol = 1e-8
  fixed_point_abs_tol = 1e-9
[]
[Outputs]
  exodus = true
[]
[MultiApps]
  [./FXTransferApp]
    type = TransientMultiApp
    input_files = sub.i
    output_sub_cycles = true
  [../]
[]
[Transfers]
  [./ValueToSub]
    type = MultiAppFXTransfer
    to_multi_app = FXTransferApp
    this_app_object_name = FX_Value_UserObject_Main
    multi_app_object_name = FX_Basis_Value_Sub
  [../]
  [./ValueToMe]
    type = MultiAppFXTransfer
    from_multi_app = FXTransferApp
    this_app_object_name = FX_Basis_Value_Main
    multi_app_object_name = FX_Value_UserObject_Sub
  [../]
[]
(tutorials/tutorial03_verification/app/test/tests/step03_analytical/1d_analytical.i)
[Mesh]
  [gen]
    type = GeneratedMeshGenerator
    dim = 1
    xmax = 0.03
    nx = 200
  []
[]
[Variables]
  [T]
  []
[]
[ICs]
  [T_O]
    type = ConstantIC
    variable = T
    value = 300
  []
[]
[Kernels]
  [T_time]
    type = HeatConductionTimeDerivative
    variable = T
    density_name = 7800
    specific_heat = 450
  []
  [T_cond]
    type = HeatConduction
    variable = T
    diffusion_coefficient = 80.2
  []
[]
[BCs]
  [left]
    type = NeumannBC
    variable = T
    boundary = left
    value = 7e5
  []
[]
[Executioner]
  type = Transient
  scheme = bdf2
  solve_type = NEWTON
  dt = 0.01
  end_time = 1
[]
[Outputs]
  exodus = true
  csv = true
[]
[Functions]
  [T_exact]
    type = ParsedFunction
    symbol_names = 'k    rho  cp  T0  qs'
    symbol_values = '80.2 7800 450 300 7e5'
    expression = 'T0 + '
            'qs/k*(2*sqrt(k/(rho*cp)*t/pi)*exp(-x^2/(4*k/(rho*cp)*(t+1e-50))) - '
            'x*(1-erf(x/(2*sqrt(k/(rho*cp)*(t+1e-50))))))'
  []
[]
[Postprocessors]
  [error]
    type = NodalL2Error
    variable = T
    function = T_exact
  []
  [h]
    type = AverageElementSize
  []
[]
[VectorPostprocessors]
  [T_exact]
    type = LineFunctionSampler
    functions = T_exact
    start_point = '0 0 0'
    end_point = '0.03 0 0'
    num_points = 200
    sort_by = x
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [T_simulation]
    type = LineValueSampler
    variable = T
    start_point = '0 0 0'
    end_point = '0.03 0 0'
    num_points = 200
    sort_by = x
    execute_on = 'INITIAL TIMESTEP_END'
  []
[]
(modules/functional_expansion_tools/examples/3D_volumetric_cylindrical/main.i)
# Basic example coupling a master and sub app in a 3D cylindrical mesh from an input file
#
# The master app provides field values to the sub app via Functional Expansions, which then performs
# its calculations. The sub app's solution field values are then transferred back to the master app
# and coupled into the solution of the master app solution.
#
# This example couples Functional Expansions via AuxVariable, the recommended approach.
#
# Note: this problem is not light, and may take a few minutes to solve.
[Mesh]
  type = FileMesh
  file = cyl-tet.e
[]
[Variables]
  [./m]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[AuxVariables]
  [./s_in]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./diff_m]
    type = HeatConduction
    variable = m
  [../]
  [./time_diff_m]
    type = HeatConductionTimeDerivative
    variable = m
  [../]
  [./s_in] # Add in the contribution from the SubApp
    type = CoupledForce
    variable = m
    v = s_in
  [../]
[]
[AuxKernels]
  [./reconstruct_s_in]
    type = FunctionSeriesToAux
    variable = s_in
    function = FX_Basis_Value_Main
  [../]
[]
[Materials]
  [./Unobtanium]
    type = GenericConstantMaterial
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '1.0                  1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  [../]
[]
[ICs]
  [./start_m]
    type = ConstantIC
    variable = m
    value = 1
  [../]
[]
[BCs]
  [./surround]
    type = DirichletBC
    variable = m
    value = 1
    boundary = 'top bottom outside'
  [../]
[]
[Functions]
  [./FX_Basis_Value_Main]
    type = FunctionSeries
    series_type = CylindricalDuo
    orders = '5   3' # Axial first, then (r, t) FX
    physical_bounds = '-2.5 2.5   0 0 1' # z_min z_max   x_center y_center radius
    z = Legendre # Axial in z
    disc = Zernike # (r, t) default to unit disc in x-y plane
  [../]
[]
[UserObjects]
  [./FX_Value_UserObject_Main]
    type = FXVolumeUserObject
    function = FX_Basis_Value_Main
    variable = m
  [../]
[]
[Postprocessors]
  [./average_value]
    type = ElementAverageValue
    variable = m
  [../]
  [./peak_value]
    type = ElementExtremeValue
    value_type = max
    variable = m
  [../]
  [./picard_iterations]
    type = NumFixedPointIterations
  [../]
[]
[Executioner]
  type = Transient
  num_steps = 10
  dt = 0.5
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
  fixed_point_max_its = 30
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-9
  fixed_point_rel_tol = 1e-8
  fixed_point_abs_tol = 1e-9
[]
[Outputs]
  exodus = true
[]
[MultiApps]
  [./FXTransferApp]
    type = TransientMultiApp
    input_files = sub.i
  [../]
[]
[Transfers]
  [./ValueToSub]
    type = MultiAppFXTransfer
    to_multi_app = FXTransferApp
    this_app_object_name = FX_Value_UserObject_Main
    multi_app_object_name = FX_Basis_Value_Sub
  [../]
  [./ValueToMe]
    type = MultiAppFXTransfer
    from_multi_app = FXTransferApp
    this_app_object_name = FX_Basis_Value_Main
    multi_app_object_name = FX_Value_UserObject_Sub
  [../]
[]
(modules/functional_expansion_tools/examples/3D_volumetric_Cartesian_direct/main.i)
# Derived from the example '3D_volumetric_Cartesian' with the following differences:
#
#   1) The coupling is performed via BodyForce instead of the
#      FunctionSeriesToAux+CoupledForce approach
[Mesh]
  type = GeneratedMesh
  dim = 3
  xmin = 0.0
  xmax = 10.0
  nx = 15
  ymin = 1.0
  ymax = 11.0
  ny = 25
  zmin = 2.0
  zmax = 12.0
  nz = 35
[]
[Variables]
  [./m]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./diff_m]
    type = HeatConduction
    variable = m
  [../]
  [./time_diff_m]
    type = HeatConductionTimeDerivative
    variable = m
  [../]
  [./s_in] # Add in the contribution from the SubApp
    type = BodyForce
    variable = m
    function = FX_Basis_Value_Main
  [../]
[]
[Materials]
  [./Unobtanium]
    type = GenericConstantMaterial
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '1.0                  1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  [../]
[]
[ICs]
  [./start_m]
    type = ConstantIC
    variable = m
    value = 1
  [../]
[]
[BCs]
  [./surround]
    type = DirichletBC
    variable = m
    value = 1
    boundary = 'top bottom left right front back'
  [../]
[]
[Functions]
  [./FX_Basis_Value_Main]
    type = FunctionSeries
    series_type = Cartesian
    orders = '3   4   5'
    physical_bounds = '0.0  10.0    1.0 11.0    2.0 12.0'
    x = Legendre
    y = Legendre
    z = Legendre
    enable_cache = true
  [../]
[]
[UserObjects]
  [./FX_Value_UserObject_Main]
    type = FXVolumeUserObject
    function = FX_Basis_Value_Main
    variable = m
  [../]
[]
[Postprocessors]
  [./average_value]
    type = ElementAverageValue
    variable = m
  [../]
  [./peak_value]
    type = ElementExtremeValue
    value_type = max
    variable = m
  [../]
  [./picard_iterations]
    type = NumFixedPointIterations
  [../]
[]
[Executioner]
  type = Transient
  num_steps = 10
  dt = 0.5
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
  fixed_point_max_its = 30
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-9
  fixed_point_rel_tol = 1e-8
  fixed_point_abs_tol = 1e-9
[]
[Outputs]
  exodus = true
[]
[MultiApps]
  [./FXTransferApp]
    type = TransientMultiApp
    input_files = sub.i
  [../]
[]
[Transfers]
  [./ValueToSub]
    type = MultiAppFXTransfer
    to_multi_app = FXTransferApp
    this_app_object_name = FX_Value_UserObject_Main
    multi_app_object_name = FX_Basis_Value_Sub
  [../]
  [./ValueToMe]
    type = MultiAppFXTransfer
    from_multi_app = FXTransferApp
    this_app_object_name = FX_Basis_Value_Main
    multi_app_object_name = FX_Value_UserObject_Sub
  [../]
[]
(modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_change.i)
# This is a test designed to evaluate the cabability of the
# IterationAdaptiveDT TimeStepper to adjust time step size according to
# a function.  For example, if the power input function for a BISON
# simulation rapidly increases or decreases, the IterationAdaptiveDT
# TimeStepper should take time steps small enough to capture the
# oscillation.
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  order = FIRST
  family = LAGRANGE
[]
[Mesh]
  file = 1hex8_10mm_cube.e
[]
[Functions]
  [./Fiss_Function]
    type = PiecewiseLinear
    x = '0 1e6  2e6  2.001e6 2.002e6'
    y = '0 3e8  3e8  12e8    0'
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./disp_z]
  [../]
  [./temp]
    initial_condition = 300.0
  [../]
[]
[Physics/SolidMechanics/QuasiStatic]
  [./all]
    strain = FINITE
    volumetric_locking_correction = true
    incremental = true
    eigenstrain_names = thermal_expansion
    decomposition_method = EigenSolution
    add_variables  = true
    generate_output = 'vonmises_stress'
    temperature = temp
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConduction
    variable = temp
  [../]
  [./heat_ie]
    type = HeatConductionTimeDerivative
    variable = temp
  [../]
  [./heat_source]
     type = HeatSource
     variable = temp
     value = 1.0
     function = Fiss_Function
  [../]
[]
[BCs]
  [./bottom_temp]
    type = DirichletBC
    variable = temp
    boundary = 1
    value = 300
  [../]
  [./top_bottom_disp_x]
    type = DirichletBC
    variable = disp_x
    boundary = '1'
    value = 0
  [../]
  [./top_bottom_disp_y]
    type = DirichletBC
    variable = disp_y
    boundary = '1'
    value = 0
  [../]
  [./top_bottom_disp_z]
    type = DirichletBC
    variable = disp_z
    boundary = '1'
    value = 0
  [../]
[]
[Materials]
 [./thermal]
    type = HeatConductionMaterial
    temp = temp
    specific_heat = 1.0
    thermal_conductivity = 1.0
  [../]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 300e6
    poissons_ratio = .3
  [../]
  [./stress]
    type = ComputeFiniteStrainElasticStress
  [../]
  [./thermal_expansion]
    type = ComputeThermalExpansionEigenstrain
    thermal_expansion_coeff = 5e-6
    stress_free_temperature = 300.0
    temperature = temp
    eigenstrain_name = thermal_expansion
  [../]
  [./density]
    type = Density
    density = 10963.0
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  verbose = true
  nl_abs_tol = 1e-10
  start_time = 0.0
  num_steps = 50000
  end_time = 2.002e6
  [./TimeStepper]
    type = IterationAdaptiveDT
    timestep_limiting_function = Fiss_Function
    max_function_change = 3e7
    dt = 1e6
  [../]
[]
[Postprocessors]
  [./Temperature_of_Block]
    type = ElementAverageValue
    variable = temp
    execute_on = 'initial timestep_end'
  [../]
  [./vonMises]
    type = ElementAverageValue
    variable = vonmises_stress
    execute_on = 'initial timestep_end'
  [../]
[]
[Outputs]
  [./out]
    type = Exodus
    elemental_as_nodal = true
  [../]
  [./console]
    type = Console
    max_rows = 10
  [../]
[]
(modules/heat_transfer/test/tests/verify_against_analytical/1D_transient.i)
# This test solves a 1D transient heat equation
# The error is caclulated by comparing to the analytical solution
# The problem setup and analytical solution are taken from "Advanced Engineering
# Mathematics, 10th edition" by Erwin Kreyszig.
# http://www.amazon.com/Advanced-Engineering-Mathematics-Erwin-Kreyszig/dp/0470458364
# It is Example 1 in section 12.6 on page 561
[Mesh]
  type = GeneratedMesh
  dim = 1
  nx = 160
  xmax = 80
[]
[Variables]
  [./T]
  [../]
[]
[ICs]
  [./T_IC]
    type = FunctionIC
    variable = T
    function = '100*sin(pi*x/80)'
  [../]
[]
[Kernels]
  [./HeatDiff]
    type = HeatConduction
    variable = T
  [../]
  [./HeatTdot]
    type = HeatConductionTimeDerivative
    variable = T
  [../]
[]
[BCs]
  [./sides]
    type = DirichletBC
    variable = T
    boundary = 'left right'
    value = 0
  [../]
[]
[Materials]
  [./k]
    type = GenericConstantMaterial
    prop_names = 'thermal_conductivity'
    prop_values = '0.95' #copper in cal/(cm sec C)
  [../]
  [./cp]
    type = GenericConstantMaterial
    prop_names = 'specific_heat'
    prop_values = '0.092' #copper in cal/(g C)
  [../]
  [./rho]
    type = GenericConstantMaterial
    prop_names = 'density'
    prop_values = '8.92' #copper in g/(cm^3)
  [../]
[]
[Postprocessors]
  [./error]
    type = NodalL2Error
    function = '100*sin(pi*x/80)*exp(-0.95/(0.092*8.92)*pi^2/80^2*t)'
    variable = T
  [../]
[]
[Executioner]
  type = Transient
  scheme = bdf2
  l_tol = 1e-6
  dt = 2
  end_time = 100
[]
[Outputs]
  exodus = true
[]
(modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_hex_template.i)
[Mesh]
  type = GeneratedMesh
  dim = 3
  nx = 5
  ny = 1
  nz = 1
  xmin = 0.0
  xmax = 0.1
  ymin = 0.0
  ymax = 0.01
  zmin = 0.0
  zmax = 0.01
  elem_type = HEX8
[]
[Variables]
  [./temp]
    initial_condition = 0.0
  [../]
[]
[BCs]
  [./FixedTempLeft]
    type = DirichletBC
    variable = temp
    boundary = left
    value = 0.0
  [../]
  [./FunctionTempRight]
    type = FunctionDirichletBC
    variable = temp
    boundary = right
    function = '100.0 * sin(pi*t/40)'
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConduction
    variable = temp
  [../]
  [./HeatTdot]
    type = HeatConductionTimeDerivative
    variable = temp
  [../]
[]
[Materials]
  [./density]
    type = GenericConstantMaterial
    prop_names = 'thermal_conductivity specific_heat density'
    prop_values = '35.0 440.5 7200.0'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  l_tol = 1e-5
  nl_max_its = 50
  nl_rel_tol = 1e-10
  nl_abs_tol = 1e-12
  dt = 1
  end_time = 32.0
[]
[Postprocessors]
  [./target_temp]
    type = NodalVariableValue
    variable = temp
    nodeid = 19
  [../]
[]
[Outputs]
  csv = true
[]
(modules/heat_transfer/test/tests/transient_heat/transient_heat_derivatives.i)
[Mesh]
  [gen]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 10
    ny = 10
  []
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    initial_condition = 2
  []
[]
[Kernels]
  [heat]
    type = HeatConduction
    variable = temp
  []
  [ie]
    type = HeatConductionTimeDerivative
    variable = temp
    specific_heat_dT = specific_heat_dT
    density_name_dT = density_dT
  []
[]
[Functions]
  [spheat]
    type = ParsedFunction
    expression = 't^4'
  []
  [thcond]
    type = ParsedFunction
    expression = 'exp(t)'
  []
[]
[BCs]
  [bottom]
    type = DirichletBC
    variable = temp
    boundary = 1
    value = 4
  []
  [top]
    type = DirichletBC
    variable = temp
    boundary = 2
    value = 1
  []
[]
[Materials]
  [constant]
    type = HeatConductionMaterial
    thermal_conductivity_temperature_function = thcond
    specific_heat_temperature_function = spheat
    temp = temp
  []
  [density]
    type = ParsedMaterial
    property_name = density
    coupled_variables = temp
    expression = 'temp^3 + 2/temp'
  []
  [density_dT]
    type = ParsedMaterial
    property_name = density_dT
    coupled_variables = temp
    expression = '3 * temp^2 - 2/temp/temp'
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  num_steps = 1
  dt = .1
  nl_max_its = 10
  dtmin = .1
[]
[Postprocessors]
  [avg]
    type = ElementAverageValue
    variable = temp
  []
[]
[Outputs]
  csv = true
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/rectangle_w_line.i)
[Mesh]
  parallel_type = 'replicated'
  [rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 5
    ny = 50
    xmin = -0.5
    xmax = 0.5
    ymin = -1.25
    ymax = 1.25
    boundary_name_prefix = rectangle
  []
  [rectangle_id]
    type = SubdomainIDGenerator
    input = rectangle
    subdomain_id = 1
  []
  [line]
    type = GeneratedMeshGenerator
    dim = 1
    xmin = -0.5
    xmax = 0.5
    nx = 10
    boundary_name_prefix = line
    boundary_id_offset = 10
  []
  [line_id]
    type = SubdomainIDGenerator
    input = line
    subdomain_id = 2
  []
  [combined]
    type = MeshCollectionGenerator
    inputs = 'rectangle_id line_id'
  []
  [blcok_rename]
    type = RenameBlockGenerator
    input = combined
    old_block = '1 2'
    new_block = 'rectangle line'
  []
[]
[Variables]
  [temperature]
  []
[]
[Kernels]
  [time_derivative]
    type = HeatConductionTimeDerivative
    variable = temperature
    block = 'rectangle'
  []
  [heat_conduction]
    type = HeatConduction
    variable = temperature
    block = 'rectangle'
  []
  [time_derivative_line]
    type = TrussHeatConductionTimeDerivative
    variable = temperature
    area = area
    block = 'line'
  []
  [heat_conduction_line]
    type = TrussHeatConduction
    variable = temperature
    area = area
    block = 'line'
  []
[]
[AuxVariables]
  [area]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [area]
    type = ConstantAux
    variable = area
    value = 0.1 # strip thickness
    execute_on = 'initial timestep_begin'
  []
[]
[Constraints]
  [equalvalue]
    type = EqualValueEmbeddedConstraint
    secondary = 'line'
    primary = 'rectangle'
    penalty = 1e6
    formulation = kinematic
    primary_variable = temperature
    variable = temperature
  []
[]
[Materials]
  [rectangle]
    type = GenericConstantMaterial
    block = 'rectangle'
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '1.0                 1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  []
  [line]
    type = GenericConstantMaterial
    block = 'line'
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '10.0                 1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  []
[]
[BCs]
  [right]
    type = FunctionDirichletBC
    variable = temperature
    boundary = 'rectangle_right line_right'
    function = '10*t'
  []
[]
[VectorPostprocessors]
  [x_n0_25]
    type = LineValueSampler
    start_point = '-0.25 0 0'
    end_point = '-0.25 1.25 0'
    num_points = 100
    variable = 'temperature'
    sort_by = id
  []
  [x_0_25]
    type = LineValueSampler
    start_point = '0.25 0 0'
    end_point = '0.25 1.25 0'
    num_points = 100
    variable = 'temperature'
    sort_by = id
  []
[]
[Executioner]
  type = Transient
  start_time = 0
  dt = 1
  end_time = 1
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
  [csv]
    type = CSV
    file_base = 'csv/rectangle_w_line'
    time_data = true
  []
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/rectangle_w_strip.i)
[Mesh]
  [rectangle]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 5
    ny = 50
    xmin = -0.5
    xmax = 0.5
    ymin = -1.25
    ymax = 1.25
  []
  [strip]
    type = SubdomainBoundingBoxGenerator
    input = rectangle
    bottom_left = '-0.5 -0.05 0'
    top_right = '0.5 0.05 0'
    block_id = 2
    block_name = 'strip'
    location = INSIDE
  []
  [top_bottom_layers]
    type = SubdomainBoundingBoxGenerator
    input = strip
    bottom_left = '-0.5 -0.05 0'
    top_right = '0.5 0.05 0'
    block_id = 1
    block_name = 'rectangle'
    location = OUTSIDE
  []
[]
[Variables]
  [temperature]
  []
[]
[Kernels]
  [time_derivative]
    type = HeatConductionTimeDerivative
    variable = temperature
  []
  [heat_conduction]
    type = HeatConduction
    variable = temperature
  []
[]
[Materials]
  [block]
    type = GenericConstantMaterial
    block = 'rectangle'
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '1.0                 1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  []
  [strip]
    type = GenericConstantMaterial
    block = 'strip'
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '10.0                 1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  []
[]
[BCs]
  [right]
    type = FunctionDirichletBC
    variable = temperature
    boundary = 'right'
    function = '10*t'
  []
[]
[VectorPostprocessors]
  [x_n0_25]
    type = LineValueSampler
    start_point = '-0.25 0 0'
    end_point = '-0.25 1.25 0'
    num_points = 100
    variable = 'temperature'
    sort_by = id
  []
  [x_0_25]
    type = LineValueSampler
    start_point = '0.25 0 0'
    end_point = '0.25 1.25 0'
    num_points = 100
    variable = 'temperature'
    sort_by = id
  []
[]
[Executioner]
  type = Transient
  start_time = 0
  dt = 1
  end_time = 1
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
  [csv]
    type = CSV
    file_base = 'csv/rectangle_w_strip'
    time_data = true
  []
[]
(modules/functional_expansion_tools/examples/3D_volumetric_Cartesian/main.i)
# Basic example coupling a master and sub app in a 3D Cartesian volume.
#
# The master app provides field values to the sub app via Functional Expansions, which then performs
# its calculations. The sub app's solution field values are then transferred back to the master app
# and coupled into the solution of the master app solution.
#
# This example couples Functional Expansions via AuxVariable.
#
# Note: this problem is not light, and may take a few minutes to solve.
[Mesh]
  type = GeneratedMesh
  dim = 3
  xmin = 0.0
  xmax = 10.0
  nx = 15
  ymin = 1.0
  ymax = 11.0
  ny = 25
  zmin = 2.0
  zmax = 12.0
  nz = 35
[]
[Variables]
  [./m]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[AuxVariables]
  [./s_in]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./diff_m]
    type = HeatConduction
    variable = m
  [../]
  [./time_diff_m]
    type = HeatConductionTimeDerivative
    variable = m
  [../]
  [./s_in] # Add in the contribution from the SubApp
    type = CoupledForce
    variable = m
    v = s_in
  [../]
[]
[AuxKernels]
  [./reconstruct_s_in]
    type = FunctionSeriesToAux
    variable = s_in
    function = FX_Basis_Value_Main
  [../]
[]
[Materials]
  [./Unobtanium]
    type = GenericConstantMaterial
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '1.0                  1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  [../]
[]
[ICs]
  [./start_m]
    type = ConstantIC
    variable = m
    value = 1
  [../]
[]
[BCs]
  [./surround]
    type = DirichletBC
    variable = m
    value = 1
    boundary = 'top bottom left right front back'
  [../]
[]
[Functions]
  [./FX_Basis_Value_Main]
    type = FunctionSeries
    series_type = Cartesian
    orders = '3   4   5'
    physical_bounds = '0.0  10.0    1.0 11.0    2.0 12.0'
    x = Legendre
    y = Legendre
    z = Legendre
  [../]
[]
[UserObjects]
  [./FX_Value_UserObject_Main]
    type = FXVolumeUserObject
    function = FX_Basis_Value_Main
    variable = m
  [../]
[]
[Postprocessors]
  [./average_value]
    type = ElementAverageValue
    variable = m
  [../]
  [./peak_value]
    type = ElementExtremeValue
    value_type = max
    variable = m
  [../]
  [./picard_iterations]
    type = NumFixedPointIterations
  [../]
[]
[Executioner]
  type = Transient
  num_steps = 10
  dt = 0.5
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
  fixed_point_max_its = 30
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-9
  fixed_point_rel_tol = 1e-8
  fixed_point_abs_tol = 1e-9
[]
[Outputs]
  exodus = true
[]
[MultiApps]
  [./FXTransferApp]
    type = TransientMultiApp
    input_files = sub.i
  [../]
[]
[Transfers]
  [./ValueToSub]
    type = MultiAppFXTransfer
    to_multi_app = FXTransferApp
    this_app_object_name = FX_Value_UserObject_Main
    multi_app_object_name = FX_Basis_Value_Sub
  [../]
  [./ValueToMe]
    type = MultiAppFXTransfer
    from_multi_app = FXTransferApp
    this_app_object_name = FX_Basis_Value_Main
    multi_app_object_name = FX_Value_UserObject_Sub
  [../]
[]
(modules/functional_expansion_tools/examples/1D_volumetric_Cartesian/main.i)
# Basic example coupling a master and sub app in a 1D Cartesian volume.
#
# The master app provides field values to the sub app via Functional Expansions, which then performs
# its calculations. The sub app's solution field values are then transferred back to the master app
# and coupled into the solution of the master app solution.
#
# This example couples Functional Expansions via AuxVariable.
[Mesh]
  type = GeneratedMesh
  dim = 1
  xmin = 0.0
  xmax = 10.0
  nx = 15
[]
[Variables]
  [./m]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[AuxVariables]
  [./s_in]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./diff_m]
    type = HeatConduction
    variable = m
  [../]
  [./time_diff_m]
    type = HeatConductionTimeDerivative
    variable = m
  [../]
  [./s_in] # Add in the contribution from the SubApp
    type = CoupledForce
    variable = m
    v = s_in
  [../]
[]
[AuxKernels]
  [./reconstruct_s_in]
    type = FunctionSeriesToAux
    variable = s_in
    function = FX_Basis_Value_Main
  [../]
[]
[Materials]
  [./Unobtanium]
    type = GenericConstantMaterial
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '1.0                  1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  [../]
[]
[ICs]
  [./start_m]
    type = ConstantIC
    variable = m
    value = 1
  [../]
[]
[BCs]
  [./surround]
    type = DirichletBC
    variable = m
    value = 1
    boundary = 'left right'
  [../]
[]
[Functions]
  [./FX_Basis_Value_Main]
    type = FunctionSeries
    series_type = Cartesian
    orders = '3'
    physical_bounds = '0.0  10.0'
    x = Legendre
  [../]
[]
[UserObjects]
  [./FX_Value_UserObject_Main]
    type = FXVolumeUserObject
    function = FX_Basis_Value_Main
    variable = m
  [../]
[]
[Postprocessors]
  [./average_value]
    type = ElementAverageValue
    variable = m
  [../]
  [./peak_value]
    type = ElementExtremeValue
    value_type = max
    variable = m
  [../]
  [./picard_iterations]
    type = NumFixedPointIterations
  [../]
[]
[Executioner]
  type = Transient
  num_steps = 10
  dt = 0.5
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
  fixed_point_max_its = 30
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-9
  fixed_point_rel_tol = 1e-8
  fixed_point_abs_tol = 1e-9
[]
[Outputs]
  exodus = true
[]
[MultiApps]
  [./FXTransferApp]
    type = TransientMultiApp
    input_files = sub.i
  [../]
[]
[Transfers]
  [./ValueToSub]
    type = MultiAppFXTransfer
    to_multi_app = FXTransferApp
    this_app_object_name = FX_Value_UserObject_Main
    multi_app_object_name = FX_Basis_Value_Sub
  [../]
  [./ValueToMe]
    type = MultiAppFXTransfer
    from_multi_app = FXTransferApp
    this_app_object_name = FX_Basis_Value_Main
    multi_app_object_name = FX_Value_UserObject_Sub
  [../]
[]
(modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_change_restart2.i)
# This is a test designed to evaluate the cabability of the
# IterationAdaptiveDT TimeStepper to adjust time step size according to
# a function.  For example, if the power input function for a BISON
# simulation rapidly increases or decreases, the IterationAdaptiveDT
# TimeStepper should take time steps small enough to capture the
# oscillation.
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  order = FIRST
  family = LAGRANGE
[]
[Mesh]
  file = 1hex8_10mm_cube.e
[]
[Functions]
  [./Fiss_Function]
    type = PiecewiseLinear
    x = '0 1e6  2e6  2.001e6 2.002e6'
    y = '0 3e8  3e8  12e8    0'
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./disp_z]
  [../]
  [./temp]
  [../]
[]
[Physics/SolidMechanics/QuasiStatic]
  [./all]
    strain = FINITE
    volumetric_locking_correction = true
    incremental = true
    eigenstrain_names = thermal_expansion
    decomposition_method = EigenSolution
    add_variables  = true
    generate_output = 'vonmises_stress'
    temperature = temp
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConduction
    variable = temp
  [../]
  [./heat_ie]
    type = HeatConductionTimeDerivative
    variable = temp
  [../]
  [./heat_source]
     type = HeatSource
     variable = temp
     value = 1.0
     function = Fiss_Function
  [../]
[]
[BCs]
 [./bottom_temp]
   type = DirichletBC
   variable = temp
   boundary = 1
   value = 300
 [../]
 [./top_bottom_disp_x]
   type = DirichletBC
   variable = disp_x
   boundary = '1'
   value = 0
 [../]
 [./top_bottom_disp_y]
   type = DirichletBC
   variable = disp_y
   boundary = '1'
   value = 0
 [../]
 [./top_bottom_disp_z]
   type = DirichletBC
   variable = disp_z
   boundary = '1'
   value = 0
 [../]
[]
[Materials]
 [./thermal]
    type = HeatConductionMaterial
    temp = temp
    specific_heat = 1.0
    thermal_conductivity = 1.0
  [../]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 300e6
    poissons_ratio = .3
  [../]
  [./stress]
    type = ComputeFiniteStrainElasticStress
  [../]
  [./thermal_expansion]
    type = ComputeThermalExpansionEigenstrain
    thermal_expansion_coeff = 5e-6
    stress_free_temperature = 300.0
    temperature = temp
    eigenstrain_name = thermal_expansion
  [../]
  [./density]
    type = Density
    density = 10963.0
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  verbose = true
  nl_abs_tol = 1e-10
  num_steps = 50000
  end_time = 2.002e6
  [./TimeStepper]
    type = IterationAdaptiveDT
    timestep_limiting_function = Fiss_Function
    max_function_change = 3e7
    dt = 1e6
  [../]
[]
[Postprocessors]
  [./Temperature_of_Block]
    type = ElementAverageValue
    variable = temp
    execute_on = 'timestep_end'
  [../]
  [./vonMises]
    type = ElementAverageValue
    variable = vonmises_stress
    execute_on = 'timestep_end'
  [../]
[]
[Outputs]
  [./out]
    type = Exodus
    elemental_as_nodal = true
  [../]
  [./console]
    type = Console
    max_rows = 10
  [../]
[]
[Problem]
  restart_file_base = adapt_tstep_function_change_restart1_checkpoint_cp/0065
[]
(modules/combined/test/tests/heat_convection/heat_convection_rz_tf_test.i)
# Test cases for convective boundary conditions. TKLarson, 11/01/11, rev. 0.
# Input file for htc_2dtest0
# TKLarson
# 11/01/11
# Revision 0
#
# Goals of this test are:
#  1) show that the 'fluid' temperature for convective boundary condition
#    is behaving as expected/desired
#  2) show that expected results ensue from application of convective boundary conditions
# Convective boundary condition:
#  q = h*A*(Tw - Tf)
#  where
#    q - heat transfer rate (w)
#    h - heat transfer coefficient (w/m^2-K)
#    A - surface area (m^2)
#    Tw - surface temperature (K)
#    Tf - fluid temperature adjacent to the surface (K)
# The heat transfer coefficient (h) is input as a variable called 'rate'
# Tf is a two valued function specified by 'initial' and 'final' along with a variable
#  called 'duration,' the length of time in seconds that it takes initial to linearly ramp
#  to 'final.'
# The mesh for this test case is based on an ASTM standard for the so-called Brazillian Cylinder test
# (ASTM International, Standard Test Method for Splitting Tensile Strength of Cylindrical Concrete
# Specimens, C 496/C 496M-04, 2004) (because I already had a version of the model).  While the
# Brazillian Cylinder test is for dynamic tensile testing of concrete, the model works for the present
# purposes.  The model is 2-d RZ coordinates.
#
# Brazillian Cylinder sample dimensions:
#       L = 20.3 cm, 0.203 m, (8 in)
#       r = 5.08 cm, 0.0508 m, (2 in)
# Material properties are:
#   density = 2405.28 km/m^3
#   specific heat = 826.4 J/kg-K
#   thermal conductivity 1.937 w/m-K
#  alpha (thermal conductivity/(density*specific heat) is then 9.74e-7 m^2/s
#
# Initial cylinder temperature is room temperature 294.26 K (70 F)
# The initial fluid temperature is room temperature. We will ramp it to 477.6 K (400 F) in 10 minutes.
# We will use a very large h (1000000) to make the surface temperature mimick the fluid temperature.
# What we expect for this problem:
#  1) Use of h = 1000000 should cause the cylinder surface temperature to track the fluid temperature
#  2) The fluid temperature should rise from initial (294.26 K) to final (477.6 K) in 600 s.
#  3) 1) and 2) should prove that the Tf boundary condition is ramping as desired.
# Note, we do the above because there is no way to plot a variable that is not on a mesh node!
[Mesh]    # Mesh Start
# 10cm x 20cm cylinder not so detailed mesh, 2 radial, 6 axial nodes
# Only one block (Block 1), all concrete
# Sideset 1 - top of cylinder, Sideset 2 - length of cylinder, Sideset 3 - bottom of cylinder
  file = heat_convection_rz_mesh.e
  coord_type = RZ
[]    # Mesh END
[Variables]  # Variables Start
  [./temp]
    order = FIRST
    family = LAGRANGE
    initial_condition = 294.26 # Initial cylinder temperature
  [../]
[]    # Variables END
[Kernels]  # Kernels Start
  [./heat]
    type = HeatConduction
    variable = temp
  [../]
  [./heat_ie]
    type = HeatConductionTimeDerivative
    variable = temp
  [../]
[]    # Kernels END
[BCs]    # Boundary Conditions Start
# Heat transfer coefficient on outer cylinder radius and ends
  [./convective_clad_surface]    # Convective Start
         type = ConvectiveFluxBC        # Convective flux, e.g. q'' = h*(Tw - Tf)
         boundary = '1 2 3'    # BC applied on top, along length, and bottom
         variable = temp
   rate = 1000000.   # convective heat transfer coefficient (w/m^2-K)[176000 "]
#         #  the above h is ~ infinity for present purposes
         initial = 294.26         # initial ambient (lab or oven) temperature (K)
         final = 477.6            # final ambient (lab or oven) temperature (K)
   duration = 600.   # length of time in seconds that it takes the ambient
         #     temperature to ramp from initial to final
  [../]          # Convective End
[]    # BCs END
[Materials]    # Materials Start
  [./thermal]
    type = HeatConductionMaterial
    block = 1
    specific_heat = 826.4
    thermal_conductivity = 1.937  # this makes alpha 9.74e-7 m^2/s
  [../]
  [./density]
    type = Density
    block = 1
    density = 2405.28
  [../]
[]      # Materials END
[Executioner]    # Executioner Start
   type = Transient
#   type = Steady
  #Preconditioned JFNK (default)
  solve_type = 'PJFNK'
   petsc_options = '-snes_ksp_ew '
   petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
   petsc_options_value = '70 hypre boomeramg'
   l_max_its = 60
   nl_rel_tol = 1e-8
   nl_abs_tol = 1e-10
   l_tol = 1e-5
   start_time = 0.0
  dt = 60.
  num_steps = 20  # Total run time 1200 s
[]      # Executioner END
[Outputs]    # Output Start
  # Output Start
  file_base = out_rz_tf
  exodus = true
[]      # Output END
#      # Input file END
(modules/heat_transfer/test/tests/thin_layer_heat_transfer/transient_3d.i)
[Mesh]
  [gen]
    type = GeneratedMeshGenerator
    nx = 10
    ny = 10
    nz = 2
    zmax = 0.2
    dim = 3
  []
  [block1]
    type = SubdomainBoundingBoxGenerator
    block_id = 1
    bottom_left = '0 0 0'
    top_right = '0.5 1 0.2'
    input = gen
  []
  [block2]
    type = SubdomainBoundingBoxGenerator
    block_id = 2
    bottom_left = '0.5 0 0'
    top_right = '1 1 0.2'
    input = block1
  []
  [breakmesh]
    input = block2
    type = BreakMeshByBlockGenerator
    block_pairs = '1 2'
    split_interface = true
    add_interface_on_two_sides = true
  []
[]
[Variables]
  [temperature]
  []
[]
[Kernels]
  [time]
    type = HeatConductionTimeDerivative
    variable = temperature
  []
  [thermal_cond]
    type = HeatConduction
    variable = temperature
  []
[]
[InterfaceKernels]
  [thin_layer]
    type = ThinLayerHeatTransfer
    thermal_conductivity = thermal_conductivity_layer
    specific_heat = specific_heat_layer
    density = density_layer
    heat_source = heat_source_layer
    thickness = 0.01
    variable = temperature
    neighbor_var = temperature
    boundary = Block1_Block2
  []
[]
[BCs]
  [left_temp]
    type = DirichletBC
    value = 0
    variable = temperature
    boundary = left
  []
  [right_temp]
    type = DirichletBC
    value = 0
    variable = temperature
    boundary = right
  []
[]
[Materials]
  [thermal_cond]
    type = GenericConstantMaterial
    prop_names = 'thermal_conductivity specific_heat density'
    prop_values = '1 1 1'
  []
  [thermal_cond_layer]
    type = GenericConstantMaterial
    prop_names = 'thermal_conductivity_layer specific_heat_layer heat_source_layer density_layer'
    prop_values = '0.05 1 10000 1'
    boundary = Block1_Block2
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  nl_rel_tol = 1e-10
  nl_abs_tol = 1e-10
  dt = 0.05
  num_steps = 2
[]
[Outputs]
  print_linear_residuals = false
  exodus = true
[]
(modules/functional_expansion_tools/examples/2D_interface_different_submesh/sub.i)
# Derived from the example '2D_interface' with the following differences:
#
#   1) The number of y divisions in the sub app is not the same as the master app
#   2) The subapp mesh is skewed in y
#   3) The Functional Expansion order for the flux term was increased to 7
[Mesh]
  type = GeneratedMesh
  dim = 2
  xmin = 0.4
  xmax = 2.4
  nx = 30
  ymin = 0.0
  ymax = 10.0
  ny = 23
  bias_y = 1.2
[]
[Variables]
  [./s]
  [../]
[]
[Kernels]
  [./diff_s]
    type = HeatConduction
    variable = s
  [../]
  [./time_diff_s]
    type = HeatConductionTimeDerivative
    variable = s
  [../]
[]
[Materials]
  [./Unobtanium]
    type = GenericConstantMaterial
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '1.0                  1.0           1.0' # W/(cm K), J/(g K), g/cm^3
  [../]
[]
[ICs]
  [./start_s]
    type = ConstantIC
    value = 2
    variable = s
  [../]
[]
[BCs]
  [./bottom]
    type = DirichletBC
    variable = s
    boundary = bottom
    value = 0.1
  [../]
  [./interface_flux]
    type = FXFluxBC
    boundary = left
    variable = s
    function = FX_Basis_Flux_Sub
  [../]
[]
[Functions]
  [./FX_Basis_Value_Sub]
    type = FunctionSeries
    series_type = Cartesian
    orders = '4'
    physical_bounds = '0.0 10'
    y = Legendre
  [../]
  [./FX_Basis_Flux_Sub]
    type = FunctionSeries
    series_type = Cartesian
    orders = '7'
    physical_bounds = '0.0 10'
    y = Legendre
  [../]
[]
[UserObjects]
  [./FX_Value_UserObject_Sub]
    type = FXBoundaryValueUserObject
    function = FX_Basis_Value_Sub
    variable = s
    boundary = left
  [../]
  [./FX_Flux_UserObject_Sub]
    type = FXBoundaryFluxUserObject
    function = FX_Basis_Flux_Sub
    variable = s
    boundary = left
    diffusivity = thermal_conductivity
  [../]
[]
[Executioner]
  type = Transient
  num_steps = 10
  dt = 1.0
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
(modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_quad_template.i)
[Mesh]
  type = GeneratedMesh
  dim = 2
  nx = 5
  ny = 1
  xmin = 0.0
  xmax = 0.1
  ymin = 0.0
  ymax = 0.01
  elem_type = QUAD4
[]
[Variables]
  [./temp]
    initial_condition = 0.0
  [../]
[]
[BCs]
  [./FixedTempLeft]
    type = DirichletBC
    variable = temp
    boundary = left
    value = 0.0
  [../]
  [./FunctionTempRight]
    type = FunctionDirichletBC
    variable = temp
    boundary = right
    function = '100.0 * sin(pi*t/40)'
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConduction
    variable = temp
  [../]
  [./HeatTdot]
    type = HeatConductionTimeDerivative
    variable = temp
  [../]
[]
[Materials]
  [./density]
    type = GenericConstantMaterial
    prop_names = 'thermal_conductivity specific_heat density'
    prop_values = '35.0 440.5 7200.0'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  l_tol = 1e-5
  nl_max_its = 50
  nl_rel_tol = 1e-10
  nl_abs_tol = 1e-12
  dt = 1
  end_time = 32.0
[]
[Postprocessors]
  [./target_temp]
    type = NodalVariableValue
    variable = temp
    nodeid = 9
  [../]
[]
[Outputs]
  csv = true
[]
(modules/functional_expansion_tools/examples/2D_interface/main.i)
# Basic example coupling a master and sub app at an interface in a 2D model.
# The master app provides a flux term to the sub app via Functional Expansions, which then performs
# its calculations.  The sub app's interface conditions, both value and flux, are transferred back
# to the master app
[Mesh]
  type = GeneratedMesh
  dim = 2
  xmin = 0.0
  xmax = 0.4
  nx = 6
  ymin = 0.0
  ymax = 10.0
  ny = 20
[]
[Variables]
  [./m]
  [../]
[]
[Kernels]
  [./diff_m]
    type = HeatConduction
    variable = m
  [../]
  [./time_diff_m]
    type = HeatConductionTimeDerivative
    variable = m
  [../]
  [./source_m]
    type = BodyForce
    variable = m
    value = 100
  [../]
[]
[Materials]
  [./Impervium]
    type = GenericConstantMaterial
    prop_names =  'thermal_conductivity specific_heat density'
    prop_values = '0.00001              50.0          100.0' # W/(cm K), J/(g K), g/cm^3
  [../]
[]
[ICs]
  [./start_m]
    type = ConstantIC
    value = 2
    variable = m
  [../]
[]
[BCs]
  [./interface_value]
    type = FXValueBC
    variable = m
    boundary = right
    function = FX_Basis_Value_Main
  [../]
  [./interface_flux]
    type = FXFluxBC
    boundary = right
    variable = m
    function = FX_Basis_Flux_Main
  [../]
[]
[Functions]
  [./FX_Basis_Value_Main]
    type = FunctionSeries
    series_type = Cartesian
    orders = '4'
    physical_bounds = '0.0 10'
    y = Legendre
  [../]
  [./FX_Basis_Flux_Main]
    type = FunctionSeries
    series_type = Cartesian
    orders = '5'
    physical_bounds = '0.0 10'
    y = Legendre
  [../]
[]
[UserObjects]
  [./FX_Flux_UserObject_Main]
    type = FXBoundaryFluxUserObject
    function = FX_Basis_Flux_Main
    variable = m
    boundary = right
    diffusivity = thermal_conductivity
  [../]
[]
[Postprocessors]
  [./average_interface_value]
    type = SideAverageValue
    variable = m
    boundary = right
  [../]
  [./total_flux]
    type = SideDiffusiveFluxIntegral
    variable = m
    boundary = right
    diffusivity = thermal_conductivity
  [../]
  [./picard_iterations]
    type = NumFixedPointIterations
    execute_on = 'initial timestep_end'
  [../]
[]
[Executioner]
  type = Transient
  num_steps = 10
  dt = 1.0
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
  fixed_point_max_its = 30
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-9
  fixed_point_rel_tol = 1e-8
  fixed_point_abs_tol = 1e-9
[]
[Outputs]
  exodus = true
[]
[MultiApps]
  [./FXTransferApp]
    type = TransientMultiApp
    input_files = sub.i
    sub_cycling = true
  [../]
[]
[Transfers]
  [./FluxToSub]
    type = MultiAppFXTransfer
    to_multi_app = FXTransferApp
    this_app_object_name = FX_Flux_UserObject_Main
    multi_app_object_name = FX_Basis_Flux_Sub
  [../]
  [./ValueToMe]
    type = MultiAppFXTransfer
    from_multi_app = FXTransferApp
    this_app_object_name = FX_Basis_Value_Main
    multi_app_object_name = FX_Value_UserObject_Sub
  [../]
  [./FluxToMe]
    type = MultiAppFXTransfer
    from_multi_app = FXTransferApp
    this_app_object_name = FX_Basis_Flux_Main
    multi_app_object_name = FX_Flux_UserObject_Sub
  [../]
[]
(modules/combined/tutorials/introduction/thermal_mechanical/thermomech_step01.i)
#
# Single block coupled thermal/mechanical
# https://mooseframework.inl.gov/modules/combined/tutorials/introduction/thermoech_step01.html
#
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [generated]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 10
    ny = 10
    xmax = 2
    ymax = 1
  []
  [pin]
    type = ExtraNodesetGenerator
    input = generated
    new_boundary = pin
    coord = '0 0 0'
  []
[]
[Variables]
  [T]
    initial_condition = 300.0
  []
[]
[Kernels]
  [heat_conduction]
    type = HeatConduction
    variable = T
  []
  [time_derivative]
    type = HeatConductionTimeDerivative
    variable = T
  []
  [heat_source]
    type = HeatSource
    variable = T
    value = 5e4
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = true
    strain = FINITE
    automatic_eigenstrain_names = true
    generate_output = 'vonmises_stress'
  []
[]
[Materials]
  [thermal]
    type = HeatConductionMaterial
    thermal_conductivity = 45.0
    specific_heat = 0.5
  []
  [density]
    type = GenericConstantMaterial
    prop_names = 'density'
    prop_values = 8000.0
  []
  [elasticity]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1e9
    poissons_ratio = 0.3
  []
  [expansion1]
    type = ComputeThermalExpansionEigenstrain
    temperature = T
    thermal_expansion_coeff = 0.001
    stress_free_temperature = 300
    eigenstrain_name = thermal_expansion
  []
  [stress]
    type = ComputeFiniteStrainElasticStress
  []
[]
[BCs]
  [t_left]
    type = DirichletBC
    variable = T
    value = 300
    boundary = 'left'
  []
  [t_right]
    type = FunctionDirichletBC
    variable = T
    function = '300+5*t'
    boundary = 'right'
  []
  [pin_x]
    type = DirichletBC
    variable = disp_x
    boundary = pin
    value = 0
  []
  [bottom_y]
    type = DirichletBC
    variable = disp_y
    boundary = bottom
    value = 0
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  end_time = 5
  dt = 1
[]
[Outputs]
  exodus = true
[]
(modules/combined/tutorials/introduction/thermal_mechanical_contact/thermomech_cont_step01.i)
#
# A first attempt at thermo mechanical contact
# https://mooseframework.inl.gov/modules/combined/tutorials/introduction/step01.html
#
[GlobalParams]
  displacements = 'disp_x disp_y'
  block = 0
[]
[Mesh]
  [generated1]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 5
    ny = 15
    xmin = -0.6
    xmax = -0.1
    ymax = 5
    bias_y = 0.9
    boundary_name_prefix = pillar1
  []
  [generated2]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 6
    ny = 15
    xmin = 0.1
    xmax = 0.6
    ymax = 4.999
    bias_y = 0.9
    boundary_name_prefix = pillar2
    boundary_id_offset = 4
  []
  [collect_meshes]
    type = MeshCollectionGenerator
    inputs = 'generated1 generated2'
  []
  patch_update_strategy = iteration
[]
[Variables]
  # temperature field variable
  [T]
    # initialize to an average temperature
    initial_condition = 50
    order = FIRST
    family = LAGRANGE
  []
  # temperature lagrange multiplier
  [Tlm]
    block = 'pillars_secondary_subdomain'
    order = FIRST
    family = LAGRANGE
  []
[]
[Kernels]
  [heat_conduction]
    type = HeatConduction
    variable = T
  []
  [dTdt]
    type = HeatConductionTimeDerivative
    variable = T
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = true
    strain = FINITE
    generate_output = 'vonmises_stress'
  []
[]
[Contact]
  [pillars]
    primary = pillar1_right
    secondary = pillar2_left
    model = frictionless
    formulation = mortar
  []
[]
[Constraints]
  # thermal contact constraint
  [Tlm]
    type = GapConductanceConstraint
    variable = Tlm
    secondary_variable = T
    use_displaced_mesh = true
    k = 1e-1
    primary_boundary = pillar1_right
    primary_subdomain = pillars_primary_subdomain
    secondary_boundary = pillar2_left
    secondary_subdomain = pillars_secondary_subdomain
  []
[]
[BCs]
  [bottom_x]
    type = DirichletBC
    variable = disp_x
    boundary = 'pillar1_bottom pillar2_bottom'
    value = 0
  []
  [bottom_y]
    type = DirichletBC
    variable = disp_y
    boundary = 'pillar1_bottom pillar2_bottom'
    value = 0
  []
  [Pressure]
    [sides]
      boundary = 'pillar1_left pillar2_right'
      function = 1e4*t^2
    []
  []
  # thermal boundary conditions (pillars are heated/cooled from the bottom)
  [heat_left]
    type = DirichletBC
    variable = T
    boundary = pillar1_bottom
    value = 100
  []
  [cool_right]
    type = DirichletBC
    variable = T
    boundary = pillar2_bottom
    value = 0
  []
[]
[Materials]
  [elasticity]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1e9
    poissons_ratio = 0.3
  []
  [stress]
    type = ComputeFiniteStrainElasticStress
  []
  # thermal properties
  [thermal_conductivity]
    type = HeatConductionMaterial
    thermal_conductivity = 100
    specific_heat = 1
  []
  [density]
    type = Density
    density = 1
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  line_search = none
  # we deal with the saddle point structure of the system by adding a small shift
  petsc_options_iname = '-pc_type -pc_factor_shift_type'
  petsc_options_value = 'lu       nonzero'
  end_time = 5
  dt = 0.1
  [Predictor]
    type = SimplePredictor
    scale = 1
  []
[]
[Outputs]
  exodus = true
  print_linear_residuals = false
  perf_graph = true
[]
(modules/combined/test/tests/adaptive_timestepping/adapt_tstep_function_change_restart1.i)
# This is a test designed to evaluate the cabability of the
# IterationAdaptiveDT TimeStepper to adjust time step size according to
# a function.  For example, if the power input function for a BISON
# simulation rapidly increases or decreases, the IterationAdaptiveDT
# TimeStepper should take time steps small enough to capture the
# oscillation.
[GlobalParams]
  order = FIRST
  family = LAGRANGE
  displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
  file = 1hex8_10mm_cube.e
[]
[Functions]
  [./Fiss_Function]
    type = PiecewiseLinear
    x = '0 1e6  2e6  2.001e6 2.002e6'
    y = '0 3e8  3e8  12e8    0'
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./disp_z]
  [../]
  [./temp]
    initial_condition = 300.0
  [../]
[]
[Physics/SolidMechanics/QuasiStatic]
  [./all]
    strain = FINITE
    incremental = true
    volumetric_locking_correction = true
    eigenstrain_names = thermal_expansion
    decomposition_method = EigenSolution
    add_variables  = true
    generate_output = 'vonmises_stress'
    temperature = temp
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConduction
    variable = temp
  [../]
  [./heat_ie]
    type = HeatConductionTimeDerivative
    variable = temp
  [../]
  [./heat_source]
     type = HeatSource
     variable = temp
     value = 1.0
     function = Fiss_Function
  [../]
[]
[BCs]
 [./bottom_temp]
   type = DirichletBC
   variable = temp
   boundary = 1
   value = 300
 [../]
 [./top_bottom_disp_x]
   type = DirichletBC
   variable = disp_x
   boundary = '1'
   value = 0
 [../]
 [./top_bottom_disp_y]
   type = DirichletBC
   variable = disp_y
   boundary = '1'
   value = 0
 [../]
 [./top_bottom_disp_z]
   type = DirichletBC
   variable = disp_z
   boundary = '1'
   value = 0
 [../]
[]
[Materials]
 [./thermal]
    type = HeatConductionMaterial
    temp = temp
    specific_heat = 1.0
    thermal_conductivity = 1.0
  [../]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 300e6
    poissons_ratio = .3
  [../]
  [./stress]
    type = ComputeFiniteStrainElasticStress
  [../]
  [./thermal_expansion]
    type = ComputeThermalExpansionEigenstrain
    thermal_expansion_coeff = 5e-6
    stress_free_temperature = 300.0
    temperature = temp
    eigenstrain_name = thermal_expansion
  [../]
  [./density]
    type = Density
    density = 10963.0
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  verbose = true
  nl_abs_tol = 1e-10
  start_time = 0.0
  num_steps = 65
  end_time = 2.002e6
  [./TimeStepper]
    type = IterationAdaptiveDT
    timestep_limiting_function = Fiss_Function
    max_function_change = 3e7
    dt = 1e6
  [../]
[]
[Postprocessors]
  [./Temperature_of_Block]
    type = ElementAverageValue
    variable = temp
    execute_on = 'initial timestep_end'
  [../]
  [./vonMises]
    type = ElementAverageValue
    variable = vonmises_stress
    execute_on = 'initial timestep_end'
  [../]
[]
[Outputs]
  [./out]
    type = Exodus
    elemental_as_nodal = true
  [../]
  [./console]
    type = Console
    max_rows = 10
  [../]
  [./checkpoint]
    type = Checkpoint
    num_files = 1
  [../]
[]
(modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_edge_template.i)
[Mesh]
  type = GeneratedMesh
  dim = 1
  nx = 5
  xmin = 0.0
  xmax = 0.1
  elem_type = EDGE2
[]
[Variables]
  [./temp]
    initial_condition = 0.0
  [../]
[]
[BCs]
  [./FixedTempLeft]
    type = DirichletBC
    variable = temp
    boundary = left
    value = 0.0
  [../]
  [./FunctionTempRight]
    type = FunctionDirichletBC
    variable = temp
    boundary = right
    function = '100.0 * sin(pi*t/40)'
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConduction
    variable = temp
  [../]
  [./HeatTdot]
    type = HeatConductionTimeDerivative
    variable = temp
  [../]
[]
[Materials]
  [./density]
    type = GenericConstantMaterial
    prop_names = 'thermal_conductivity specific_heat density'
    prop_values = '35.0 440.5 7200.0'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  l_tol = 1e-5
  nl_max_its = 50
  nl_rel_tol = 1e-10
  nl_abs_tol = 1e-12
  dt = 1
  end_time = 32.0
[]
[Postprocessors]
  [./target_temp]
    type = NodalVariableValue
    variable = temp
    nodeid = 4
  [../]
[]
[Outputs]
  csv = true
[]
(modules/heat_transfer/include/kernels/TrussHeatConductionTimeDerivative.h)
// This file is part of the MOOSE framework
// https://mooseframework.inl.gov
//
// All rights reserved, see COPYRIGHT for full restrictions
// https://github.com/idaholab/moose/blob/master/COPYRIGHT
//
// Licensed under LGPL 2.1, please see LICENSE for details
// https://www.gnu.org/licenses/lgpl-2.1.html
#pragma once
#include "HeatConductionTimeDerivative.h"
#include "Material.h"
class TrussHeatConductionTimeDerivative : public HeatConductionTimeDerivative
{
public:
  static InputParameters validParams();
  TrussHeatConductionTimeDerivative(const InputParameters & parameters);
protected:
  virtual Real computeQpResidual() override;
  virtual Real computeQpJacobian() override;
  /// Coupled variable for the cross-sectional area of truss element
  const VariableValue & _area;
};