LCOV - code coverage report
Current view: top level - src/solidproperties - ThermalMonolithicSiCProperties.C (source / functions) Hit Total Coverage
Test: idaholab/moose solid_properties: #31405 (292dce) with base fef103 Lines: 44 48 91.7 %
Date: 2025-09-04 07:57:33 Functions: 9 9 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       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 "ThermalMonolithicSiCProperties.h"
      11             : #include "libmesh/utility.h"
      12             : 
      13             : registerMooseObject("SolidPropertiesApp", ThermalMonolithicSiCProperties);
      14             : 
      15             : InputParameters
      16          39 : ThermalMonolithicSiCProperties::validParams()
      17             : {
      18          39 :   InputParameters params = ThermalSolidProperties::validParams();
      19             : 
      20          78 :   MooseEnum ThermalConductivityModel("SNEAD STONE", "SNEAD");
      21          78 :   params.addParam<MooseEnum>("thermal_conductivity_model",
      22             :                              ThermalConductivityModel,
      23             :                              "Thermal conductivity model to be used");
      24          78 :   params.addRangeCheckedParam<Real>("density", 3216.0, "density > 0.0", "(Constant) density");
      25          39 :   params.addClassDescription("Monolithic silicon carbide thermal properties.");
      26          39 :   return params;
      27          39 : }
      28             : 
      29          20 : ThermalMonolithicSiCProperties::ThermalMonolithicSiCProperties(const InputParameters & parameters)
      30             :   : ThermalSolidProperties(parameters),
      31          20 :     _k_model(getParam<MooseEnum>("thermal_conductivity_model").getEnum<ThermalConductivityModel>()),
      32          40 :     _rho_const(getParam<Real>("density")),
      33          20 :     _c1(925.65),
      34          20 :     _c2(0.3772),
      35          20 :     _c3(7.9259e-5),
      36          20 :     _c4(3.1946e7)
      37             : {
      38          20 : }
      39             : 
      40             : Real
      41         612 : ThermalMonolithicSiCProperties::cp_from_T(const Real & T) const
      42             : {
      43         612 :   return _c1 + _c2 * T - _c3 * Utility::pow<2>(T) - _c4 / Utility::pow<2>(T);
      44             : }
      45             : 
      46             : void
      47           2 : ThermalMonolithicSiCProperties::cp_from_T(const Real & T, Real & cp, Real & dcp_dT) const
      48             : {
      49           2 :   cp = cp_from_T(T);
      50           2 :   dcp_dT = _c2 - 2 * _c3 * T + 2 * _c4 / Utility::pow<3>(T);
      51           2 : }
      52             : 
      53             : Real
      54          14 : ThermalMonolithicSiCProperties::cp_integral(const Real & T) const
      55             : {
      56          14 :   return _c1 * T + 0.5 * _c2 * Utility::pow<2>(T) - _c3 / 3.0 * Utility::pow<3>(T) + _c4 / T;
      57             : }
      58             : 
      59             : Real
      60         620 : ThermalMonolithicSiCProperties::k_from_T(const Real & T) const
      61             : {
      62         620 :   switch (_k_model)
      63             :   {
      64         610 :     case ThermalConductivityModel::SNEAD:
      65         610 :       return 1.0 / (-0.0003 + 1.05e-5 * T);
      66             :     case ThermalConductivityModel::STONE:
      67          10 :       return -3.70e-8 * Utility::pow<3>(T) + 1.54e-4 * Utility::pow<2>(T) - 0.214 * T + 153.1;
      68           0 :     default:
      69           0 :       mooseError("Unhandled MooseEnum in ThermalMonolithicSiCProperties!");
      70             :   }
      71             : }
      72             : 
      73             : void
      74           4 : ThermalMonolithicSiCProperties::k_from_T(const Real & T, Real & k, Real & dk_dT) const
      75             : {
      76           4 :   k = k_from_T(T);
      77             : 
      78           4 :   switch (_k_model)
      79             :   {
      80           2 :     case ThermalConductivityModel::SNEAD:
      81             :     {
      82           2 :       dk_dT = -1.0 / Utility::pow<2>(-0.0003 + 1.05e-5 * T) * 1.05e-5;
      83           2 :       break;
      84             :     }
      85             :     case ThermalConductivityModel::STONE:
      86             :     {
      87           2 :       dk_dT = -1.11e-7 * Utility::pow<2>(T) + 3.08E-4 * T - 0.214;
      88           2 :       break;
      89             :     }
      90           0 :     default:
      91           0 :       mooseError("Unhandled MooseEnum in ThermalMonolithicSiCProperties!");
      92             :   }
      93           4 : }
      94             : 
      95             : Real
      96         610 : ThermalMonolithicSiCProperties::rho_from_T(const Real & /* T */) const
      97             : {
      98         610 :   return _rho_const;
      99             : }
     100             : 
     101             : void
     102           2 : ThermalMonolithicSiCProperties::rho_from_T(const Real & T, Real & rho, Real & drho_dT) const
     103             : {
     104           2 :   rho = rho_from_T(T);
     105           2 :   drho_dT = 0.0;
     106           2 : }

Generated by: LCOV version 1.14