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 "CylindricalGapHeatFluxFunctorMaterial.h"
11 : #include "HeatTransferModels.h"
12 :
13 : registerMooseObject("HeatTransferApp", CylindricalGapHeatFluxFunctorMaterial);
14 : registerMooseObject("HeatTransferApp", ADCylindricalGapHeatFluxFunctorMaterial);
15 :
16 : template <bool is_ad>
17 : InputParameters
18 41 : CylindricalGapHeatFluxFunctorMaterialTempl<is_ad>::validParams()
19 : {
20 41 : InputParameters params = FunctorMaterial::validParams();
21 :
22 41 : params.addClassDescription("Computes cylindrical gap heat flux due to conduction and radiation.");
23 :
24 82 : params.addRequiredParam<MooseFunctorName>("r_inner", "Inner surface radius functor [m]");
25 82 : params.addRequiredParam<MooseFunctorName>("r_outer", "Outer surface radius functor [m]");
26 82 : params.addRequiredParam<MooseFunctorName>("T_inner", "Inner surface temperature functor [K]");
27 82 : params.addRequiredParam<MooseFunctorName>("T_outer", "Outer surface temperature functor [K]");
28 82 : params.addRequiredParam<MooseFunctorName>("k_gap", "Gap thermal conductivity [W/(m-K)]");
29 82 : params.addRequiredParam<MooseFunctorName>("emissivity_inner", "Inner surface emissivity functor");
30 82 : params.addRequiredParam<MooseFunctorName>("emissivity_outer", "Outer surface emissivity functor");
31 :
32 82 : params.addParam<MooseFunctorName>(
33 : "conduction_heat_flux_name",
34 : "conduction_heat_flux",
35 : "Name to give the conduction heat flux functor material property");
36 82 : params.addParam<MooseFunctorName>(
37 : "radiation_heat_flux_name",
38 : "radiation_heat_flux",
39 : "Name to give the radiation heat flux functor material property");
40 82 : params.addParam<MooseFunctorName>("total_heat_flux_name",
41 : "total_heat_flux",
42 : "Name to give the total heat flux functor material property");
43 :
44 41 : return params;
45 0 : }
46 :
47 : template <bool is_ad>
48 22 : CylindricalGapHeatFluxFunctorMaterialTempl<is_ad>::CylindricalGapHeatFluxFunctorMaterialTempl(
49 : const InputParameters & parameters)
50 : : FunctorMaterial(parameters),
51 22 : _r_inner(getFunctor<GenericReal<is_ad>>("r_inner")),
52 44 : _r_outer(getFunctor<GenericReal<is_ad>>("r_outer")),
53 44 : _T_inner(getFunctor<GenericReal<is_ad>>("T_inner")),
54 44 : _T_outer(getFunctor<GenericReal<is_ad>>("T_outer")),
55 44 : _k_gap(getFunctor<GenericReal<is_ad>>("k_gap")),
56 44 : _emiss_inner(getFunctor<GenericReal<is_ad>>("emissivity_inner")),
57 66 : _emiss_outer(getFunctor<GenericReal<is_ad>>("emissivity_outer"))
58 : {
59 88 : addFunctorProperty<GenericReal<is_ad>>(
60 44 : getParam<MooseFunctorName>("conduction_heat_flux_name"),
61 9000 : [this](const auto & r, const auto & t) -> GenericReal<is_ad>
62 : {
63 : return HeatTransferModels::cylindricalGapConductionHeatFlux(
64 9000 : _k_gap(r, t), _r_inner(r, t), _r_outer(r, t), _T_inner(r, t), _T_outer(r, t));
65 : });
66 :
67 88 : addFunctorProperty<GenericReal<is_ad>>(
68 44 : getParam<MooseFunctorName>("radiation_heat_flux_name"),
69 9000 : [this](const auto & r, const auto & t) -> GenericReal<is_ad>
70 : {
71 9000 : return HeatTransferModels::cylindricalGapRadiationHeatFlux(_r_inner(r, t),
72 9000 : _r_outer(r, t),
73 9000 : _emiss_inner(r, t),
74 9000 : _emiss_outer(r, t),
75 9000 : _T_inner(r, t),
76 9000 : _T_outer(r, t));
77 : });
78 :
79 88 : addFunctorProperty<GenericReal<is_ad>>(
80 44 : getParam<MooseFunctorName>("total_heat_flux_name"),
81 9000 : [this](const auto & r, const auto & t) -> GenericReal<is_ad>
82 : {
83 : return HeatTransferModels::cylindricalGapConductionHeatFlux(
84 9000 : _k_gap(r, t), _r_inner(r, t), _r_outer(r, t), _T_inner(r, t), _T_outer(r, t)) +
85 9000 : HeatTransferModels::cylindricalGapRadiationHeatFlux(_r_inner(r, t),
86 9000 : _r_outer(r, t),
87 9000 : _emiss_inner(r, t),
88 9000 : _emiss_outer(r, t),
89 9000 : _T_inner(r, t),
90 18000 : _T_outer(r, t));
91 : });
92 88 : }
93 :
94 : template class CylindricalGapHeatFluxFunctorMaterialTempl<false>;
95 : template class CylindricalGapHeatFluxFunctorMaterialTempl<true>;
|