https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ThermalUCProperties.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
10#include "ThermalUCProperties.h"
11#include "libmesh/utility.h"
12
14
17
18{
20
21 params.addRangeCheckedParam<Real>("density", 13824.7, "density > 0.0", "(Constant) density");
22 params.addClassDescription("Uranium Carbide (UC) thermal properties (SI units).");
23 return params;
24}
25
27 : ThermalSolidProperties(parameters),
28 _rho_const(getParam<Real>("density")),
29 _c1(239.7),
30 _c2(5.068e-3),
31 _c3(1.7604e-5),
32 _c4(3488100)
33{
34}
35
36Real
38{
39 if ((T < 298) || (T > 2838))
40 flagInvalidSolution(
41 "UC specific heat evaluated outside of UC cp temperature range [298, 2838] K");
42 return _c1 - _c2 * T + _c3 * Utility::pow<2>(T) - _c4 / Utility::pow<2>(T);
43}
44
45void
46ThermalUCProperties::cp_from_T(const Real & T, Real & cp, Real & dcp_dT) const
47{
48
49 if ((T < 298) || (T > 2838))
50 flagInvalidSolution(
51 "UC specific heat evaluated outside of UC cp temperature range [298, 2838] K");
52
53 cp = cp_from_T(T);
54 dcp_dT = -_c2 + 2 * _c3 * T + 2 * _c4 / Utility::pow<3>(T);
55}
56
57Real
59{
60 return _c1 * T - 0.5 * _c2 * Utility::pow<2>(T) + _c3 / 3.0 * Utility::pow<3>(T) + _c4 / T;
61}
62
63Real
65{
66 if ((323 < T) && (T < 924))
67 {
68 return 21.7 - 3.04e-3 * T + 3.61e-6 * Utility::pow<2>(T);
69 }
70 else if ((924 < T) && (T < 2573))
71 {
72 return 20.2 + 1.48e-3 * T;
73 }
74 else
75 {
76 return 21.0;
77 }
78}
79
80void
81ThermalUCProperties::k_from_T(const Real & T, Real & k, Real & dk_dT) const
82{
83 if ((323 < T) && (T < 924))
84 {
85 k = k_from_T(T);
86 dk_dT = -3.04e-3 + 7.22e-6 * T;
87 }
88 else if ((924 < T) && (T < 2573))
89 {
90 k = k_from_T(T);
91 dk_dT = 1.48e-3;
92 }
93 else
94 {
95 k = k_from_T(T);
96 dk_dT = 0.0;
97 }
98}
99
100Real
101ThermalUCProperties::rho_from_T(const Real & /* T */) const
102{
103 return _rho_const;
104}
105
106void
107ThermalUCProperties::rho_from_T(const Real & T, Real & rho, Real & drho_dT) const
108{
109 rho = rho_from_T(T);
110 drho_dT = 0.0;
111}
const double rho
const double T
registerMooseObject("SolidPropertiesApp", ThermalUCProperties)
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)
Common class for solid properties that are a function of temperature.
static InputParameters validParams()
const Real & _rho_const
(constant) density
virtual Real rho_from_T(const Real &T) const override
static InputParameters validParams()
ThermalUCProperties(const InputParameters &parameters)
virtual Real cp_from_T(const Real &T) const override
virtual Real cp_integral(const Real &T) const override
virtual Real k_from_T(const Real &T) const override