CoupledHeatTransferAction

Description

This action creates many of the low-level objects needed to perform a convective heat transfer multiphysics coupling with a 1-D flow channel. It assumes that the domain external to the flow channel is the master-app, and the application(s) containing the flow channel(s) are the sub-apps. Hereafter the external domain is referred to as the "solid side", and the flow channel is referred to as the "fluid side".

This action is suitable for coupling to either single-phase or multi-phase flow channels. The general formulation it uses for the heat fluxes to the solid side is

(1)

where is the fluid phase index, is the solid-side temperature, is the temperature of phase , is the heat transfer coefficient of phase , and is the wall contact fraction of phase .

The action creates the following MOOSE objects:

Instructions for the Master Input File

The following must be defined in the master-app input file:

  • AuxVariables for the fluid temperature(s), heat transfer coefficient(s), and wall contact fractions (if multi-phase). For example,

    [AuxVariables<<<{"href": "../../syntax/AuxVariables/index.html"}>>>]
      [T_fluid]
        family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
        order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
        initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = 300
      []
      [htc]
        family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
        order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
        initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = 0
      []
    []

    It is recommended that the FE type match that of the corresponding variables in the coupled flow channel.

  • MultiApps for the flow-channel sub-app(s). For example,

    [MultiApps<<<{"href": "../../syntax/MultiApps/index.html"}>>>]
      [thm]
        type = TransientMultiApp<<<{"description": "MultiApp for performing coupled simulations with the parent and sub-application both progressing in time.", "href": "../multiapps/TransientMultiApp.html"}>>>
        app_type<<<{"description": "The type of application to build (applications not registered can be loaded with dynamic libraries. Parent application type will be used if not provided."}>>> = ThermalHydraulicsApp
        input_files<<<{"description": "The input file for each App.  If this parameter only contains one input file it will be used for all of the Apps.  When using 'positions_from_file' it is also admissable to provide one input_file per file."}>>> = sub.i
        execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'TIMESTEP_END'
      []
    []

Instructions for the Sub Input File

The following must be defined in the sub-app input file:

  • AuxVariables for the fluid temperature(s), heat transfer coefficient(s), and wall contact fractions (if multi-phase). For example, for THM's single-phase flow model, the fluid temperature is already available as an aux variable, but the wall heat transfer coefficient is an AD material property. Thus a MaterialRealAux must be created:

    [AuxVariables<<<{"href": "../../syntax/AuxVariables/index.html"}>>>]
      [Hw]
        family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = monomial
        order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = constant
        block = pipe1
      []
    []
    [AuxKernels<<<{"href": "../../syntax/AuxKernels/index.html"}>>>]
      [Hw_ak]
        type = ADMaterialRealAux<<<{"description": "Outputs element volume-averaged material properties", "href": "../auxkernels/MaterialRealAux.html"}>>>
        variable<<<{"description": "The name of the variable that this object applies to"}>>> = Hw
        property<<<{"description": "The material property name."}>>> = 'Hw'
      []
    []

  • LayeredAverage user objects for the fluid temperature(s), heat transfer coefficient(s), and wall contact fractions (if multi-phase). For example,

    [UserObjects<<<{"href": "../../syntax/UserObjects/index.html"}>>>]
      [T_uo]
        type = LayeredAverage<<<{"description": "Computes averages of variables over layers", "href": "../userobjects/LayeredAverage.html"}>>>
        direction<<<{"description": "The direction of the layers."}>>> = y
        variable<<<{"description": "The name of the variable that this object operates on"}>>> = T
        num_layers<<<{"description": "The number of layers."}>>> = 10
        block<<<{"description": "The list of block ids (SubdomainID) that this object will be applied"}>>> = pipe1
      []
      [Hw_uo]
        type = LayeredAverage<<<{"description": "Computes averages of variables over layers", "href": "../userobjects/LayeredAverage.html"}>>>
        direction<<<{"description": "The direction of the layers."}>>> = y
        variable<<<{"description": "The name of the variable that this object operates on"}>>> = Hw
        num_layers<<<{"description": "The number of layers."}>>> = 10
        block<<<{"description": "The list of block ids (SubdomainID) that this object will be applied"}>>> = pipe1
      []
    []

  • A component to implement the flow channel heat source corresponding to Eq. (1). For example, for THM's single-phase flow model, the HeatTransferFromExternalAppTemperature1Phase component is used.

Input Parameters

  • TSolid side temperature variable

    C++ Type:VariableName

    Unit:(no unit assumed)

    Controllable:No

    Description:Solid side temperature variable

  • T_fluidVariable(s) on the solid side into which to transfer the fluid temperature(s)

    C++ Type:std::vector<VariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Variable(s) on the solid side into which to transfer the fluid temperature(s)

  • T_wallVariable on the flow channel side into which to transfer the solid temperature

    C++ Type:VariableName

    Unit:(no unit assumed)

    Controllable:No

    Description:Variable on the flow channel side into which to transfer the solid temperature

  • boundaryBoundary name(s) on the solid side

    C++ Type:std::vector<BoundaryName>

    Controllable:No

    Description:Boundary name(s) on the solid side

  • htcVariable(s) on the solid side into which to transfer the heat transfer coefficient(s)

    C++ Type:std::vector<VariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Variable(s) on the solid side into which to transfer the heat transfer coefficient(s)

  • multi_appThe name of the multi-app.

    C++ Type:std::string

    Controllable:No

    Description:The name of the multi-app.

Required Parameters

  • T_fluid_user_objectsSpatial user object(s) holding the fluid temperature values

    C++ Type:std::vector<UserObjectName>

    Controllable:No

    Description:Spatial user object(s) holding the fluid temperature values

  • active__all__ If specified only the blocks named will be visited and made active

    Default:__all__

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:If specified only the blocks named will be visited and made active

  • fixed_bounding_box_sizeThe 'fixed_bounding_box_size' value to use for each MultiAppGeneralFieldUserObjectTransfer. If this parameter is not provided, a greedy search will be used instead of bounding boxes, which may be slower.

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:The 'fixed_bounding_box_size' value to use for each MultiAppGeneralFieldUserObjectTransfer. If this parameter is not provided, a greedy search will be used instead of bounding boxes, which may be slower.

  • htc_user_objectsSpatial user object(s) holding the heat transfer coefficient values

    C++ Type:std::vector<UserObjectName>

    Controllable:No

    Description:Spatial user object(s) holding the heat transfer coefficient values

  • inactiveIf specified blocks matching these identifiers will be skipped.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:If specified blocks matching these identifiers will be skipped.

  • kappaVariables on the solid side into which to transfer the wall contact fractions

    C++ Type:std::vector<VariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Variables on the solid side into which to transfer the wall contact fractions

  • kappa_user_objectsSpatial user object(s) holding the wall contact fraction values

    C++ Type:std::vector<UserObjectName>

    Controllable:No

    Description:Spatial user object(s) holding the wall contact fraction values

  • lengthLength of each axial section [m]

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:Length of each axial section [m]

  • n_elemsNumber of elements in each axial section

    C++ Type:std::vector<unsigned int>

    Controllable:No

    Description:Number of elements in each axial section

  • orientationDirection of axis from start position to end position (no need to normalize)

    C++ Type:libMesh::VectorValue<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:Direction of axis from start position to end position (no need to normalize)

  • positionStart position of axis in 3-D space [m]

    C++ Type:libMesh::Point

    Controllable:No

    Description:Start position of axis in 3-D space [m]

  • positionsSub-app positions. Each set of 3 values represents a Point.

    C++ Type:std::vector<libMesh::Point>

    Controllable:No

    Description:Sub-app positions. Each set of 3 values represents a Point.

  • positions_fileName of file containing sub-app positions. Each set of 3 values represents a Point.

    C++ Type:FileName

    Controllable:No

    Description:Name of file containing sub-app positions. Each set of 3 values represents a Point.

  • rotation0Angle of rotation about the x-axis [degrees]

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Angle of rotation about the x-axis [degrees]

Optional 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.

  • skip_coordinate_collapsingTrueWhether to skip coordinate collapsing (translation and rotation are still performed, only XYZ, RZ etc collapsing is skipped) when performing mapping and inverse mapping coordinate transformation operations. This parameter should only be set by users who really know what they're doing.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to skip coordinate collapsing (translation and rotation are still performed, only XYZ, RZ etc collapsing is skipped) when performing mapping and inverse mapping coordinate transformation operations. This parameter should only be set by users who really know what they're doing.

Advanced Parameters

Example

Heat conduction input file:

# This tests an action used to exchange T_wall, T_fluid and HTC between
# a heat conduction simulation and a THM simulation

[Mesh<<<{"href": "../../syntax/Mesh/index.html"}>>>]
  type = GeneratedMesh
  dim = 2
  xmax = 0.1
  nx = 2
  ymax = 1
  ny = 10
  parallel_type = replicated
  coord_type = RZ
[]

[Variables<<<{"href": "../../syntax/Variables/index.html"}>>>]
  [T]
  []
[]

[ICs<<<{"href": "../../syntax/ICs/index.html"}>>>]
  [T_ic]
    type = ConstantIC<<<{"description": "Sets a constant field value.", "href": "../ics/ConstantIC.html"}>>>
    variable<<<{"description": "The variable this initial condition is supposed to provide values for."}>>> = T
    value<<<{"description": "The value to be set in IC"}>>> = 300
  []
[]

[AuxVariables<<<{"href": "../../syntax/AuxVariables/index.html"}>>>]
  [T_fluid]
    family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
    order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
    initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = 300
  []
  [htc]
    family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
    order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
    initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = 0
  []
[]

[Kernels<<<{"href": "../../syntax/Kernels/index.html"}>>>]
  [td]
    type = TimeDerivative<<<{"description": "The time derivative operator with the weak form of $(\\psi_i, \\frac{\\partial u_h}{\\partial t})$.", "href": "../kernels/TimeDerivative.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = T
  []

  [diff]
    type = Diffusion<<<{"description": "The Laplacian operator ($-\\nabla \\cdot \\nabla u$), with the weak form of $(\\nabla \\phi_i, \\nabla u_h)$.", "href": "../kernels/Diffusion.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = T
  []
[]

[CoupledHeatTransfers<<<{"href": "../../syntax/CoupledHeatTransfers/index.html"}>>>]
  [right]
    boundary<<<{"description": "Boundary name(s) on the solid side"}>>> = right
    T_fluid<<<{"description": "Variable(s) on the solid side into which to transfer the fluid temperature(s)"}>>> = 'T_fluid'
    T<<<{"description": "Solid side temperature variable"}>>> = T
    T_wall<<<{"description": "Variable on the flow channel side into which to transfer the solid temperature"}>>> = T_wall
    htc<<<{"description": "Variable(s) on the solid side into which to transfer the heat transfer coefficient(s)"}>>> = 'htc'
    multi_app<<<{"description": "The name of the multi-app."}>>> = thm
    T_fluid_user_objects<<<{"description": "Spatial user object(s) holding the fluid temperature values"}>>> = 'T_uo'
    htc_user_objects<<<{"description": "Spatial user object(s) holding the heat transfer coefficient values"}>>> = 'Hw_uo'

    position<<<{"description": "Start position of axis in 3-D space [m]"}>>> = '0 0 0'
    orientation<<<{"description": "Direction of axis from start position to end position (no need to normalize)"}>>> = '0 1 0'
    length<<<{"description": "Length of each axial section [m]"}>>> = 1
    n_elems<<<{"description": "Number of elements in each axial section"}>>> = 10
    skip_coordinate_collapsing<<<{"description": "Whether to skip coordinate collapsing (translation and rotation are still performed, only XYZ, RZ etc collapsing is skipped) when performing mapping and inverse mapping coordinate transformation operations. This parameter should only be set by users who really know what they're doing."}>>> = true
  []
[]

[Executioner<<<{"href": "../../syntax/Executioner/index.html"}>>>]
  type = Transient
  dt = 0.1
  num_steps = 10
  nl_abs_tol = 1e-10
  abort_on_solve_fail = true

  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type'
  petsc_options_value = ' lu'
[]

[MultiApps<<<{"href": "../../syntax/MultiApps/index.html"}>>>]
  [thm]
    type = TransientMultiApp<<<{"description": "MultiApp for performing coupled simulations with the parent and sub-application both progressing in time.", "href": "../multiapps/TransientMultiApp.html"}>>>
    app_type<<<{"description": "The type of application to build (applications not registered can be loaded with dynamic libraries. Parent application type will be used if not provided."}>>> = ThermalHydraulicsApp
    input_files<<<{"description": "The input file for each App.  If this parameter only contains one input file it will be used for all of the Apps.  When using 'positions_from_file' it is also admissable to provide one input_file per file."}>>> = sub.i
    execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'TIMESTEP_END'
  []
[]

[Outputs<<<{"href": "../../syntax/Outputs/index.html"}>>>]
  exodus<<<{"description": "Output the results using the default settings for Exodus output."}>>> = true
[]

[Postprocessors<<<{"href": "../../syntax/Postprocessors/index.html"}>>>]
  [T_wall_avg]
    type = SideAverageValue<<<{"description": "Computes the average value of a variable on a sideset. Note that this cannot be used on the centerline of an axisymmetric model.", "href": "../postprocessors/SideAverageValue.html"}>>>
    variable<<<{"description": "The name of the variable which this postprocessor integrates"}>>> = T
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = right
    execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL TIMESTEP_END'
  []
  [T_fluid_avg]
    type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../postprocessors/ElementAverageValue.html"}>>>
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = T_fluid
    execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL TIMESTEP_END'
  []
  [htc_avg]
    type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../postprocessors/ElementAverageValue.html"}>>>
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = htc
    execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL TIMESTEP_END'
  []
[]
(modules/thermal_hydraulics/test/tests/actions/coupled_heat_transfer_action/master.i)

Flow channel input file:

# This is a part of T_wall_action test. See the master file for details.

[GlobalParams<<<{"href": "../../syntax/GlobalParams/index.html"}>>>]
  initial_p = 1.e5
  initial_vel = 0.
  initial_T = 300.

  closures = simple_closures
[]

[FluidProperties<<<{"href": "../../syntax/FluidProperties/index.html"}>>>]
  [eos]
    type = StiffenedGasFluidProperties<<<{"description": "Fluid properties for a stiffened gas", "href": "../fluidproperties/StiffenedGasFluidProperties.html"}>>>
    gamma<<<{"description": "Heat capacity ratio"}>>> = 2.35
    q<<<{"description": "Parameter defining zero point of internal energy"}>>> = -1167e3
    q_prime<<<{"description": "Parameter"}>>> = 0
    p_inf<<<{"description": "Stiffness parameter"}>>> = 1.e9
    cv<<<{"description": "Constant volume specific heat"}>>> = 1816
  []
[]

[Closures<<<{"href": "../../syntax/Closures/index.html"}>>>]
  [simple_closures]
    type = Closures1PhaseSimple<<<{"description": "Simple 1-phase closures", "href": "../closures/Closures1PhaseSimple.html"}>>>
  []
[]

[AuxVariables<<<{"href": "../../syntax/AuxVariables/index.html"}>>>]
  [Hw]
    family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = monomial
    order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = constant
    block = pipe1
  []
[]

[AuxKernels<<<{"href": "../../syntax/AuxKernels/index.html"}>>>]
  [Hw_ak]
    type = ADMaterialRealAux<<<{"description": "Outputs element volume-averaged material properties", "href": "../auxkernels/MaterialRealAux.html"}>>>
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = Hw
    property<<<{"description": "The material property name."}>>> = 'Hw'
  []
[]

[UserObjects<<<{"href": "../../syntax/UserObjects/index.html"}>>>]
  [T_uo]
    type = LayeredAverage<<<{"description": "Computes averages of variables over layers", "href": "../userobjects/LayeredAverage.html"}>>>
    direction<<<{"description": "The direction of the layers."}>>> = y
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = T
    num_layers<<<{"description": "The number of layers."}>>> = 10
    block<<<{"description": "The list of block ids (SubdomainID) that this object will be applied"}>>> = pipe1
  []
  [Hw_uo]
    type = LayeredAverage<<<{"description": "Computes averages of variables over layers", "href": "../userobjects/LayeredAverage.html"}>>>
    direction<<<{"description": "The direction of the layers."}>>> = y
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = Hw
    num_layers<<<{"description": "The number of layers."}>>> = 10
    block<<<{"description": "The list of block ids (SubdomainID) that this object will be applied"}>>> = pipe1
  []
[]

[Components<<<{"href": "../../syntax/Components/index.html"}>>>]
  [pipe1]
    type = FlowChannel1Phase<<<{"description": "1-phase 1D flow channel", "href": "../components/FlowChannel1Phase.html"}>>>
    position<<<{"description": "Start position of axis in 3-D space [m]"}>>> = '0 0 0'
    orientation<<<{"description": "Direction of flow channel from start position to end position (no need to normalize). For curved flow channels, it is the (tangent) direction at the start position."}>>> = '0 1 0'
    length<<<{"description": "Length of each axial section [m]"}>>> = 1
    n_elems<<<{"description": "Number of elements in each axial section"}>>> = 10

    A<<<{"description": "Area of the flow channel, can be a constant or a function"}>>>   = 1.28584e-01
    D_h<<<{"description": "Hydraulic diameter [m]"}>>> = 8.18592e-01
    f<<<{"description": "Wall friction factor [-]"}>>> = 0.01

    fp<<<{"description": "Fluid properties user object"}>>> = eos
  []

  [hxconn]
    type = HeatTransferFromExternalAppTemperature1Phase<<<{"description": "Heat transfer into 1-phase flow channel from temperature provided by an external application", "href": "../components/HeatTransferFromExternalAppTemperature1Phase.html"}>>>
    flow_channel<<<{"description": "Name of flow channel component to connect to"}>>> = pipe1
    Hw<<<{"description": "Convective heat transfer coefficient [W/(m^2-K)]"}>>> = 10000
    P_hf<<<{"description": "Heat flux perimeter [m]"}>>> = 6.28319e-01
    initial_T_wall<<<{"description": "Initial condition for wall temperature [K]"}>>> = 300.
    var_type<<<{"description": "The type of wall temperature variable (nodal, elemental)."}>>> = elemental
  []

  [inlet]
    type = InletMassFlowRateTemperature1Phase<<<{"description": "Boundary condition with prescribed mass flow rate and temperature for 1-phase flow channels.", "href": "../components/InletMassFlowRateTemperature1Phase.html"}>>>
    input<<<{"description": "Name of the input"}>>> = 'pipe1:in'
    m_dot<<<{"description": "Prescribed mass flow rate [kg/s]"}>>> = 10
    T<<<{"description": "Prescribed temperature [K]"}>>> = 400
  []

  [outlet]
    type = Outlet1Phase<<<{"description": "Boundary condition with prescribed pressure for 1-phase flow channels.", "href": "../components/Outlet1Phase.html"}>>>
    input<<<{"description": "Name of the input"}>>> = 'pipe1:out'
    p<<<{"description": "Prescribed pressure [Pa]"}>>> = 1e5
  []
[]

[Preconditioning<<<{"href": "../../syntax/Preconditioning/index.html"}>>>]
  [pc]
    type = SMP<<<{"description": "Single matrix preconditioner (SMP) builds a preconditioner using user defined off-diagonal parts of the Jacobian.", "href": "../preconditioners/SingleMatrixPreconditioner.html"}>>>
    full<<<{"description": "Set to true if you want the full set of couplings between variables simply for convenience so you don't have to set every off_diag_row and off_diag_column combination."}>>> = true
  []
[]

[Postprocessors<<<{"href": "../../syntax/Postprocessors/index.html"}>>>]
  [T_wall_avg]
    type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../postprocessors/ElementAverageValue.html"}>>>
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = T_wall
    execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL TIMESTEP_END'
  []

  [htc_avg]
    type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../postprocessors/ElementAverageValue.html"}>>>
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = Hw
    execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL TIMESTEP_END'
  []

  [T_avg]
    type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../postprocessors/ElementAverageValue.html"}>>>
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = T
    execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL TIMESTEP_END'
  []
[]

[Executioner<<<{"href": "../../syntax/Executioner/index.html"}>>>]
  type = Transient
  scheme = 'bdf2'
  dt = 0.1
  dtmin = 1e-7
  abort_on_solve_fail = true

  solve_type = 'NEWTON'
  line_search = 'basic'
  nl_rel_tol = 1e-7
  nl_abs_tol = 1e-4
  nl_max_its = 20

  l_tol = 1e-3
  l_max_its = 300

  start_time = 0.0

  petsc_options_iname = '-pc_type'
  petsc_options_value = ' lu'
[]

[Outputs<<<{"href": "../../syntax/Outputs/index.html"}>>>]
  [out]
    type = Exodus<<<{"description": "Object for output data in the Exodus format", "href": "../outputs/Exodus.html"}>>>
    show<<<{"description": "A list of the variables and postprocessors that should be output to the Exodus file (may include Variables, ScalarVariables, and Postprocessor names)."}>>> = 'T_wall T Hw'
  []
[]
(modules/thermal_hydraulics/test/tests/actions/coupled_heat_transfer_action/sub.i)