https://mooseframework.inl.gov
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 
40 Real
42 {
43  return _c1 + _c2 * T - _c3 * Utility::pow<2>(T) - _c4 / Utility::pow<2>(T);
44 }
45 
46 void
47 ThermalMonolithicSiCProperties::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 
53 Real
55 {
56  return _c1 * T + 0.5 * _c2 * Utility::pow<2>(T) - _c3 / 3.0 * Utility::pow<3>(T) + _c4 / T;
57 }
58 
59 Real
61 {
62  switch (_k_model)
63  {
64  case ThermalConductivityModel::SNEAD:
65  return 1.0 / (-0.0003 + 1.05e-5 * T);
66  case ThermalConductivityModel::STONE:
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 
73 void
74 ThermalMonolithicSiCProperties::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  {
80  case ThermalConductivityModel::SNEAD:
81  {
82  dk_dT = -1.0 / Utility::pow<2>(-0.0003 + 1.05e-5 * T) * 1.05e-5;
83  break;
84  }
85  case ThermalConductivityModel::STONE:
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 
95 Real
96 ThermalMonolithicSiCProperties::rho_from_T(const Real & /* T */) const
97 {
98  return _rho_const;
99 }
100 
101 void
102 ThermalMonolithicSiCProperties::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 }
Monolithic silicon carbide properties as a function of temperature.
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
virtual Real rho_from_T(const Real &T) const override
const Real & _rho_const
(constant) density
virtual Real k_from_T(const Real &T) const override
virtual Real cp_integral(const Real &T) const override
Common class for solid properties that are a function of temperature.
static InputParameters validParams()
enum ThermalMonolithicSiCProperties::ThermalConductivityModel _k_model
ThermalMonolithicSiCProperties(const InputParameters &parameters)
static const std::string cp
Definition: NS.h:121
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void mooseError(Args &&... args) const
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)
registerMooseObject("SolidPropertiesApp", ThermalMonolithicSiCProperties)
ThermalConductivityModel
enumeration for selecting the thermal conductivity model
virtual Real cp_from_T(const Real &T) const override
static const std::string k
Definition: NS.h:130