ConvectiveHeatTransferSideIntegral

Computes the total convective heat transfer across a boundary.

Description

This postprocessor computes the total heat flux by integrating the product of the temperature difference and the heat transfer coefficient over a set of boundaries.

where is the set of boundaries, is the solid temperature, is the fluid temperature, and is the heat transfer coefficient.

This postprocessor is useful for ensuring conservative transfers when Robin boundary conditions are used.

Example Input File Syntax

[Mesh<<<{"href": "../../syntax/Mesh/index.html"}>>>]
  type = MeshGeneratorMesh

  [./cartesian]
    type = CartesianMeshGenerator<<<{"description": "This CartesianMeshGenerator creates a non-uniform Cartesian mesh.", "href": "../meshgenerators/CartesianMeshGenerator.html"}>>>
    dim<<<{"description": "The dimension of the mesh to be generated"}>>> = 2
    dx<<<{"description": "Intervals in the X direction"}>>> = '0.45 0.1 0.45'
    ix<<<{"description": "Number of grids in all intervals in the X direction (default to all one)"}>>> = '5 1 5'
    dy<<<{"description": "Intervals in the Y direction (required when dim>1 otherwise ignored)"}>>> = '0.45 0.1 0.45'
    iy<<<{"description": "Number of grids in all intervals in the Y direction (default to all one)"}>>> = '5 1 5'
    subdomain_id<<<{"description": "Block IDs (default to all zero)"}>>> = '1 1 1
                    1 2 1
                    1 1 1'
  [../]

  [./add_iss_1]
    type = SideSetsBetweenSubdomainsGenerator<<<{"description": "MeshGenerator that creates a sideset composed of the nodes located between two or more subdomains.", "href": "../meshgenerators/SideSetsBetweenSubdomainsGenerator.html"}>>>
    primary_block<<<{"description": "The primary set of blocks for which to draw a sideset between"}>>> = 1
    paired_block<<<{"description": "The paired set of blocks for which to draw a sideset between"}>>> = 2
    new_boundary<<<{"description": "The list of boundary names to create on the supplied subdomain"}>>> = 'interface'
    input<<<{"description": "The mesh we want to modify"}>>> = cartesian
  [../]

  [./block_deleter]
    type = BlockDeletionGenerator<<<{"description": "Mesh generator which removes elements from the specified subdomains", "href": "../meshgenerators/BlockDeletionGenerator.html"}>>>
    block<<<{"description": "The list of blocks to be deleted"}>>> = 2
    input<<<{"description": "The mesh we want to modify"}>>> = add_iss_1
  [../]
[]

[Variables<<<{"href": "../../syntax/Variables/index.html"}>>>]
  [./temperature]
    initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = 300
  [../]
[]

[AuxVariables<<<{"href": "../../syntax/AuxVariables/index.html"}>>>]
  [./channel_T]
    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"}>>> = 400
  [../]

  [./channel_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
    initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = 1000
  [../]
[]

[Kernels<<<{"href": "../../syntax/Kernels/index.html"}>>>]
  [./graphite_diffusion]
    type = HeatConduction<<<{"description": "Diffusive heat conduction term $-\\nabla\\cdot(k\\nabla T)$ of the thermal energy conservation equation", "href": "../kernels/HeatConduction.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temperature
    diffusion_coefficient<<<{"description": "Property name of the diffusion coefficient"}>>> = 'k_s'
  [../]
[]

[BCs<<<{"href": "../../syntax/BCs/index.html"}>>>]
  ## boundary conditions for the thm channels in the reflector
  [./channel_heat_transfer]
    type = CoupledConvectiveHeatFluxBC<<<{"description": "Convective heat transfer boundary condition with temperature and heat transfer coefficent given by auxiliary variables.", "href": "../bcs/CoupledConvectiveHeatFluxBC.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temperature
    htc<<<{"description": "Heat transfer coefficient"}>>> = channel_Hw
    T_infinity<<<{"description": "Field holding far-field temperature"}>>> = channel_T
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'interface'
  [../]

  # hot boundary on the left
  [./left]
    type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../bcs/DirichletBC.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temperature
    value<<<{"description": "Value of the BC"}>>> = 1000
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'left'
  [../]

  # cool boundary on the right
  [./right]
    type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../bcs/DirichletBC.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temperature
    value<<<{"description": "Value of the BC"}>>> = 300
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'right'
  [../]
[]

[Materials<<<{"href": "../../syntax/Materials/index.html"}>>>]
  [./thermal]
    type = GenericConstantMaterial<<<{"description": "Declares material properties based on names and values prescribed by input parameters.", "href": "../materials/GenericConstantMaterial.html"}>>>
    prop_names<<<{"description": "The names of the properties this material will have"}>>> = 'k_s'
    prop_values<<<{"description": "The values associated with the named properties"}>>> = '12'
  [../]

  [./htc_material]
    type = GenericConstantMaterial<<<{"description": "Declares material properties based on names and values prescribed by input parameters.", "href": "../materials/GenericConstantMaterial.html"}>>>
    prop_names<<<{"description": "The names of the properties this material will have"}>>> = 'alpha_wall'
    prop_values<<<{"description": "The values associated with the named properties"}>>> = '1000'
  [../]

  [./tfluid_mat]
    type = PiecewiseLinearInterpolationMaterial<<<{"description": "Compute a property using a piecewise linear interpolation to define its dependence on a variable", "href": "../materials/PiecewiseLinearInterpolationMaterial.html"}>>>
    property<<<{"description": "The name of the property this material will compute"}>>> = tfluid_mat
    variable<<<{"description": "The name of the variable whose value is used as the abscissa in the interpolation"}>>> = channel_T
    x<<<{"description": "The abscissa values"}>>> = '400 500'
    y<<<{"description": "The ordinate values"}>>> = '400 500'
  [../]
[]

[Postprocessors<<<{"href": "../../syntax/Postprocessors/index.html"}>>>]
  [./Qw1]
    type = ConvectiveHeatTransferSideIntegral<<<{"description": "Computes the total convective heat transfer across a boundary.", "href": "ConvectiveHeatTransferSideIntegral.html"}>>>
    T_fluid_var<<<{"description": "The fluid temperature."}>>> = channel_T
    htc_var<<<{"description": "HTC variable"}>>> = channel_Hw
    T_solid<<<{"description": "The solid temperature."}>>> = temperature
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = interface
  [../]

  [./Qw2]
    type = ConvectiveHeatTransferSideIntegral<<<{"description": "Computes the total convective heat transfer across a boundary.", "href": "ConvectiveHeatTransferSideIntegral.html"}>>>
    T_fluid_var<<<{"description": "The fluid temperature."}>>> = channel_T
    htc<<<{"description": "Name of alpha_wall material property"}>>> = alpha_wall
    T_solid<<<{"description": "The solid temperature."}>>> = temperature
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = interface
  [../]

  [./Qw3]
    type = ConvectiveHeatTransferSideIntegral<<<{"description": "Computes the total convective heat transfer across a boundary.", "href": "ConvectiveHeatTransferSideIntegral.html"}>>>
    T_fluid<<<{"description": "Name of the fluid temperature material property"}>>> = tfluid_mat
    htc<<<{"description": "Name of alpha_wall material property"}>>> = alpha_wall
    T_solid<<<{"description": "The solid temperature."}>>> = temperature
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = interface
  [../]
[]

[Executioner<<<{"href": "../../syntax/Executioner/index.html"}>>>]
  type = Steady
[]

[Outputs<<<{"href": "../../syntax/Outputs/index.html"}>>>]
  csv<<<{"description": "Output the scalar variable and postprocessors to a *.csv file using the default CSV output."}>>> = true
[]
(moose/modules/heat_transfer/test/tests/postprocessors/convective_ht_side_integral.i)

Input Parameters

  • T_solidThe solid temperature.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The solid temperature.

  • 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

Required Parameters

  • T_fluidName of the fluid temperature material property

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the fluid temperature material property

  • T_fluid_varThe fluid temperature.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The fluid temperature.

  • htcName of alpha_wall material property

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of alpha_wall material property

  • htc_varHTC variable

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

    Unit:(no unit assumed)

    Controllable:No

    Description:HTC variable

Optional Parameters

  • allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).

    Default:False

    C++ Type:bool

    Controllable:No

    Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).

  • execute_onTIMESTEP_ENDThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.

    Default:TIMESTEP_END

    C++ Type:ExecFlagEnum

    Options:NONE, INITIAL, LINEAR, NONLINEAR_CONVERGENCE, NONLINEAR, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, TRANSFER

    Controllable:No

    Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.

  • execution_order_group0Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.

    Default:0

    C++ Type:int

    Controllable:No

    Description:Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.

  • force_postauxFalseForces the UserObject to be executed in POSTAUX

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in POSTAUX

  • force_preauxFalseForces the UserObject to be executed in PREAUX

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in PREAUX

  • force_preicFalseForces the UserObject to be executed in PREIC during initial setup

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in PREIC during initial setup

Execution Scheduling Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

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

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:Yes

    Description:Set the enabled status of the MooseObject.

  • outputsVector of output names where you would like to restrict the output of variables(s) associated with this object

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

    Controllable:No

    Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object

  • use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

Advanced Parameters

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

Material Property Retrieval Parameters

References

No citations exist within this document.