LinearFVDirichletCHTBC

Description

This object is a boundary condition used in the Navier-Stokes module that can be used for conjugate heat transfer (CHT) problems. Its role is to enforce a fixed Dirichlet value at an interface where heat is exchanged between solid and fluid regions. In practice, it is a wrapper around LinearFVAdvectionDiffusionFunctorDirichletBC with additional content allowing error checking in CHT applications. For more information on the design of CHT, see the CHT capability page.

[LinearFVBCs<<<{"href": "../../syntax/LinearFVBCs/index.html"}>>>]
  [fluid_solid]
    type = LinearFVDirichletCHTBC<<<{"description": "Conjugate heat transfer BC for Dirichlet boundary condition-based coupling.", "href": "LinearFVDirichletCHTBC.html"}>>>
    variable<<<{"description": "The name of the variable that this boundary condition applies to"}>>> = T_fluid
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = interface
    functor<<<{"description": "The functor for this boundary condition. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = interface_temperature_solid_interface
  []

  [solid_fluid]
    type = LinearFVRobinCHTBC<<<{"description": "Conjugate heat transfer BC for Robin boundary condition-based coupling.", "href": "LinearFVRobinCHTBC.html"}>>>
    variable<<<{"description": "The name of the variable that this boundary condition applies to"}>>> = T_solid
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = interface
    h<<<{"description": "The convective heat transfer coefficient. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${h_s}
    thermal_conductivity<<<{"description": "The thermal conductivity of the material. Only used to compute the pure normal gradient of the variable on the boundary. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${k_s}
    incoming_flux<<<{"description": "The incoming diffusive flux on the interface. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = heat_flux_to_solid_interface
    surface_temperature<<<{"description": "The prescribed temperature on the interface. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = interface_temperature_fluid_interface
  []
[]
(modules/navier_stokes/test/tests/finite_volume/ins/cht/conjugate_heat_transfer/cht_neu-dir.i)

Input Parameters

  • boundaryThe list of boundary IDs from the mesh where this object applies

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

    Controllable:No

    Description:The list of boundary IDs from the mesh where this object applies

  • functorThe functor for this boundary condition. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The functor for this boundary condition. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • variableThe name of the variable that this boundary condition applies to

    C++ Type:LinearVariableName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the variable that this boundary condition applies to

Required Parameters

  • 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)

Optional Parameters

  • absolute_value_vector_tagsThe tags for the vectors this residual object should fill with the absolute value of the residual contribution

    C++ 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 fill

    C++ 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 fill

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

    Controllable:No

    Description:The extra tags for the vectors this Kernel should fill

  • matrix_tagssystemThe tag for the matrices this Kernel should fill

    Default:system

    C++ Type:MultiMooseEnum

    Options:nontime, system

    Controllable:No

    Description:The tag for the matrices this Kernel should fill

  • vector_tagsrhsThe tag for the vectors this Kernel should fill

    Default:rhs

    C++ Type:MultiMooseEnum

    Options:rhs, 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.

  • 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 form

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Determines whether this object is calculated using an implicit or explicit form

  • 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).

Advanced Parameters

Input Files