- TPrescribed temperature [K]
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:Yes
Description:Prescribed temperature [K]
 - boundaryList of boundary names for which this component applies
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:List of boundary names for which this component applies
 - hsHeat structure name
C++ Type:std::string
Controllable:No
Description:Heat structure name
 
HSBoundarySpecifiedTemperature
This component is a heat structure boundary that applies Dirichlet boundary conditions.
Usage
The parameter "hs" specifies the name of the heat structure component, and "boundary" is a list of boundary names on the heat structure where the boundary condition is to be applied.
The parameter "T" specifies the temperature function to strongly impose on the boundary.
Input Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
 - enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.
 
Advanced Parameters
Formulation
For Dirichlet conditions on the boundary , the temperature is set to a known temperature function :
Input Files
- (modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_structure_3d/steady_state.i)
 - (modules/thermal_hydraulics/test/tests/components/geometrical_component/err.2nd_order.i)
 - (modules/thermal_hydraulics/test/tests/components/heat_structure_base/phy.sub_discretization.i)
 - (modules/thermal_hydraulics/test/tests/components/heat_structure_base/2nd_order.i)
 - (modules/thermal_hydraulics/test/tests/components/heat_structure_cylindrical/steady.i)
 - (modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_structure/test.i)
 - (modules/thermal_hydraulics/test/tests/components/heat_structure_base/err.no_2nd_order_with_trap.i)
 - (modules/thermal_hydraulics/test/tests/components/heat_structure_plate/part_base.i)
 - (modules/thermal_hydraulics/test/tests/components/heat_structure_cylindrical/part_base.i)
 - (modules/thermal_hydraulics/test/tests/components/heat_structure_from_file_3d/phy.standalone.i)
 - (modules/thermal_hydraulics/test/tests/misc/restart_1phase/test.i)
 - (modules/thermal_hydraulics/test/tests/components/file_mesh_component/file_mesh_component.i)
 - (modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_transfer_from_heat_structure_3d/test.i)
 - (modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_transfer_from_heat_structure_3d/steady_state.i)
 - (modules/thermal_hydraulics/test/tests/components/hs_boundary_specified_temperature/err.no_bnd.i)
 - (modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_structure_3d/test.i)
 - (modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_structure/steady_state.i)
 - (modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_transfer_from_heat_structure/test.i)
 - (modules/thermal_hydraulics/test/tests/components/heat_structure_base/err.no_T_ic.i)
 - (modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_transfer_from_heat_structure/steady_state.i)
 - (modules/thermal_hydraulics/test/tests/components/heat_structure_base/phy.variable_init_t.i)
 
hs
C++ Type:std::string
Controllable:No
Description:Heat structure name
boundary
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:List of boundary names for which this component applies
T
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:Yes
Description:Prescribed temperature [K]
(modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_structure_3d/steady_state.i)
[Materials]
  [mat]
    type = ADGenericConstantMaterial
    prop_names = 'density specific_heat thermal_conductivity'
    prop_values = '16 356 6.5514e3'
  []
[]
[Functions]
  [Ts_init]
    type = ParsedFunction
    expression = '2*sin(x*pi/2)+2*sin(pi*y) +507'
  []
[]
[Components]
  [blk]
    type = HeatStructureFromFile3D
    file = box.e
    position = '0 0 0'
    initial_T = Ts_init
  []
  [right_bnd]
    type = HSBoundarySpecifiedTemperature
    hs = blk
    boundary = blk:right
    T = Ts_init
  []
[]
[Executioner]
  type = Transient
  dt = 1
  num_steps = 100
  abort_on_solve_fail = true
  solve_type = 'NEWTON'
  line_search = 'basic'
  nl_rel_tol = 1e-7
  nl_abs_tol = 1e-8
  nl_max_its = 10
  l_tol = 1e-3
  l_max_its = 100
[]
[Outputs]
  exodus = true
  execute_on = 'initial final'
[]
(modules/thermal_hydraulics/test/tests/components/geometrical_component/err.2nd_order.i)
[GlobalParams]
  gravity_vector = '0 0 0'
  initial_p = 1e6
  initial_T = 353.1
  initial_vel = 0.0
  2nd_order_mesh = true
  closures = simple_closures
[]
[Closures]
  [simple_closures]
    type = Closures1PhaseSimple
  []
[]
[SolidProperties]
  [hs-mat]
    type = ThermalFunctionSolidProperties
    k = 1
    cp = 1
    rho = 1
  []
[]
[Components]
  [hs]
    type = HeatStructureCylindrical
    position = '0 0 0'
    orientation = '1 0 0'
    length = 1
    n_elems = 2
    names = 'blk'
    widths = '1'
    n_part_elems = '2'
    solid_properties = 'hs-mat'
    solid_properties_T_ref = '300'
    initial_T = 350
  []
  [start]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = hs:start
    T = 300
  []
[]
[Preconditioning]
  [pc]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  scheme = 'bdf2'
  dt = 0.1
  dtmin = 1.e-7
  solve_type = 'PJFNK'
  line_search = 'basic'
  nl_rel_tol = 1e-5
  nl_abs_tol = 1e-6
  nl_max_its = 30
  l_tol = 1e-3
  l_max_its = 100
  start_time = 0.0
  end_time = 4.0
  [Quadrature]
    type = TRAP
    order = FIRST
  []
[]
[Outputs]
  [out]
    type = Exodus
  []
[]
(modules/thermal_hydraulics/test/tests/components/heat_structure_base/phy.sub_discretization.i)
#
# Testing the ability to discretize the HeatStructure by dividing it into
# axial subsections
#
[GlobalParams]
[]
[SolidProperties]
  [fuel-mat]
    type = ThermalFunctionSolidProperties
    k = 3.65
    cp = 288.734
    rho = 1.0412e2
  []
  [gap-mat]
    type = ThermalFunctionSolidProperties
    k = 1.084498
    cp = 1.0
    rho = 1.0
  []
  [clad-mat]
    type = ThermalFunctionSolidProperties
    k = 16.48672
    cp = 321.384
    rho = 6.6e1
  []
[]
[Components]
  [hs]
    type = HeatStructureCylindrical
    position = '0 0 1'
    orientation = '1 0 0'
    axial_region_names = 'reg1 reg2'
    length = '2.0 1.6576'
    n_elems = '7   4'
    names = 'FUEL GAP CLAD'
    widths = '0.0046955  0.0000955  0.000673'
    n_part_elems = '10 3 3'
    solid_properties = 'fuel-mat gap-mat clad-mat'
    solid_properties_T_ref = '300 300 300'
    initial_T = 300
  []
  [temp_outside]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = hs:outer
    T = 300
  []
[]
[Preconditioning]
  [SMP_PJFNK]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  scheme = 'bdf2'
  start_time = 0
  dt = 1
  num_steps = 1
  abort_on_solve_fail = true
  solve_type = 'PJFNK'
  nl_rel_tol = 1e-6
  nl_abs_tol = 1e-6
  nl_max_its = 30
  l_tol = 1e-4
  l_max_its = 300
[]
[Outputs]
  [out]
    type = Exodus
  []
  [console]
    type = Console
    execute_scalars_on = none
  []
[]
(modules/thermal_hydraulics/test/tests/components/heat_structure_base/2nd_order.i)
# This tests ensures that 2nd-order meshes can be used; it checks for the
# "Solve Converged" string at the end of a time step.
[GlobalParams]
  2nd_order_mesh = true
[]
[SolidProperties]
  [fuel-mat]
    type = ThermalFunctionSolidProperties
    k = 3.65
    cp = 288.734
    rho = 1.0412e2
  []
  [gap-mat]
    type = ThermalFunctionSolidProperties
    k = 1.084498
    cp = 1.0
    rho = 1.0
  []
  [clad-mat]
    type = ThermalFunctionSolidProperties
    k = 16.48672
    cp = 321.384
    rho = 6.6e1
  []
[]
[Components]
  [reactor]
    type = TotalPower
    power = 296153.84615384615385
  []
  [hs]
    type = HeatStructureCylindrical
    position = '0 0 0'
    orientation = '1 0 0'
    length = 1
    n_elems = 1
    names = 'FUEL GAP CLAD'
    widths = '0.0046955  0.0000955  0.000673'
    n_part_elems = '1 1 1'
    solid_properties = 'fuel-mat gap-mat clad-mat'
    solid_properties_T_ref = '300 300 300'
    initial_T = 564.15
  []
  [hg]
    type = HeatSourceFromTotalPower
    hs = hs
    regions = 'FUEL'
    power_fraction = 3.33672612e-1
    power = reactor
  []
  [temp_outside]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = hs:outer
    T = 600
  []
[]
[Preconditioning]
  [SMP_PJFNK]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  scheme = 'bdf2'
  start_time = 0
  dt = 0.1
  num_steps = 1
  abort_on_solve_fail = true
  solve_type = 'PJFNK'
  nl_rel_tol = 1e-6
  nl_abs_tol = 1e-6
  nl_max_its = 30
  l_tol = 1e-4
  l_max_its = 300
[]
(modules/thermal_hydraulics/test/tests/components/heat_structure_cylindrical/steady.i)
# Tests that cylindrical heat structure geometry can be used with a steady executioner.
[Functions]
  [power_profile_fn]
    type = ParsedFunction
    expression = '1.570796326794897 * sin(x / 3.6576 * pi)'
  []
[]
[SolidProperties]
  [fuel_sp]
    type = ThermalFunctionSolidProperties
    rho = 1.0412e2
    cp = 288.734
    k = 3.65
  []
  [gap_sp]
    type = ThermalFunctionSolidProperties
    rho = 1.0
    cp = 1.0
    k = 1.084498
  []
  [clad_sp]
    type = ThermalFunctionSolidProperties
    rho = 6.6e1
    cp = 321.384
    k = 16.48672
  []
[]
[Components]
  [reactor]
    type = TotalPower
    power = 296153.84615384615385
  []
  [hs]
    type = HeatStructureCylindrical
    position = '0 0 1'
    orientation = '1 0 0'
    length = 3.6576
    n_elems = 20
    names = 'FUEL GAP CLAD'
    widths = '0.0046955  0.0000955  0.000673'
    n_part_elems = '3 1 1'
    solid_properties = 'fuel_sp gap_sp clad_sp'
    solid_properties_T_ref = '300 300 300'
    initial_T = 564.15
  []
  [hg]
    type = HeatSourceFromTotalPower
    hs = hs
    regions = 'FUEL'
    power_fraction = 3.33672612e-1
    power = reactor
    power_shape_function = power_profile_fn
  []
  [temp_outside]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = hs:outer
    T = 600
  []
[]
[Preconditioning]
  [pc]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  nl_rel_tol = 1e-6
  nl_abs_tol = 1e-6
  nl_max_its = 30
  l_tol = 1e-4
  l_max_its = 300
[]
[Outputs]
  [out]
    type = Exodus
  []
  [console]
    type = Console
    execute_scalars_on = none
  []
[]
(modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_structure/test.i)
# Test that the initial conditions read from the exodus file are correct
[GlobalParams]
  initial_from_file = 'steady_state_out.e'
[]
[SolidProperties]
  [mat1]
    type = ThermalFunctionSolidProperties
    k = 16
    cp = 356.
    rho = 6.551400E+03
  []
[]
[Functions]
  [Ts_bc]
    type = ParsedFunction
    expression = '2*sin(x*pi)+507'
  []
[]
[Components]
  [hs]
    type = HeatStructureCylindrical
    position = '1 0 0'
    orientation = '1 0 0'
    length = 1
    n_elems = 3
    names = 'wall'
    n_part_elems = 1
    solid_properties = 'mat1'
    solid_properties_T_ref = '300'
    widths = 0.1
  []
  [temp_outside]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = hs:outer
    T = Ts_bc
  []
[]
[Preconditioning]
  [pc]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  scheme = 'bdf2'
  start_time = 0
  dt = 1
  num_steps = 1
  abort_on_solve_fail = true
  solve_type = 'NEWTON'
  line_search = 'basic'
  nl_rel_tol = 1e-7
  nl_abs_tol = 1e-8
  nl_max_its = 10
  l_tol = 1e-3
  l_max_its = 100
[]
[Outputs]
  exodus = true
  execute_on = 'initial'
  velocity_as_vector = false
[]
(modules/thermal_hydraulics/test/tests/components/heat_structure_base/err.no_2nd_order_with_trap.i)
[GlobalParams]
  initial_p = 15.17e6
  initial_vel = 1.
  initial_T = 564.15
  2nd_order_mesh = true
[]
[SolidProperties]
  [fuel-mat]
    type = ThermalFunctionSolidProperties
    k = 3.65
    cp = 288.734
    rho = 1.0412e2
  []
  [gap-mat]
    type = ThermalFunctionSolidProperties
    k = 1.084498
    cp = 1.0
    rho = 1.0
  []
  [clad-mat]
    type = ThermalFunctionSolidProperties
    k = 16.48672
    cp = 321.384
    rho = 6.6e1
  []
[]
[Components]
  [reactor]
    type = TotalPower
    power = 296153.84615384615385
  []
  [hs]
    type = HeatStructureCylindrical
    position = '0 0 0'
    orientation = '1 0 0'
    length = 1
    n_elems = 1
    names = 'FUEL GAP CLAD'
    widths = '0.0046955  0.0000955  0.000673'
    n_part_elems = '1 1 1'
    solid_properties = 'fuel-mat gap-mat clad-mat'
    solid_properties_T_ref = '300 300 300'
    initial_T = 564.15
  []
  [hg]
    type = HeatSourceFromTotalPower
    hs = hs
    regions = 'FUEL'
    power_fraction = 3.33672612e-1
    power = reactor
  []
  [temp_outside]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = hs:outer
    T = 600
  []
[]
[Preconditioning]
  [SMP_PJFNK]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  scheme = 'bdf2'
  dt = 0.1
  dtmin = 1e-1
  solve_type = 'PJFNK'
  nl_rel_tol = 1e-6
  nl_abs_tol = 1e-6
  nl_max_its = 30
  l_tol = 1e-4
  l_max_its = 300
  start_time = 0.0
  end_time = 2.0
  [Quadrature]
    type = TRAP
    order = FIRST
  []
[]
(modules/thermal_hydraulics/test/tests/components/heat_structure_plate/part_base.i)
[Components]
  [hs]
    type = HeatStructurePlate
    position = '0 0 0'
    orientation = '1 0 0'
    length = 1
    n_elems = 5
    names = 'blk'
    widths = '1'
    depth = 0.5
    n_part_elems = '5'
    initial_T = 350
  []
  [start]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = hs:start
    T = 300
  []
  [end]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = hs:end
    T = 400
  []
[]
[Preconditioning]
  [pc]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  scheme = 'bdf2'
  start_time = 0
  dt = 1
  num_steps = 10
  abort_on_solve_fail = true
  solve_type = 'NEWTON'
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-8
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
[]
[Outputs]
  file_base = transient
  exodus = true
[]
(modules/thermal_hydraulics/test/tests/components/heat_structure_cylindrical/part_base.i)
[Functions]
  [power_profile_fn]
    type = ParsedFunction
    expression = '1.570796326794897 * sin(x / 3.6576 * pi)'
  []
[]
[Components]
  [reactor]
    type = TotalPower
    power = 296153.84615384615385
  []
  [hs]
    type = HeatStructureCylindrical
    position = '0 0 1'
    orientation = '1 0 0'
    length = 3.6576
    n_elems = 20
    names = 'FUEL GAP CLAD'
    widths = '0.0046955  0.0000955  0.000673'
    n_part_elems = '3 1 1'
    initial_T = 564.15
  []
  [hg]
    type = HeatSourceFromTotalPower
    hs = hs
    regions = 'FUEL'
    power_fraction = 3.33672612e-1
    power = reactor
    power_shape_function = power_profile_fn
  []
  [temp_outside]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = hs:outer
    T = 600
  []
[]
[Preconditioning]
  [pc]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  scheme = 'bdf2'
  start_time = 0
  dt = 2
  num_steps = 10
  abort_on_solve_fail = true
  solve_type = 'NEWTON'
  nl_rel_tol = 1e-6
  nl_abs_tol = 1e-6
  nl_max_its = 30
  l_tol = 1e-4
  l_max_its = 300
[]
[Outputs]
  file_base = transient
  exodus = true
  [console]
    type = Console
    execute_scalars_on = none
  []
[]
(modules/thermal_hydraulics/test/tests/components/heat_structure_from_file_3d/phy.standalone.i)
[Materials]
  [mat]
    type = ADGenericConstantMaterial
    prop_names = 'density specific_heat thermal_conductivity'
    prop_values = '1 1 1'
  []
[]
[Components]
  [blk]
    type = HeatStructureFromFile3D
    file = box.e
    position = '0 0 0'
    initial_T = 300
  []
  [left_bnd]
    type = HSBoundarySpecifiedTemperature
    hs = blk
    boundary = blk:left
    T = 300
  []
  [right_bnd]
    type = HSBoundarySpecifiedTemperature
    hs = blk
    boundary = blk:right
    T = 310
  []
[]
[Executioner]
  type = Transient
  dt = 0.1
  num_steps = 1
  abort_on_solve_fail = true
[]
[Outputs]
  exodus = true
[]
(modules/thermal_hydraulics/test/tests/misc/restart_1phase/test.i)
[GlobalParams]
  gravity_vector = '0 0 0'
  closures = simple_closures
[]
[FluidProperties]
  [eos]
    type = StiffenedGasFluidProperties
    gamma = 2.35
    q = -1167e3
    q_prime = 0
    p_inf = 1.e9
    cv = 1816
  []
[]
[Closures]
  [simple_closures]
    type = Closures1PhaseSimple
  []
[]
[SolidProperties]
  [mat1]
    type = ThermalFunctionSolidProperties
    k = 16
    cp = 356.
    rho = 6.551400E+03
  []
[]
[Functions]
  [Ts_init]
    type = ParsedFunction
    expression = '2*sin(x*pi)+507'
  []
[]
[Components]
  [pipe1]
    type = FlowChannel1Phase
    fp = eos
    # geometry
    position = '0 0 0'
    orientation = '1 0 0'
    length = 1
    n_elems = 5
    A = 1.907720E-04
    D_h = 1.698566E-02
    f = 0.1
  []
  [jct1]
    type = VolumeJunction1Phase
    connections = 'pipe1:out pipe2:in'
    position = '1 0 0'
    volume = 1e-5
  []
  [pipe2]
    type = FlowChannel1Phase
    fp = eos
    # geometry
    position = '1 0 0'
    orientation = '1 0 0'
    length = 1
    n_elems = 5
    A = 1.907720E-04
    D_h = 1.698566E-02
    f = 0.1
  []
  [jct2]
    type = VolumeJunction1Phase
    connections = 'pipe2:out pipe3:in'
    position = '2 0 0'
    volume = 1e-5
  []
  [pipe3]
    type = FlowChannel1Phase
    fp = eos
    # geometry
    position = '2 0 0'
    orientation = '1 0 0'
    length = 1
    n_elems = 5
    A = 1.907720E-04
    D_h = 1.698566E-02
    f = 0.1
  []
  [hs]
    type = HeatStructureCylindrical
    position = '1 0.01 0'
    orientation = '1 0 0'
    length = 1
    n_elems = 5
    names = '0'
    n_part_elems = 1
    solid_properties = 'mat1'
    solid_properties_T_ref = '300'
    widths = 0.1
  []
  [temp_outside]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = hs:outer
    T = Ts_init
  []
  [inlet]
    type = InletVelocityTemperature1Phase
    input = 'pipe1:in'
    T = 507
    vel = 1
  []
  [outlet]
    type = Outlet1Phase
    input = 'pipe3:out'
    p = 6e6
  []
  [hx3ext]
    type = HeatTransferFromExternalAppTemperature1Phase
    flow_channel = pipe3
    P_hf = 0.0449254
    Hw = 100000
  []
[]
[Preconditioning]
  [SMP_PJFNK]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  scheme = 'bdf2'
  dt = 0.01
  num_steps = 5
  abort_on_solve_fail = true
  solve_type = 'newton'
  line_search = 'basic'
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-8
  nl_max_its = 10
  l_tol = 1e-3
  l_max_its = 100
  automatic_scaling = true
  petsc_options_iname = '-pc_type'
  petsc_options_value = ' lu'
[]
[Outputs]
  exodus = true
  velocity_as_vector = false
[]
(modules/thermal_hydraulics/test/tests/components/file_mesh_component/file_mesh_component.i)
# This test solves two identical heat conduction problems, one created with THM
# components, and one with the constituent lower-level objects and FileMeshComponent.
rho = 8000
cp = 500
k = 15
initial_T = 1000
T_left = 1005
T_right = 300
htc_right = 1000
[Variables]
  [T_moose]
    block = 'hs_external:block_a'
    initial_condition = ${initial_T}
  []
[]
[Kernels]
  [time_derivative]
    type = ADHeatConductionTimeDerivative
    variable = T_moose
    block = 'hs_external:block_a'
    density_name = density
    specific_heat = specific_heat
  []
  [heat_conduction]
    type = ADHeatConduction
    variable = T_moose
    block = 'hs_external:block_a'
    thermal_conductivity = thermal_conductivity
  []
[]
[BCs]
  [dirichlet_bc]
    type = ADFunctionDirichletBC
    variable = T_moose
    boundary = 'hs_external:left'
    function = ${T_left}
  []
  [convection_bc]
    type = ADConvectionHeatTransferBC
    variable = T_moose
    boundary = 'hs_external:right'
    T_ambient = ${T_right}
    htc_ambient = ${htc_right}
  []
[]
[Materials]
  [prop_mat]
    type = ADGenericConstantMaterial
    prop_names = 'density specific_heat thermal_conductivity'
    prop_values = '${rho} ${cp} ${k}'
  []
[]
[Components]
  [hs_external]
    type = FileMeshComponent
    file = 'mesh_in.e'
    position = '0 0 0'
  []
  [hs]
    type = HeatStructurePlate
    position = '0 0 0'
    orientation = '1 0 0'
    length = 5.0
    n_elems = 10
    names = 'blk'
    widths = '1.0'
    n_part_elems = '2'
    depth = 1.0
    initial_T = ${initial_T}
  []
  [start]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = 'hs:start'
    T = ${T_left}
  []
  [end]
    type = HSBoundaryAmbientConvection
    hs = hs
    boundary = 'hs:end'
    T_ambient = ${T_right}
    htc_ambient = ${htc_right}
  []
[]
# Currently, there is no way to have a variable of the same name created in THM
# as one in MOOSE, even though they are on different blocks. Thus, we create a
# common variable name here and copy both variables into it for output.
[AuxVariables]
  [T]
  []
[]
[AuxKernels]
  [T_moose_ak]
    type = CopyValueAux
    variable = T
    block = 'hs_external:block_a'
    source = T_moose
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [T_thm_ak]
    type = CopyValueAux
    variable = T
    block = 'hs:blk'
    source = T_solid
    execute_on = 'INITIAL TIMESTEP_END'
  []
[]
[Preconditioning]
  [pc]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  scheme = 'bdf2'
  start_time = 0
  dt = 1.0
  num_steps = 5
  abort_on_solve_fail = true
  solve_type = 'NEWTON'
[]
[Outputs]
  [exodus]
    type = Exodus
    file_base = 'file_mesh_component'
    show = 'T'
  []
[]
(modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_transfer_from_heat_structure_3d/test.i)
[GlobalParams]
  scaling_factor_1phase = '1. 1.e-2 1.e-4'
  scaling_factor_temperature = 1e-2
  initial_from_file = 'steady_state_out.e'
  closures = simple_closures
[]
[FluidProperties]
  [fp]
    type = StiffenedGasFluidProperties
    gamma = 2.35
    cv = 1816.0
    q = -1.167e6
    p_inf = 1.0e9
    q_prime = 0
    k = 0.5
    mu = 281.8e-6
  []
[]
[Closures]
  [simple_closures]
    type = Closures1PhaseSimple
  []
[]
[Materials]
  [mat]
    type = ADGenericConstantMaterial
    prop_names = 'density specific_heat thermal_conductivity'
    prop_values = '16 356 6.5514e3'
  []
[]
[Functions]
  [Ts_bc]
    type = ParsedFunction
    expression = '2*sin(x*pi/2)+2*sin(pi*y) +507'
  []
[]
[Components]
  [pipe]
    type = FlowChannel1Phase
    fp = fp
    # geometry
    position = '-1 0 -2.5'
    orientation = '1 0 0'
    length = 2
    n_elems = 2
    A = 0.3
    D_h = 0.1935483871
    f = 0.1
  []
  [inlet]
    type = InletMassFlowRateTemperature1Phase
    input = 'pipe:in'
    m_dot = 0.1
    T = 500
  []
  [outlet]
    type = Outlet1Phase
    input = 'pipe:out'
    p = 6e6
  []
  [ht]
    type = HeatTransferFromHeatStructure3D1Phase
    flow_channels = 'pipe'
    hs = blk
    boundary = blk:right
    P_hf = 3
    Hw = 1000
  []
  [blk]
    type = HeatStructureFromFile3D
    file = box.e
    position = '0 0 0'
  []
  [right_bnd]
    type = HSBoundarySpecifiedTemperature
    hs = blk
    boundary = blk:bottom
    T = Ts_bc
  []
[]
[Executioner]
  type = Transient
  dt = 1
  num_steps = 1
  abort_on_solve_fail = true
  solve_type = 'NEWTON'
  line_search = 'basic'
  nl_rel_tol = 1e-7
  nl_abs_tol = 1e-8
  nl_max_its = 10
  l_tol = 1e-3
  l_max_its = 100
[]
[Outputs]
  exodus = true
  execute_on = 'initial'
[]
(modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_transfer_from_heat_structure_3d/steady_state.i)
[GlobalParams]
  scaling_factor_1phase = '1. 1.e-2 1.e-4'
  scaling_factor_temperature = 1e-2
  initial_T = 500
  initial_p = 6.e6
  initial_vel = 0
  closures = simple_closures
[]
[FluidProperties]
  [fp]
    type = StiffenedGasFluidProperties
    gamma = 2.35
    cv = 1816.0
    q = -1.167e6
    p_inf = 1.0e9
    q_prime = 0
    k = 0.5
    mu = 281.8e-6
  []
[]
[Closures]
  [simple_closures]
    type = Closures1PhaseSimple
  []
[]
[Materials]
  [mat]
    type = ADGenericConstantMaterial
    prop_names = 'density specific_heat thermal_conductivity'
    prop_values = '16 356 6.5514e3'
  []
[]
[Functions]
  [Ts_init]
    type = ParsedFunction
    expression = '2*sin(x*pi/2)+2*sin(pi*y) +507'
  []
[]
[Components]
  [pipe]
    type = FlowChannel1Phase
    fp = fp
    # geometry
    position = '-1 0 -2.5'
    orientation = '1 0 0'
    length = 2
    n_elems = 2
    A = 0.3
    D_h = 0.1935483871
    f = 0.1
  []
  [inlet]
    type = InletMassFlowRateTemperature1Phase
    input = 'pipe:in'
    m_dot = 0.1
    T = 500
  []
  [outlet]
    type = Outlet1Phase
    input = 'pipe:out'
    p = 6e6
  []
  [ht]
    type = HeatTransferFromHeatStructure3D1Phase
    flow_channels = 'pipe'
    hs = blk
    boundary = blk:right
    P_hf = 3
    Hw = 1000
  []
  [blk]
    type = HeatStructureFromFile3D
    file = box.e
    position = '0 0 0'
    initial_T = Ts_init
  []
  [right_bnd]
    type = HSBoundarySpecifiedTemperature
    hs = blk
    boundary = blk:bottom
    T = Ts_init
  []
[]
[Executioner]
  type = Transient
  dt = 1
  num_steps = 100
  abort_on_solve_fail = true
  solve_type = 'NEWTON'
  line_search = 'basic'
  nl_rel_tol = 1e-7
  nl_abs_tol = 1e-8
  nl_max_its = 10
  l_tol = 1e-3
  l_max_its = 100
  petsc_options_iname = '-pc_type'
  petsc_options_value = ' lu'
[]
[Outputs]
  exodus = true
  execute_on = 'initial final'
[]
(modules/thermal_hydraulics/test/tests/components/hs_boundary_specified_temperature/err.no_bnd.i)
[SolidProperties]
  [hs_mat]
    type = ThermalFunctionSolidProperties
    rho = 1
    cp = 2
    k = 3
  []
[]
[Components]
  [hs]
    type = HeatStructureCylindrical
    orientation = '1 0 0'
    position = '0 0 0'
    length = 1
    n_elems = 2
    names = 'blk'
    widths = '0.1'
    n_part_elems = '1'
    solid_properties = 'hs_mat'
    solid_properties_T_ref = '300'
    initial_T = 300
  []
  [hs_boundary]
    type = HSBoundarySpecifiedTemperature
    boundary = 'hs:inner'
    hs = hs
    T = 300
  []
[]
[Executioner]
  type = Transient
  dt = 0.1
  num_steps = 1
[]
(modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_structure_3d/test.i)
[GlobalParams]
  initial_from_file = 'steady_state_out.e'
[]
[Materials]
  [mat]
    type = ADGenericConstantMaterial
    prop_names = 'density specific_heat thermal_conductivity'
    prop_values = '16 356 6.5514e3'
  []
[]
[Functions]
  [Ts_bc]
    type = ParsedFunction
    expression = '2*sin(x*pi/2)+2*sin(pi*y) +507'
  []
[]
[Components]
  [blk]
    type = HeatStructureFromFile3D
    file = box.e
    position = '0 0 0'
  []
  [right_bnd]
    type = HSBoundarySpecifiedTemperature
    hs = blk
    boundary = blk:right
    T = Ts_bc
  []
[]
[Executioner]
  type = Transient
  dt = 1
  num_steps = 1
  abort_on_solve_fail = true
  solve_type = 'NEWTON'
  line_search = 'basic'
  nl_rel_tol = 1e-7
  nl_abs_tol = 1e-8
  nl_max_its = 10
  l_tol = 1e-3
  l_max_its = 100
[]
[Outputs]
  exodus = true
  execute_on = 'initial'
[]
(modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_structure/steady_state.i)
[SolidProperties]
  [mat1]
    type = ThermalFunctionSolidProperties
    k = 16
    cp = 356.
    rho = 6.551400E+03
  []
[]
[Functions]
  [Ts_init]
    type = ParsedFunction
    expression = '2*sin(x*pi)+507'
  []
[]
[Components]
  [hs]
    type = HeatStructureCylindrical
    position = '1 0 0'
    orientation = '1 0 0'
    length = 1
    n_elems = 3
    names = 'wall'
    n_part_elems = 1
    solid_properties = 'mat1'
    solid_properties_T_ref = '300'
    widths = 0.1
    initial_T = Ts_init
  []
  [temp_outside]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = hs:outer
    T = Ts_init
  []
[]
[Preconditioning]
  [pc]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  scheme = 'bdf2'
  start_time = 0
  dt = 1
  num_steps = 100
  abort_on_solve_fail = true
  solve_type = 'NEWTON'
  line_search = 'basic'
  nl_rel_tol = 1e-7
  nl_abs_tol = 1e-8
  nl_max_its = 10
  l_tol = 1e-3
  l_max_its = 100
[]
[Outputs]
  exodus = true
  execute_on = 'initial final'
  velocity_as_vector = false
[]
(modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_transfer_from_heat_structure/test.i)
# Test that the initial conditions read from the exodus file are correct
[GlobalParams]
  scaling_factor_1phase = '1. 1.e-2 1.e-4'
  scaling_factor_temperature = 1e-2
  closures = simple_closures
  initial_from_file = 'steady_state_out.e'
[]
[FluidProperties]
  [fp]
    type = StiffenedGasFluidProperties
    gamma = 2.35
    cv = 1816.0
    q = -1.167e6
    p_inf = 1.0e9
    q_prime = 0
    k = 0.5
    mu = 281.8e-6
  []
[]
[Closures]
  [simple_closures]
    type = Closures1PhaseSimple
  []
[]
[SolidProperties]
  [mat1]
    type = ThermalFunctionSolidProperties
    k = 16
    cp = 356.
    rho = 6.551400E+03
  []
[]
[Functions]
  [Ts_bc]
    type = ParsedFunction
    expression = '2*sin(x*pi)+507'
  []
[]
[Components]
  [pipe]
    type = FlowChannel1Phase
    fp = fp
    # geometry
    position = '0 0 0'
    orientation = '1 0 0'
    length = 1
    n_elems = 3
    A = 1.907720E-04
    D_h = 1.698566E-02
    f = 0.1
  []
  [hs]
    type = HeatStructureCylindrical
    position = '0 0 0'
    orientation = '1 0 0'
    length = 1
    n_elems = 3
    names = 'wall'
    n_part_elems = 1
    solid_properties = 'mat1'
    solid_properties_T_ref = '300'
    inner_radius = 0.01
    widths = 0.1
  []
  [ht]
    type = HeatTransferFromHeatStructure1Phase
    flow_channel = pipe
    hs = hs
    hs_side = INNER
    Hw = 10000
  []
  [temp_outside]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = hs:outer
    T = Ts_bc
  []
  [inlet]
    type = InletMassFlowRateTemperature1Phase
    input = 'pipe:in'
    m_dot = 0.1
    T = 500
  []
  [outlet]
    type = Outlet1Phase
    input = 'pipe:out'
    p = 6e6
  []
[]
[Preconditioning]
  [pc]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  scheme = 'bdf2'
  start_time = 0
  dt = 1
  num_steps = 1
  abort_on_solve_fail = true
  solve_type = 'NEWTON'
  line_search = 'basic'
  nl_rel_tol = 1e-7
  nl_abs_tol = 1e-8
  nl_max_its = 10
  l_tol = 1e-3
  l_max_its = 100
  petsc_options_iname = '-pc_type'
  petsc_options_value = ' lu'
[]
[Outputs]
  exodus = true
  execute_on = 'initial'
  velocity_as_vector = false
[]
(modules/thermal_hydraulics/test/tests/components/heat_structure_base/err.no_T_ic.i)
# Tests that error is generated when no initial temperature function is provided
# when not restarting.
[GlobalParams]
[]
[SolidProperties]
  [fuel-mat]
    type = ThermalFunctionSolidProperties
    k = 3.65
    cp = 288.734
    rho = 1.0412e2
  []
  [gap-mat]
    type = ThermalFunctionSolidProperties
    k = 1.084498
    cp = 1.0
    rho = 1.0
  []
  [clad-mat]
    type = ThermalFunctionSolidProperties
    k = 16.48672
    cp = 321.384
    rho = 6.6e1
  []
[]
[Components]
  [reactor]
    type = TotalPower
    power = 296153.84615384615385
  []
  [hs]
    type = HeatStructureCylindrical
    position = '0 0 0'
    orientation = '1 0 0'
    length = 1
    n_elems = 1
    names = 'FUEL GAP CLAD'
    widths = '0.0046955  0.0000955  0.000673'
    n_part_elems = '1 1 1'
    solid_properties = 'fuel-mat gap-mat clad-mat'
    solid_properties_T_ref = '300 300 300'
  []
  [temp_outside]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = hs:outer
    T = 600
  []
[]
[Preconditioning]
  [SMP_PJFNK]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  scheme = 'bdf2'
  dt = 0.1
  dtmin = 1e-1
  solve_type = 'PJFNK'
  nl_rel_tol = 1e-6
  nl_abs_tol = 1e-6
  nl_max_its = 30
  l_tol = 1e-4
  l_max_its = 300
  start_time = 0.0
  end_time = 2.0
[]
(modules/thermal_hydraulics/test/tests/misc/initial_from_file/heat_transfer_from_heat_structure/steady_state.i)
[GlobalParams]
  scaling_factor_1phase = '1. 1.e-2 1.e-4'
  scaling_factor_temperature = 1e-2
  initial_T = 500
  initial_p = 6.e6
  initial_vel = 0
  closures = simple_closures
[]
[FluidProperties]
  [fp]
    type = StiffenedGasFluidProperties
    gamma = 2.35
    cv = 1816.0
    q = -1.167e6
    p_inf = 1.0e9
    q_prime = 0
    k = 0.5
    mu = 281.8e-6
  []
[]
[Closures]
  [simple_closures]
    type = Closures1PhaseSimple
  []
[]
[SolidProperties]
  [mat1]
    type = ThermalFunctionSolidProperties
    k = 16
    cp = 356.
    rho = 6.551400E+03
  []
[]
[Functions]
  [Ts_init]
    type = ParsedFunction
    expression = '2*sin(x*pi)+507'
  []
[]
[Components]
  [pipe]
    type = FlowChannel1Phase
    fp = fp
    # geometry
    position = '0 0 0'
    orientation = '1 0 0'
    length = 1
    n_elems = 3
    A = 1.907720E-04
    D_h = 1.698566E-02
    f = 0.1
  []
  [hs]
    type = HeatStructureCylindrical
    position = '0 0 0'
    orientation = '1 0 0'
    length = 1
    n_elems = 3
    names = 'wall'
    n_part_elems = 1
    solid_properties = 'mat1'
    solid_properties_T_ref = '300'
    inner_radius = 0.01
    widths = 0.1
    initial_T = Ts_init
  []
  [ht]
    type = HeatTransferFromHeatStructure1Phase
    flow_channel = pipe
    hs = hs
    hs_side = INNER
    Hw = 10000
  []
  [temp_outside]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = hs:outer
    T = Ts_init
  []
  [inlet]
    type = InletMassFlowRateTemperature1Phase
    input = 'pipe:in'
    m_dot = 0.1
    T = 500
  []
  [outlet]
    type = Outlet1Phase
    input = 'pipe:out'
    p = 6e6
  []
[]
[Preconditioning]
  [pc]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  scheme = 'bdf2'
  start_time = 0
  dt = 1
  num_steps = 100
  abort_on_solve_fail = true
  solve_type = 'NEWTON'
  line_search = 'basic'
  nl_rel_tol = 1e-7
  nl_abs_tol = 1e-8
  nl_max_its = 10
  l_tol = 1e-3
  l_max_its = 100
  petsc_options_iname = '-pc_type'
  petsc_options_value = ' lu'
[]
[Outputs]
  exodus = true
  execute_on = 'initial final'
  velocity_as_vector = false
[]
(modules/thermal_hydraulics/test/tests/components/heat_structure_base/phy.variable_init_t.i)
# Tests that a function can be used to initialize temperature in a heat structure.
[GlobalParams]
[]
[Functions]
  [fn-initial_T]
    type = ParsedFunction
    expression = 'baseT + (dT * sin((pi * x) / length))'
    symbol_names = 'baseT   dT    length'
    symbol_values = '560.0  30.0  3.6576'
  []
[]
[SolidProperties]
  [fuel-mat]
    type = ThermalFunctionSolidProperties
    k = 3.65
    cp = 288.734
    rho = 1.0412e2
  []
  [gap-mat]
    type = ThermalFunctionSolidProperties
    k = 0.1
    cp = 1.0
    rho = 1.0
  []
  [clad-mat]
    type = ThermalFunctionSolidProperties
    k = 16.48672
    cp = 321.384
    rho = 6.6e1
  []
[]
[Components]
  [hs]
    type = HeatStructureCylindrical
    position = '0 0 0'
    orientation = '1 0 0'
    length = 3.6576
    n_elems = 100
    names = 'FUEL GAP CLAD'
    widths = '0.0046955  0.0000955  0.000673'
    n_part_elems = '10 3 3'
    solid_properties = 'fuel-mat gap-mat clad-mat'
    solid_properties_T_ref = '300 300 300'
    initial_T = fn-initial_T
  []
  [temp_outside]
    type = HSBoundarySpecifiedTemperature
    hs = hs
    boundary = hs:outer
    T = 580.0
  []
[]
[Preconditioning]
  [SMP_PJFNK]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  scheme = 'bdf2'
  start_time = 0
  dt = 0.01
  num_steps = 10
  abort_on_solve_fail = true
  solve_type = 'PJFNK'
  nl_rel_tol = 1e-5
  nl_abs_tol = 1e-6
  nl_max_its = 8
  l_tol = 1e-4
  l_max_its = 10
[]
[Outputs]
  [out]
    type = Exodus
  []
  [console]
    type = Console
    execute_scalars_on = none
  []
[]