ConstantViewFactorSurfaceRadiation

Description

ConstantViewFactorSurfaceRadiation implements the exchange of heat by radiation between sidesets by the net radiation method. The net radiation method is valid if the surfaces are gray, diffuse radiators. The purpose of the ConstantViewFactorSurfaceRadiation is to provide the means to model radiative exchange for coarse-grained model. ConstantViewFactorSurfaceRadiation does not compute radiative exchange between element surfaces, but it computes radiative transfer only in an average sense between sidesets.

The ConstantViewFactorSurfaceRadiation allows coupling radiative heat transfer to regions where the heat equation is solved. The net heat transfer caused by radiative heat transfer is coupled to the temperature field by GrayLambertNeumannBC. ConstantViewFactorSurfaceRadiation also supports the definition of adiabatic and fixed temperature sidesets. The temperature variable, i.e. the variable of the heat conduction equation, does not need to be defined on adiabatic and fixed temperature boundaries. This is particularly useful in cavities, where temperature is only defined on sidesets immediately adjacent to the heat conduction domain and not on the adiabatic and isothermal walls enclosing the cavity. There are three different types of boundary conditions in ConstantViewFactorSurfaceRadiation:

  • VARIABLE_TEMPERATURE are sidesets where temperature is provided by the temperature variable. The heat equation is coupled to the ConstantViewFactorSurfaceRadiation through these boundaries.

  • FIXED_TEMPERATURE are sidesets with temperature given as a function. The difference to VARIABLE_TEMPERATURE is that we do not need to solve for temperature on FIXED_TEMPERATURE. FIXED_TEMPERATURE sidesets can for example be the outside of a cavity that is in radiative heat transfer with the domain but is kept at constant temperature by being in contact with an effective coolant.

  • ADIABATIC sidesets have a zero net heat-flux. This implies that the inflow of radiation has to equal the outflow of radiation. The surface temperature assumes the value at which this condition is true. ADIABATIC sidesets do not require the temperature variable to be defined.

Explanation of the input parameters

This paragraph describes the input structure of the ConstantViewFactorSurfaceRadiation object. The following parameters are defined in detail:

  • temperature: the user must provide the name of the temperature variable as the temperature parameter. temperature is the variable that the heat conduction equation solves for.

  • boundary contains the names of _all_ sidesets that participate in the radiative heat exchange.

  • fixed_temperature_boundary should list all sidesets that are fixed temperature boundaries. fixed_temperature_boundary must be a subset of the boundary array.

  • fixed_boundary_temperatures contains function names specifying the temperatures on the fixed temperature boundaries. fixed_boundary_temperatures must be the same length as fixed_temperature_boundary.

  • adiabatic_boundary should list all sidesets that are adiabatic boundaries. adiabatic_boundary must be a subset of the boundary array.

  • view_factors lists the view factors from sideset to sideset . The ordering of the view_factors follows the ordering in boundary. View factors must be added as square arrays. This may appear redundant because missing view factors can be computed using reciprocity, but this makes it impossible to check that each row of the view factor matrix sums to 1. This is absolutely necessary for conserving energy and ensuring stability of a coupled radiative transfer, heat conduction calculation. Row sums that are less than 5 percent off, are corrected to sum to 1. If the row sum is off by more than this threshold, an error is thrown. This is an example of the format of view_factors for three surfaces:

Example Input syntax

[Mesh]
  type = GeneratedMesh
  dim = 2
  xmin = 0
  xmax = 1
  ymin = 0
  ymax = 2
  nx = 1
  ny = 1
[]

[Problem]
  kernel_coverage_check = false
[]

[Variables]
  [./temperature]
    initial_condition = 300
  [../]
[]

[UserObjects]
  [./gray_lambert]
    type = ConstantViewFactorSurfaceRadiation
    boundary = 'bottom top left right'
    fixed_temperature_boundary = 'bottom top'
    fixed_boundary_temperatures = '550 300'
    adiabatic_boundary = 'right left'
    emissivity = '1 0.75 0.75 0.75'
    temperature = temperature
    view_factors = '0 0.123 0.6928 0.1841;
                    0.123 0 0.1841 0.6928;
                    0.2771 0.0736 0.4458 0.2035;
                    0.0736 0.2771 0.2035 0.4458'
  [../]
[]

[VectorPostprocessors]
  [./lambert_vpp]
    type = SurfaceRadiationVectorPostprocessor
    surface_radiation_object_name = gray_lambert
    information = 'temperature emissivity radiosity heat_flux_density'
  [../]

  [./view_factors]
    type = ViewfactorVectorPostprocessor
    surface_radiation_object_name = gray_lambert
  [../]
[]

[Postprocessors]
  [./heat_flux_density_bottom]
    type = GrayLambertSurfaceRadiationPP
    surface_radiation_object_name = gray_lambert
    return_type = HEAT_FLUX_DENSITY
    boundary = bottom
  [../]

  [./temperature_left]
    type = GrayLambertSurfaceRadiationPP
    surface_radiation_object_name = gray_lambert
    return_type = TEMPERATURE
    boundary = left
  [../]

  [./temperature_right]
    type = GrayLambertSurfaceRadiationPP
    surface_radiation_object_name = gray_lambert
    return_type = TEMPERATURE
    boundary = right
  [../]

  [./brightness_top]
    type = GrayLambertSurfaceRadiationPP
    surface_radiation_object_name = gray_lambert
    return_type = RADIOSITY
    boundary = top
  [../]
[]

[Executioner]
  type = Transient
  num_steps = 1
[]
(modules/heat_conduction/test/tests/gray_lambert_radiator/gray_lambert_cavity.i)

Input Parameters

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

    C++ Type:std::vector

    Options:

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

  • emissivityEmissivities for each boundary.

    C++ Type:std::vector

    Options:

    Description:Emissivities for each boundary.

  • temperatureThe coupled temperature variable.

    C++ Type:std::vector

    Options:

    Description:The coupled temperature variable.

  • view_factorsThe view factors from sideset i to sideset j.

    C++ Type:std::vector>

    Options:

    Description:The view factors from sideset i to sideset j.

Required Parameters

  • adiabatic_boundaryThe list of boundary IDs from the mesh that are adiabatic.

    C++ Type:std::vector

    Options:

    Description:The list of boundary IDs from the mesh that are adiabatic.

  • execute_onTIMESTEP_ENDThe list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM.

    Default:TIMESTEP_END

    C++ Type:ExecFlagEnum

    Options:NONE INITIAL LINEAR NONLINEAR TIMESTEP_END TIMESTEP_BEGIN FINAL CUSTOM

    Description:The list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM.

  • fixed_boundary_temperaturesThe temperatures of the fixed boundary.

    C++ Type:std::vector

    Options:

    Description:The temperatures of the fixed boundary.

  • fixed_temperature_boundaryThe list of boundary IDs from the mesh with fixed temperatures.

    C++ Type:std::vector

    Options:

    Description:The list of boundary IDs from the mesh with fixed temperatures.

  • stefan_boltzmann_constant5.67037e-08The Stefan-Boltzmann constant. Default value is in units of [W / m^2 K^4].

    Default:5.67037e-08

    C++ Type:double

    Options:

    Description:The Stefan-Boltzmann constant. Default value is in units of [W / m^2 K^4].

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

    Options:

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

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

    C++ Type:std::vector

    Options:

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

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Options:

    Description:Set the enabled status of the MooseObject.

  • 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

    Options:

    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

Input Files