CoupledConvectiveHeatFluxBC
Convective heat transfer boundary condition with temperature and heat transfer coefficent given by auxiliary variables.
This boundary condition computes convective heat flux , where is convective heat transfer coefficient, is the temperature solved for, and is far field temperature. Both and are spatially varying variables.
A typical use case for this boundary condition are coupled multi-apps exchanging heat flux.
It is possible to use vector coupling to compute the heat flux for multi-phase fluids. In this case, users need to supply alpha
parameter, which represents the volume fraction for each phase. Similarly, multiple components have to be supplied for htc
and T_infinity
. The number of components for alpha
, Hw
and T_infinity
must match. The heat flux is then computed as .
Parameter can be used to scale the total heat flux. By default, it is (i.e. no scaling). Note that is actually a field variable, so spatially dependent scaling is possible. This can be used to locally turn the BC on or off.
[./right]
type = CoupledConvectiveHeatFluxBC
variable = u
boundary = right
alpha = 'alpha_liquid alpha_vapor'
htc = 'Hw_liquid Hw_vapor'
T_infinity = 'T_infinity_liquid T_infinity_vapor'
[../]
(modules/heat_transfer/test/tests/heat_conduction/coupled_convective_heat_flux/coupled_convective_heat_flux_two_phase.i)(modules/heat_transfer/test/tests/heat_conduction/coupled_convective_heat_flux/coupled_convective_heat_flux_two_phase.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Functions]
[./alpha_liquid_fn]
type = ParsedFunction
expression = 'sin(pi*y)'
[../]
[./T_infinity_liquid_fn]
type = ParsedFunction
expression = '(x*x+y*y)+500'
[../]
[./Hw_liquid_fn]
type = ParsedFunction
expression = '((1-x)*(1-x)+(1-y)*(1-y))+1000'
[../]
[./alpha_vapor_fn]
type = ParsedFunction
expression = '1-sin(pi*y)'
[../]
[./T_infinity_vapor_fn]
type = ParsedFunction
expression = '(x*x+y*y)+5'
[../]
[./Hw_vapor_fn]
type = ParsedFunction
expression = '((1-x)*(1-x)+(1-y)*(1-y))+10'
[../]
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./T_infinity_liquid]
[../]
[./Hw_liquid]
[../]
[./alpha_liquid]
[../]
[./T_infinity_vapor]
[../]
[./Hw_vapor]
[../]
[./alpha_vapor]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./force]
type = BodyForce
variable = u
value = 1000
[../]
[]
[AuxKernels]
[./alpha_liquid_ak]
type = FunctionAux
variable = alpha_liquid
function = alpha_liquid_fn
execute_on = initial
[../]
[./T_infinity_liquid_ak]
type = FunctionAux
variable = T_infinity_liquid
function = T_infinity_liquid_fn
execute_on = initial
[../]
[./Hw_liquid_ak]
type = FunctionAux
variable = Hw_liquid
function = Hw_liquid_fn
execute_on = initial
[../]
[./alpha_vapor_ak]
type = FunctionAux
variable = alpha_vapor
function = alpha_vapor_fn
execute_on = initial
[../]
[./T_infinity_vapor_ak]
type = FunctionAux
variable = T_infinity_vapor
function = T_infinity_vapor_fn
execute_on = initial
[../]
[./Hw_vapor_ak]
type = FunctionAux
variable = Hw_vapor
function = Hw_vapor_fn
execute_on = initial
[../]
[]
[BCs]
[./right]
type = CoupledConvectiveHeatFluxBC
variable = u
boundary = right
alpha = 'alpha_liquid alpha_vapor'
htc = 'Hw_liquid Hw_vapor'
T_infinity = 'T_infinity_liquid T_infinity_vapor'
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(modules/heat_transfer/test/tests/code_verification/spherical_test_no4.i)
# Problem III.4
#
# A spherical shell has thermal conductivity k and heat generation q.
# It has an inner radius ri and outer radius ro. A constant heat flux is
# applied to the inside surface qin and the outside surface is exposed
# to a fluid temperature uf and heat transfer coefficient h.
#
# REFERENCE:
# A. Toptan, et al. (Mar.2020). Tech. rep. CASL-U-2020-1939-000, SAND2020-3887 R. DOI:10.2172/1614683.
[Mesh]
[./geom]
type = GeneratedMeshGenerator
dim = 1
elem_type = EDGE2
xmin = 0.2
nx = 4
[../]
[]
[Variables]
[./u]
order = FIRST
[../]
[]
[Problem]
coord_type = RSPHERICAL
[]
[Functions]
[./exact]
type = ParsedFunction
symbol_names = 'qin q k ri ro uf h'
symbol_values = '100 1200 1.0 0.2 1 100 10'
expression = 'uf+ (q/(6*k)) * ( ro^2-x^2 + 2*k*(ro^3-ri^3)/(h*ro^2) + 2 * ri^3 * (1/ro-1/x) ) + (1/x-1/ro+k/(h*ro^2)) * qin * ri^2 / k'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = u
[../]
[./heatsource]
type = HeatSource
function = 1200
variable = u
[../]
[]
[BCs]
[./ui]
type = NeumannBC
boundary = left
variable = u
value = 100
[../]
[./uo]
type = CoupledConvectiveHeatFluxBC
boundary = right
variable = u
htc = 10.0
T_infinity = 100
[../]
[]
[Materials]
[./property]
type = GenericConstantMaterial
prop_names = 'density specific_heat thermal_conductivity'
prop_values = '1.0 1.0 1.0'
[../]
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[./error]
type = ElementL2Error
function = exact
variable = u
[../]
[./h]
type = AverageElementSize
[]
[]
[Outputs]
csv = true
[]
(modules/heat_transfer/test/tests/heat_conduction/coupled_convective_heat_flux/coupled_convective_heat_flux.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Functions]
[./T_infinity_fn]
type = ParsedFunction
expression = (x*x+y*y)+500
[../]
[./Hw_fn]
type = ParsedFunction
expression = ((1-x)*(1-x)+(1-y)*(1-y))+1000
[../]
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./T_infinity]
[../]
[./Hw]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./force]
type = BodyForce
variable = u
value = 1000
[../]
[]
[AuxKernels]
[./T_infinity_ak]
type = FunctionAux
variable = T_infinity
function = T_infinity_fn
execute_on = initial
[../]
[./Hw_ak]
type = FunctionAux
variable = Hw
function = Hw_fn
execute_on = initial
[../]
[]
[BCs]
[./right]
type = CoupledConvectiveHeatFluxBC
variable = u
boundary = right
htc = Hw
T_infinity = T_infinity
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(modules/heat_transfer/test/tests/radiation_transfer_symmetry/cavity_with_pillars.i)
#
# inner_left: 8
# inner_right: 9
# inner_top: 12
# inner_bottom: 11
# inner_front: 10
# back_2: 7
# obstruction: 6
#
[Mesh]
[cartesian]
type = CartesianMeshGenerator
dim = 3
dx = '0.4 0.5 0.5 0.5 0.5 0.5 0.5 0.4'
dy = '0.5 0.75 0.5'
dz = '1.5 0.5'
subdomain_id = '
3 1 1 1 1 1 1 4
3 1 2 1 1 2 1 4
3 1 1 1 1 1 1 4
3 1 1 1 1 1 1 4
3 1 1 1 1 1 1 4
3 1 1 1 1 1 1 4
'
[]
[add_obstruction]
type = SideSetsBetweenSubdomainsGenerator
primary_block = 2
paired_block = 1
new_boundary = obstruction
input = cartesian
[]
[add_new_back]
type = ParsedGenerateSideset
combinatorial_geometry = 'abs(z) < 1e-10'
included_subdomains = '1'
normal = '0 0 -1'
new_sideset_name = back_2
input = add_obstruction
[]
[add_inner_left]
type = SideSetsBetweenSubdomainsGenerator
primary_block = 3
paired_block = 1
new_boundary = inner_left
input = add_new_back
[]
[add_inner_right]
type = SideSetsBetweenSubdomainsGenerator
primary_block = 4
paired_block = 1
new_boundary = inner_right
input = add_inner_left
[]
[add_inner_front]
type = ParsedGenerateSideset
combinatorial_geometry = 'abs(z - 2) < 1e-10'
included_subdomains = '1'
normal = '0 0 1'
new_sideset_name = inner_front
input = add_inner_right
[]
[add_inner_bottom]
type = ParsedGenerateSideset
combinatorial_geometry = 'abs(y) < 1e-10'
included_subdomains = '1'
normal = '0 -1 0'
new_sideset_name = inner_bottom
input = add_inner_front
[]
[add_inner_top]
type = ParsedGenerateSideset
combinatorial_geometry = 'abs(y - 1.75) < 1e-10'
included_subdomains = '1'
normal = '0 1 0'
new_sideset_name = inner_top
input = add_inner_bottom
[]
[]
[Problem]
kernel_coverage_check = false
[]
[Variables]
[temperature]
block = '2 3 4'
initial_condition = 300
[]
[]
[Kernels]
[conduction]
type = HeatConduction
variable = temperature
block = '2 3 4'
diffusion_coefficient = 1
[]
[source]
type = BodyForce
variable = temperature
value = 1000
block = '2'
[]
[]
[BCs]
[convective]
type = CoupledConvectiveHeatFluxBC
variable = temperature
T_infinity = 300
htc = 50
boundary = 'left right'
[]
[]
[GrayDiffuseRadiation]
[cavity]
boundary = '6 7 8 9 10 11 12'
emissivity = '1 1 1 1 1 1 1'
n_patches = '1 1 1 1 1 1 1'
adiabatic_boundary = '7 10 11 12'
partitioners = 'metis metis metis metis metis metis metis'
temperature = temperature
ray_tracing_face_order = SECOND
normalize_view_factor = false
[]
[]
[Postprocessors]
[Tpv]
type = PointValue
variable = temperature
point = '0.3 0.5 0.5'
[]
[volume]
type = VolumePostprocessor
[]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(modules/heat_transfer/test/tests/code_verification/cylindrical_test_no4.i)
# Problem II.4
#
# An infinitely long hollow cylinder has thermal conductivity k and internal
# heat generation q. Its inner radius is ri and outer radius is ro.
# A constant heat flux is applied to the inside surface qin and
# the outside surface is exposed to a fluid temperature T and heat transfer
# coefficient h, which results in the convective boundary condition.
#
# REFERENCE:
# A. Toptan, et al. (Mar.2020). Tech. rep. CASL-U-2020-1939-000, SAND2020-3887 R. DOI:10.2172/1614683.
[Mesh]
[./geom]
type = GeneratedMeshGenerator
dim = 1
elem_type = EDGE2
xmin = 0.2
nx = 4
[../]
[]
[Variables]
[./u]
order = FIRST
[../]
[]
[Problem]
coord_type = RZ
[]
[Functions]
[./exact]
type = ParsedFunction
symbol_names = 'qin q k ri ro uf h'
symbol_values = '100 1200 1.0 0.2 1 100 10'
expression = 'uf+ (0.25*q/k) * ( 2*k*(ro^2-ri^2)/(h*ro) + ro^2-x^2 + 2*ri^2*log(x/ro)) + (k/(h*ro) - log(x/ro)) * qin * ri / k'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = u
[../]
[./heatsource]
type = HeatSource
function = 1200
variable = u
[../]
[]
[BCs]
[./ui]
type = NeumannBC
boundary = left
variable = u
value = 100
[../]
[./uo]
type = CoupledConvectiveHeatFluxBC
boundary = right
variable = u
htc = 10.0
T_infinity = 100
[../]
[]
[Materials]
[./property]
type = GenericConstantMaterial
prop_names = 'density specific_heat thermal_conductivity'
prop_values = '1.0 1.0 1.0'
[../]
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[./error]
type = ElementL2Error
function = exact
variable = u
[../]
[./h]
type = AverageElementSize
[]
[]
[Outputs]
csv = true
[]
(modules/heat_transfer/test/tests/postprocessors/ad_convective_ht_side_integral.i)
[Mesh]
[./cartesian]
type = CartesianMeshGenerator
dim = 2
dx = '0.45 0.1 0.45'
ix = '5 1 5'
dy = '0.45 0.1 0.45'
iy = '5 1 5'
subdomain_id = '1 1 1
1 2 1
1 1 1'
[../]
[./add_iss_1]
type = SideSetsBetweenSubdomainsGenerator
primary_block = 1
paired_block = 2
new_boundary = 'interface'
input = cartesian
[../]
[./block_deleter]
type = BlockDeletionGenerator
block = 2
input = add_iss_1
[../]
[]
[Variables]
[./temperature]
initial_condition = 300
[../]
[]
[AuxVariables]
[./channel_T]
family = MONOMIAL
order = CONSTANT
initial_condition = 400
[../]
[./channel_Hw]
family = MONOMIAL
order = CONSTANT
initial_condition = 1000
[../]
[]
[Kernels]
[./graphite_diffusion]
type = ADHeatConduction
variable = temperature
thermal_conductivity = 'thermal_conductivity'
[../]
[]
[BCs]
## boundary conditions for the thm channels in the reflector
[./channel_heat_transfer]
type = CoupledConvectiveHeatFluxBC
variable = temperature
htc = channel_Hw
T_infinity = channel_T
boundary = 'interface'
[../]
# hot boundary on the left
[./left]
type = DirichletBC
variable = temperature
value = 1000
boundary = 'left'
[../]
# cool boundary on the right
[./right]
type = DirichletBC
variable = temperature
value = 300
boundary = 'right'
[../]
[]
[Materials]
[./pronghorn_solid_material]
type = ADHeatConductionMaterial
temp = temperature
thermal_conductivity = 25
specific_heat = 1000
[../]
[./htc_material]
type = ADGenericConstantMaterial
prop_names = 'alpha_wall'
prop_values = '1000'
[../]
[./tfluid_mat]
type = ADPiecewiseLinearInterpolationMaterial
property = tfluid_mat
variable = channel_T
x = '400 500'
y = '400 500'
[../]
[]
[Postprocessors]
[./Qw1]
type = ADConvectiveHeatTransferSideIntegral
T_fluid_var = channel_T
htc_var = channel_Hw
T_solid = temperature
boundary = interface
[../]
[./Qw2]
type = ADConvectiveHeatTransferSideIntegral
T_fluid_var = channel_T
htc = alpha_wall
T_solid = temperature
boundary = interface
[../]
[./Qw3]
type = ADConvectiveHeatTransferSideIntegral
T_fluid = tfluid_mat
htc = alpha_wall
T_solid = temperature
boundary = interface
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]
(modules/heat_transfer/test/tests/code_verification/cartesian_test_no4.i)
# Problem I.4
#
# An infinite plate with constant thermal conductivity k and internal
# heat generation q. The left boundary is exposed to a constant heat flux q0.
# The right boundary is exposed to a fluid with constant temperature uf and
# heat transfer coefficient h, which results in the convective boundary condition.
#
# REFERENCE:
# A. Toptan, et al. (Mar.2020). Tech. rep. CASL-U-2020-1939-000, SAND2020-3887 R. DOI:10.2172/1614683.
[Mesh]
[./geom]
type = GeneratedMeshGenerator
dim = 1
elem_type = EDGE2
nx = 1
[../]
[]
[Variables]
[./u]
order = FIRST
[../]
[]
[Functions]
[./exact]
type = ParsedFunction
symbol_names = 'q q0 k L uf h'
symbol_values = '1200 200 1 1 100 10.0'
expression = 'uf + (q0 + L * q)/h + 0.5 * ( 2 * q0 + q * (L + x)) * (L-x) / k'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = u
[../]
[./heatsource]
type = HeatSource
function = 1200
variable = u
[../]
[]
[BCs]
[./ui]
type = NeumannBC
boundary = left
variable = u
value = 200
[../]
[./uo]
type = CoupledConvectiveHeatFluxBC
boundary = right
variable = u
htc = 10.0
T_infinity = 100
[../]
[]
[Materials]
[./property]
type = GenericConstantMaterial
prop_names = 'density specific_heat thermal_conductivity'
prop_values = '1.0 1.0 1.0'
[../]
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[./error]
type = ElementL2Error
function = exact
variable = u
[../]
[./h]
type = AverageElementSize
[]
[]
[Outputs]
csv = true
[]
(modules/heat_transfer/test/tests/heat_conduction/coupled_convective_heat_flux/on_off.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./t_infinity]
[../]
[./active]
initial_condition = 1
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./force]
type = BodyForce
variable = u
value = 1000
[../]
[]
[AuxKernels]
[./t_infinity]
type = ConstantAux
variable = t_infinity
value = 500
execute_on = initial
[../]
[./active_right]
type = ConstantAux
variable = active
value = 0
boundary = right
[../]
[]
[BCs]
[./right]
type = CoupledConvectiveHeatFluxBC
variable = u
boundary = 'left right top bottom'
htc = 10
T_infinity = t_infinity
scale_factor = active
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
(modules/heat_transfer/test/tests/radiation_transfer_symmetry/cavity_with_pillars_symmetry_bc.i)
#
# inner_left: 8
# inner_top: 11
# inner_bottom: 10
# inner_front: 9
# back_2: 7
# obstruction: 6
#
[Mesh]
[cartesian]
type = CartesianMeshGenerator
dim = 3
dx = '0.4 0.5 0.5 0.5'
dy = '0.5 0.75 0.5'
dz = '1.5 0.5'
subdomain_id = '
3 1 1 1
3 1 2 1
3 1 1 1
3 1 1 1
3 1 1 1
3 1 1 1
'
[]
[add_obstruction]
type = SideSetsBetweenSubdomainsGenerator
primary_block = 2
paired_block = 1
new_boundary = obstruction
input = cartesian
[]
[add_new_back]
type = ParsedGenerateSideset
combinatorial_geometry = 'abs(z) < 1e-10'
included_subdomains = '1'
normal = '0 0 -1'
new_sideset_name = back_2
input = add_obstruction
[]
[add_inner_left]
type = SideSetsBetweenSubdomainsGenerator
primary_block = 3
paired_block = 1
new_boundary = inner_left
input = add_new_back
[]
[add_inner_front]
type = ParsedGenerateSideset
combinatorial_geometry = 'abs(z - 2) < 1e-10'
included_subdomains = '1'
normal = '0 0 1'
new_sideset_name = inner_front
input = add_inner_left
[]
[add_inner_bottom]
type = ParsedGenerateSideset
combinatorial_geometry = 'abs(y) < 1e-10'
included_subdomains = '1'
normal = '0 -1 0'
new_sideset_name = inner_bottom
input = add_inner_front
[]
[add_inner_top]
type = ParsedGenerateSideset
combinatorial_geometry = 'abs(y - 1.75) < 1e-10'
included_subdomains = '1'
normal = '0 1 0'
new_sideset_name = inner_top
input = add_inner_bottom
[]
[]
[Problem]
kernel_coverage_check = false
[]
[Variables]
[temperature]
block = '2 3'
initial_condition = 300
[]
[]
[Kernels]
[conduction]
type = HeatConduction
variable = temperature
block = '2 3'
diffusion_coefficient = 1
[]
[source]
type = BodyForce
variable = temperature
value = 1000
block = '2'
[]
[]
[BCs]
[convective]
type = CoupledConvectiveHeatFluxBC
variable = temperature
T_infinity = 300
htc = 50
boundary = 'left'
[]
[]
[GrayDiffuseRadiation]
[./cavity]
boundary = '6 7 8 9 10 11'
emissivity = '1 1 1 1 1 1'
n_patches = '1 1 1 1 1 1'
adiabatic_boundary = '7 9 10 11'
symmetry_boundary = '2'
partitioners = 'metis metis metis metis metis metis'
temperature = temperature
ray_tracing_face_order = SECOND
normalize_view_factor = false
[../]
[]
[Postprocessors]
[Tpv]
type = PointValue
variable = temperature
point = '0.3 0.5 0.5'
[]
[volume]
type = VolumePostprocessor
[]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(modules/heat_transfer/test/tests/heat_conduction/coupled_convective_heat_flux/const_hw.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./t_infinity]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./force]
type = BodyForce
variable = u
value = 1000
[../]
[]
[AuxKernels]
[./t_infinity]
type = ConstantAux
variable = t_infinity
value = 500
execute_on = initial
[../]
[]
[BCs]
[./right]
type = CoupledConvectiveHeatFluxBC
variable = u
boundary = right
htc = 10
T_infinity = t_infinity
[../]
[]
[Executioner]
type = Steady
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(modules/heat_transfer/test/tests/heat_conduction/coupled_convective_heat_flux/coupled_convective_heat_flux_two_phase.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Functions]
[./alpha_liquid_fn]
type = ParsedFunction
expression = 'sin(pi*y)'
[../]
[./T_infinity_liquid_fn]
type = ParsedFunction
expression = '(x*x+y*y)+500'
[../]
[./Hw_liquid_fn]
type = ParsedFunction
expression = '((1-x)*(1-x)+(1-y)*(1-y))+1000'
[../]
[./alpha_vapor_fn]
type = ParsedFunction
expression = '1-sin(pi*y)'
[../]
[./T_infinity_vapor_fn]
type = ParsedFunction
expression = '(x*x+y*y)+5'
[../]
[./Hw_vapor_fn]
type = ParsedFunction
expression = '((1-x)*(1-x)+(1-y)*(1-y))+10'
[../]
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./T_infinity_liquid]
[../]
[./Hw_liquid]
[../]
[./alpha_liquid]
[../]
[./T_infinity_vapor]
[../]
[./Hw_vapor]
[../]
[./alpha_vapor]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./force]
type = BodyForce
variable = u
value = 1000
[../]
[]
[AuxKernels]
[./alpha_liquid_ak]
type = FunctionAux
variable = alpha_liquid
function = alpha_liquid_fn
execute_on = initial
[../]
[./T_infinity_liquid_ak]
type = FunctionAux
variable = T_infinity_liquid
function = T_infinity_liquid_fn
execute_on = initial
[../]
[./Hw_liquid_ak]
type = FunctionAux
variable = Hw_liquid
function = Hw_liquid_fn
execute_on = initial
[../]
[./alpha_vapor_ak]
type = FunctionAux
variable = alpha_vapor
function = alpha_vapor_fn
execute_on = initial
[../]
[./T_infinity_vapor_ak]
type = FunctionAux
variable = T_infinity_vapor
function = T_infinity_vapor_fn
execute_on = initial
[../]
[./Hw_vapor_ak]
type = FunctionAux
variable = Hw_vapor
function = Hw_vapor_fn
execute_on = initial
[../]
[]
[BCs]
[./right]
type = CoupledConvectiveHeatFluxBC
variable = u
boundary = right
alpha = 'alpha_liquid alpha_vapor'
htc = 'Hw_liquid Hw_vapor'
T_infinity = 'T_infinity_liquid T_infinity_vapor'
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(modules/heat_transfer/test/tests/postprocessors/convective_ht_side_integral.i)
[Mesh]
type = MeshGeneratorMesh
[./cartesian]
type = CartesianMeshGenerator
dim = 2
dx = '0.45 0.1 0.45'
ix = '5 1 5'
dy = '0.45 0.1 0.45'
iy = '5 1 5'
subdomain_id = '1 1 1
1 2 1
1 1 1'
[../]
[./add_iss_1]
type = SideSetsBetweenSubdomainsGenerator
primary_block = 1
paired_block = 2
new_boundary = 'interface'
input = cartesian
[../]
[./block_deleter]
type = BlockDeletionGenerator
block = 2
input = add_iss_1
[../]
[]
[Variables]
[./temperature]
initial_condition = 300
[../]
[]
[AuxVariables]
[./channel_T]
family = MONOMIAL
order = CONSTANT
initial_condition = 400
[../]
[./channel_Hw]
family = MONOMIAL
order = CONSTANT
initial_condition = 1000
[../]
[]
[Kernels]
[./graphite_diffusion]
type = HeatConduction
variable = temperature
diffusion_coefficient = 'k_s'
[../]
[]
[BCs]
## boundary conditions for the thm channels in the reflector
[./channel_heat_transfer]
type = CoupledConvectiveHeatFluxBC
variable = temperature
htc = channel_Hw
T_infinity = channel_T
boundary = 'interface'
[../]
# hot boundary on the left
[./left]
type = DirichletBC
variable = temperature
value = 1000
boundary = 'left'
[../]
# cool boundary on the right
[./right]
type = DirichletBC
variable = temperature
value = 300
boundary = 'right'
[../]
[]
[Materials]
[./thermal]
type = GenericConstantMaterial
prop_names = 'k_s'
prop_values = '12'
[../]
[./htc_material]
type = GenericConstantMaterial
prop_names = 'alpha_wall'
prop_values = '1000'
[../]
[./tfluid_mat]
type = PiecewiseLinearInterpolationMaterial
property = tfluid_mat
variable = channel_T
x = '400 500'
y = '400 500'
[../]
[]
[Postprocessors]
[./Qw1]
type = ConvectiveHeatTransferSideIntegral
T_fluid_var = channel_T
htc_var = channel_Hw
T_solid = temperature
boundary = interface
[../]
[./Qw2]
type = ConvectiveHeatTransferSideIntegral
T_fluid_var = channel_T
htc = alpha_wall
T_solid = temperature
boundary = interface
[../]
[./Qw3]
type = ConvectiveHeatTransferSideIntegral
T_fluid = tfluid_mat
htc = alpha_wall
T_solid = temperature
boundary = interface
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]