https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ThermalMonolithicSiCProperties.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#include "libmesh/utility.h"
12
14
17{
19
20 MooseEnum ThermalConductivityModel("SNEAD STONE", "SNEAD");
21 params.addParam<MooseEnum>("thermal_conductivity_model",
23 "Thermal conductivity model to be used");
24 params.addRangeCheckedParam<Real>("density", 3216.0, "density > 0.0", "(Constant) density");
25 params.addClassDescription("Monolithic silicon carbide thermal properties.");
26 return params;
27}
28
30 : ThermalSolidProperties(parameters),
31 _k_model(getParam<MooseEnum>("thermal_conductivity_model").getEnum<ThermalConductivityModel>()),
32 _rho_const(getParam<Real>("density")),
33 _c1(925.65),
34 _c2(0.3772),
35 _c3(7.9259e-5),
36 _c4(3.1946e7)
37{
38}
39
40Real
42{
43 return _c1 + _c2 * T - _c3 * Utility::pow<2>(T) - _c4 / Utility::pow<2>(T);
44}
45
46void
47ThermalMonolithicSiCProperties::cp_from_T(const Real & T, Real & cp, Real & dcp_dT) const
48{
49 cp = cp_from_T(T);
50 dcp_dT = _c2 - 2 * _c3 * T + 2 * _c4 / Utility::pow<3>(T);
51}
52
53Real
55{
56 return _c1 * T + 0.5 * _c2 * Utility::pow<2>(T) - _c3 / 3.0 * Utility::pow<3>(T) + _c4 / T;
57}
58
59Real
61{
62 switch (_k_model)
63 {
65 return 1.0 / (-0.0003 + 1.05e-5 * T);
67 return -3.70e-8 * Utility::pow<3>(T) + 1.54e-4 * Utility::pow<2>(T) - 0.214 * T + 153.1;
68 default:
69 mooseError("Unhandled MooseEnum in ThermalMonolithicSiCProperties!");
70 }
71}
72
73void
74ThermalMonolithicSiCProperties::k_from_T(const Real & T, Real & k, Real & dk_dT) const
75{
76 k = k_from_T(T);
77
78 switch (_k_model)
79 {
81 {
82 dk_dT = -1.0 / Utility::pow<2>(-0.0003 + 1.05e-5 * T) * 1.05e-5;
83 break;
84 }
86 {
87 dk_dT = -1.11e-7 * Utility::pow<2>(T) + 3.08E-4 * T - 0.214;
88 break;
89 }
90 default:
91 mooseError("Unhandled MooseEnum in ThermalMonolithicSiCProperties!");
92 }
93}
94
95Real
97{
98 return _rho_const;
99}
100
101void
102ThermalMonolithicSiCProperties::rho_from_T(const Real & T, Real & rho, Real & drho_dT) const
103{
104 rho = rho_from_T(T);
105 drho_dT = 0.0;
106}
const double rho
const double T
registerMooseObject("SolidPropertiesApp", ThermalMonolithicSiCProperties)
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 addRangeCheckedParam(const std::string &name, const T &value, const std::string &parsed_function, const std::string &doc_string)
void mooseError(Args &&... args) const
Monolithic silicon carbide properties as a function of temperature.
ThermalConductivityModel
enumeration for selecting the thermal conductivity model
virtual Real k_from_T(const Real &T) const override
virtual Real cp_from_T(const Real &T) const override
const Real & _rho_const
(constant) density
virtual Real rho_from_T(const Real &T) const override
virtual Real cp_integral(const Real &T) const override
enum ThermalMonolithicSiCProperties::ThermalConductivityModel _k_model
ThermalMonolithicSiCProperties(const InputParameters &parameters)
Common class for solid properties that are a function of temperature.
static InputParameters validParams()