www.mooseframework.org
SideSetHeatTransferMaterial.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
11 
12 // Stefan - Boltzmann Constant
13 const Real SIGMA = 5.670374419E-8;
14 
16 
17 template <>
18 InputParameters
20 {
21  InputParameters params = validParams<InterfaceMaterial>();
22  params.addClassDescription("This material constructs the necessary coefficients and properties "
23  "for SideSetHeatTransferKernel.");
24  params.addParam<FunctionName>("conductivity", 0.0, "Heat conductivity in W/m/K.");
25  params.addParam<FunctionName>("conductivity_temperature_function",
26  "Heat conductivity in W/m/K as a function of temperature.");
27  params.addCoupledVar(
28  "gap_temperature",
29  "Coupled Temperature of gap, used for computing temperature dependent conductivity.");
30  params.addParam<FunctionName>("gap_length", 1.0, "Total width of gap in m.");
31  params.addParam<FunctionName>("Tbulk", 300, "Bulk temperature of gap in K.");
32  params.addParam<FunctionName>(
33  "h_master", 0.0, "Convective heat transfer coefficient (master face) in W/m^2/K.");
34  params.addParam<FunctionName>(
35  "h_neighbor", 0.0, "Convective heat transfer coefficient (neighbor face) in W/m^2/K.");
36  params.addParam<FunctionName>("emissivity_master", 0.0, "Master face emissivity.");
37  params.addParam<FunctionName>("emissivity_neighbor", 0.0, "Neighbor face emissivity.");
38  params.addParam<FunctionName>("reflectivity_master",
39  "Master face reflectivity, uses (1-emissivity) if not provided.");
40  params.addParam<FunctionName>("reflectivity_neighbor",
41  "Neighbor face reflectivity, uses (1-emissivity) if not provided.");
42  return params;
43 }
44 
46  : InterfaceMaterial(parameters),
47  _kgap(isParamValid("conductivity_temperature_function")
48  ? getFunction("conductivity_temperature_function")
49  : getFunction("conductivity")),
50  _Tk(isCoupled("gap_temperature") ? &coupledValue("gap_temperature") : nullptr),
51  _dgap(getFunction("gap_length")),
52  _Tb(getFunction("Tbulk")),
53  _hp(getFunction("h_master")),
54  _hm(getFunction("h_neighbor")),
55  _eps_p(getFunction("emissivity_master")),
56  _eps_m(getFunction("emissivity_neighbor")),
57  _rho_p(isParamValid("reflectivity_master") ? &getFunction("reflectivity_master") : nullptr),
58  _rho_m(isParamValid("reflectivity_neighbor") ? &getFunction("reflectivity_neighbor") : nullptr),
59  _cond(declareProperty<Real>("gap_conductance")),
60  _Tbulk(declareProperty<Real>("gap_Tbulk")),
61  _h_master(declareProperty<Real>("gap_h_master")),
62  _h_neighbor(declareProperty<Real>("gap_h_neighbor")),
63  _emmissivity_eff_master(declareProperty<Real>("gap_emissivity_eff_master")),
64  _emmissivity_eff_neighbor(declareProperty<Real>("gap_emissivity_eff_neighbor")),
65  _sigma(SIGMA)
66 {
67  if ((parameters.isParamSetByUser("conductivity") ||
68  isParamValid("conductivity_temperature_function")) &&
69  !parameters.isParamSetByUser("gap_length"))
70  paramError("gap_length", "gap_length not set, but conduction term requested.");
71  if (parameters.isParamSetByUser("gap_length") &&
72  !(parameters.isParamSetByUser("conductivity") ||
73  isParamValid("conductivity_temperature_function")))
74  paramError("conductivity", "conductivity not set, but conduction term requested.");
75  if (isParamValid("conductivity_temperature_function") &&
76  parameters.isParamSetByUser("conductivity"))
77  paramError("conductivity",
78  "Cannot specify both conductivity and conductivity_temperature_function.");
79  if (isParamValid("conductivity_temperature_function") && !_Tk)
80  paramError("gap_temperature",
81  "Variable specification for temp needed if specifying a temperature dependent "
82  "conductivity.");
83 
84  if (parameters.isParamSetByUser("h_master") && !parameters.isParamSetByUser("h_neighbor"))
85  paramError("h_neighbor", "h_neighbor not set, but convection term requested.");
86  if (parameters.isParamSetByUser("h_neighbor") && !parameters.isParamSetByUser("h_master"))
87  paramError("h_master", "h_master not set, but convection term requested.");
88 
89  if (parameters.isParamSetByUser("emissivity_master") &&
90  !parameters.isParamSetByUser("emissivity_neighbor"))
91  paramError("emissivity_neighbor", "emissivity_neighbor not set, but radiation term requested");
92  if (parameters.isParamSetByUser("emissivity_neighbor") &&
93  !parameters.isParamSetByUser("emissivity_master"))
94  paramError("emissivity_master", "emissivity_master not set, but radiation term requested");
95 }
96 
97 void
99 {
100  // Conductance defined as k_{gap}/\delta
101  Real tqp = (_Tk ? (*_Tk)[_qp] : _t);
102  _cond[_qp] = _kgap.value(tqp, _q_point[_qp]) / _dgap.value(_t, _q_point[_qp]);
103 
104  // Convection parameters
105  _Tbulk[_qp] = _Tb.value(_t, _q_point[_qp]);
106  _h_master[_qp] = _hp.value(_t, _q_point[_qp]);
107  _h_neighbor[_qp] = _hm.value(_t, _q_point[_qp]);
108 
109  // If reflectivity not provided, assume 1 - epsilon
110  Real rhop = (_rho_p ? (*_rho_p).value(_t, _q_point[_qp]) : 1.0 - _eps_p.value(_t, _q_point[_qp]));
111  Real rhom = (_rho_m ? (*_rho_m).value(_t, _q_point[_qp]) : 1.0 - _eps_m.value(_t, _q_point[_qp]));
112 
113  // Compute effective emissivity (master): \frac{\sigma\epsilon^+(1-\rho^-)}{1-rho^+\rho^-}
114  _emmissivity_eff_master[_qp] = _sigma * _eps_p.value(_t, _q_point[_qp]) * (1.0 - rhom);
115  if (_emmissivity_eff_master[_qp] != 0.0) // Making sure we don't devide by zero
116  _emmissivity_eff_master[_qp] /= 1.0 - rhop * rhom;
117 
118  // Compute effective emissivity (neighbor): \frac{\sigma\epsilon^-(1-\rho^+)}{1-rho^+\rho^-}
119  _emmissivity_eff_neighbor[_qp] = _sigma * _eps_m.value(_t, _q_point[_qp]) * (1.0 - rhop);
120  if (_emmissivity_eff_neighbor[_qp] != 0.0) // Making sure we don't devide by zero
121  _emmissivity_eff_neighbor[_qp] /= 1.0 - rhop * rhom;
122 }
SideSetHeatTransferMaterial::_hp
const Function & _hp
Heat transfer coefficients.
Definition: SideSetHeatTransferMaterial.h:40
SideSetHeatTransferMaterial::_Tb
const Function & _Tb
Gap bulk temperature.
Definition: SideSetHeatTransferMaterial.h:38
SideSetHeatTransferMaterial::_hm
const Function & _hm
Definition: SideSetHeatTransferMaterial.h:41
SideSetHeatTransferMaterial::_rho_p
const Function * _rho_p
Surface reflectivities.
Definition: SideSetHeatTransferMaterial.h:46
SideSetHeatTransferMaterial::_emmissivity_eff_master
MaterialProperty< Real > & _emmissivity_eff_master
Definition: SideSetHeatTransferMaterial.h:54
SideSetHeatTransferMaterial::_h_master
MaterialProperty< Real > & _h_master
Definition: SideSetHeatTransferMaterial.h:52
SideSetHeatTransferMaterial::SideSetHeatTransferMaterial
SideSetHeatTransferMaterial(const InputParameters &parameters)
Definition: SideSetHeatTransferMaterial.C:45
SideSetHeatTransferMaterial::_emmissivity_eff_neighbor
MaterialProperty< Real > & _emmissivity_eff_neighbor
Definition: SideSetHeatTransferMaterial.h:55
SideSetHeatTransferMaterial::_sigma
const Real _sigma
Stefan-Boltzmann constant in W/cm^2-K^4.
Definition: SideSetHeatTransferMaterial.h:58
SideSetHeatTransferMaterial::_dgap
const Function & _dgap
Gap width.
Definition: SideSetHeatTransferMaterial.h:36
SIGMA
const Real SIGMA
Definition: SideSetHeatTransferMaterial.C:13
SideSetHeatTransferMaterial::_Tk
const VariableValue * _Tk
Variable to compute conductivity.
Definition: SideSetHeatTransferMaterial.h:34
SideSetHeatTransferMaterial::_rho_m
const Function * _rho_m
Definition: SideSetHeatTransferMaterial.h:47
SideSetHeatTransferMaterial::_eps_p
const Function & _eps_p
Surface emissivities.
Definition: SideSetHeatTransferMaterial.h:43
SideSetHeatTransferMaterial::_eps_m
const Function & _eps_m
Definition: SideSetHeatTransferMaterial.h:44
SideSetHeatTransferMaterial::_h_neighbor
MaterialProperty< Real > & _h_neighbor
Definition: SideSetHeatTransferMaterial.h:53
SideSetHeatTransferMaterial::computeQpProperties
virtual void computeQpProperties() override
Definition: SideSetHeatTransferMaterial.C:98
registerMooseObject
registerMooseObject("HeatConductionApp", SideSetHeatTransferMaterial)
validParams< SideSetHeatTransferMaterial >
InputParameters validParams< SideSetHeatTransferMaterial >()
Definition: SideSetHeatTransferMaterial.C:19
SideSetHeatTransferMaterial::_Tbulk
MaterialProperty< Real > & _Tbulk
Definition: SideSetHeatTransferMaterial.h:51
SideSetHeatTransferMaterial
Definition: SideSetHeatTransferMaterial.h:23
SideSetHeatTransferMaterial.h
SideSetHeatTransferMaterial::_cond
MaterialProperty< Real > & _cond
Material property handles.
Definition: SideSetHeatTransferMaterial.h:50
SideSetHeatTransferMaterial::_kgap
const Function & _kgap
Material conductivity.
Definition: SideSetHeatTransferMaterial.h:32