https://mooseframework.inl.gov
Loading...
Searching...
No Matches
SideSetHeatTransferMaterial.C
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
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#include "Function.h"
13
14// Stefan - Boltzmann Constant
15const Real SIGMA = 5.670374419E-8;
16
18
21{
23 params.addClassDescription("This material constructs the necessary coefficients and properties "
24 "for SideSetHeatTransferKernel.");
25 params.addParam<FunctionName>("conductivity", 0.0, "Heat conductivity in W/m/K.");
26 params.addParam<FunctionName>("conductivity_temperature_function",
27 "Heat conductivity in W/m/K as a function of temperature.");
28 params.addCoupledVar(
29 "gap_temperature",
30 "Coupled Temperature of gap, used for computing temperature dependent conductivity.");
31 params.addParam<FunctionName>("gap_length", 1.0, "Total width of gap in m.");
32 params.addParam<FunctionName>("Tbulk", 300, "Bulk temperature of gap in K.");
33 params.addParam<FunctionName>(
34 "h_primary", 0.0, "Convective heat transfer coefficient (primary face) in W/m^2/K.");
35 params.addParam<FunctionName>(
36 "h_neighbor", 0.0, "Convective heat transfer coefficient (neighbor face) in W/m^2/K.");
37 params.addParam<FunctionName>("emissivity_primary", 0.0, "Primary face emissivity.");
38 params.addParam<FunctionName>("emissivity_neighbor", 0.0, "Neighbor face emissivity.");
39 params.addParam<FunctionName>("reflectivity_primary",
40 "Primary face reflectivity, uses (1-emissivity) if not provided.");
41 params.addParam<FunctionName>("reflectivity_neighbor",
42 "Neighbor face reflectivity, uses (1-emissivity) if not provided.");
43 return params;
44}
45
47 : InterfaceMaterial(parameters),
48 _kgap(isParamValid("conductivity_temperature_function")
49 ? getFunction("conductivity_temperature_function")
50 : getFunction("conductivity")),
51 _Tk(isCoupled("gap_temperature") ? &coupledValue("gap_temperature") : nullptr),
52 _dgap(getFunction("gap_length")),
53 _Tb(getFunction("Tbulk")),
54 _hp(getFunction("h_primary")),
55 _hm(getFunction("h_neighbor")),
56 _eps_p(getFunction("emissivity_primary")),
57 _eps_m(getFunction("emissivity_neighbor")),
58 _rho_p(isParamValid("reflectivity_primary") ? &getFunction("reflectivity_primary") : nullptr),
59 _rho_m(isParamValid("reflectivity_neighbor") ? &getFunction("reflectivity_neighbor") : nullptr),
60 _cond(declareProperty<Real>("gap_conductance")),
61 _Tbulk(declareProperty<Real>("gap_Tbulk")),
62 _h_primary(declareProperty<Real>("gap_h_primary")),
63 _h_neighbor(declareProperty<Real>("gap_h_neighbor")),
64 _emmissivity_eff_primary(declareProperty<Real>("gap_emissivity_eff_primary")),
65 _emmissivity_eff_neighbor(declareProperty<Real>("gap_emissivity_eff_neighbor")),
66 _sigma(SIGMA)
67{
68 if ((parameters.isParamSetByUser("conductivity") ||
69 isParamValid("conductivity_temperature_function")) &&
70 !parameters.isParamSetByUser("gap_length"))
71 paramError("gap_length", "gap_length not set, but conduction term requested.");
72 if (parameters.isParamSetByUser("gap_length") &&
73 !(parameters.isParamSetByUser("conductivity") ||
74 isParamValid("conductivity_temperature_function")))
75 paramError("conductivity", "conductivity not set, but conduction term requested.");
76 if (isParamValid("conductivity_temperature_function") &&
77 parameters.isParamSetByUser("conductivity"))
78 paramError("conductivity",
79 "Cannot specify both conductivity and conductivity_temperature_function.");
80 if (isParamValid("conductivity_temperature_function") && !_Tk)
81 paramError("gap_temperature",
82 "Variable specification for temp needed if specifying a temperature dependent "
83 "conductivity.");
84
85 if (parameters.isParamSetByUser("h_primary") && !parameters.isParamSetByUser("h_neighbor"))
86 paramError("h_neighbor", "h_neighbor not set, but convection term requested.");
87 if (parameters.isParamSetByUser("h_neighbor") && !parameters.isParamSetByUser("h_primary"))
88 paramError("h_primary", "h_primary not set, but convection term requested.");
89
90 if (parameters.isParamSetByUser("emissivity_primary") &&
91 !parameters.isParamSetByUser("emissivity_neighbor"))
92 paramError("emissivity_neighbor", "emissivity_neighbor not set, but radiation term requested");
93 if (parameters.isParamSetByUser("emissivity_neighbor") &&
94 !parameters.isParamSetByUser("emissivity_primary"))
95 paramError("emissivity_primary", "emissivity_primary not set, but radiation term requested");
96}
97
98void
100{
101 // Conductance defined as k_{gap}/\delta
102 Real tqp = (_Tk ? (*_Tk)[_qp] : _t);
104
105 // Convection parameters
109
110 // If reflectivity not provided, assume 1 - epsilon
111 Real rhop = (_rho_p ? (*_rho_p).value(_t, _q_point[_qp]) : 1.0 - _eps_p.value(_t, _q_point[_qp]));
112 Real rhom = (_rho_m ? (*_rho_m).value(_t, _q_point[_qp]) : 1.0 - _eps_m.value(_t, _q_point[_qp]));
113
114 // Compute effective emissivity (primary): \frac{\sigma\epsilon^+(1-\rho^-)}{1-rho^+\rho^-}
116 if (_emmissivity_eff_primary[_qp] != 0.0) // Making sure we don't devide by zero
117 _emmissivity_eff_primary[_qp] /= 1.0 - rhop * rhom;
118
119 // Compute effective emissivity (neighbor): \frac{\sigma\epsilon^-(1-\rho^+)}{1-rho^+\rho^-}
121 if (_emmissivity_eff_neighbor[_qp] != 0.0) // Making sure we don't devide by zero
122 _emmissivity_eff_neighbor[_qp] /= 1.0 - rhop * rhom;
123}
registerMooseObject("HeatTransferApp", SideSetHeatTransferMaterial)
const Real SIGMA
virtual Real value(Real t, const Point &p) const
bool isParamSetByUser(const std::string &name) const
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
void addCoupledVar(const std::string &name, const std::string &doc_string)
const MooseArray< Point > & _q_point
static InputParameters validParams()
unsigned int _qp
const InputParameters & parameters() const
void paramError(const std::string &param, Args... args) const
bool isParamValid(const std::string &name) const
MaterialProperty< Real > & _emmissivity_eff_neighbor
MaterialProperty< Real > & _h_primary
MaterialProperty< Real > & _cond
Material property handles.
const Function & _hp
Heat transfer coefficients.
const Function & _eps_p
Surface emissivities.
SideSetHeatTransferMaterial(const InputParameters &parameters)
const VariableValue *const _Tk
Variable to compute conductivity.
MaterialProperty< Real > & _h_neighbor
MaterialProperty< Real > & _emmissivity_eff_primary
const Function & _kgap
Material conductivity.
const Real _sigma
Stefan-Boltzmann constant in W/cm^2-K^4.
virtual void computeQpProperties() override
const Function & _Tb
Gap bulk temperature.
const Function *const _rho_p
Surface reflectivities.