https://mooseframework.inl.gov
Loading...
Searching...
No Matches
FinEfficiencyFunctorMaterial.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
14
15template <bool is_ad>
18{
20 params.addClassDescription("Computes fin efficiency.");
21 params.addRequiredParam<MooseFunctorName>("heat_transfer_coefficient",
22 "Heat transfer coefficient functor [W/(m^2-K)]");
23 params.addRequiredParam<MooseFunctorName>("thermal_conductivity",
24 "Thermal conductivity functor [W/(m-K)]");
25 params.addRequiredParam<MooseFunctorName>("fin_height", "Fin height functor [m]");
26 params.addRequiredParam<MooseFunctorName>(
27 "fin_perimeter_area_ratio",
28 "Functor for the ratio of the fin perimeter to its cross-sectional area [1/m]");
29 params.addParam<MooseFunctorName>("fin_efficiency_name",
30 "fin_efficiency",
31 "Name to give the fin efficiency functor material property");
32 return params;
33}
34
35template <bool is_ad>
37 const InputParameters & parameters)
38 : FunctorMaterial(parameters),
39 _htc(getFunctor<GenericReal<is_ad>>("heat_transfer_coefficient")),
40 _k(getFunctor<GenericReal<is_ad>>("thermal_conductivity")),
41 _L(getFunctor<GenericReal<is_ad>>("fin_height")),
42 _P_over_Ac(getFunctor<GenericReal<is_ad>>("fin_perimeter_area_ratio"))
43{
44 addFunctorProperty<GenericReal<is_ad>>(
45 getParam<MooseFunctorName>("fin_efficiency_name"),
46 [this](const auto & r, const auto & t) -> GenericReal<is_ad>
47 {
48 using std::sqrt, std::tanh;
49 const auto htc = _htc(r, t);
50 const auto k = _k(r, t);
51 const auto L = _L(r, t);
52 const auto P_over_Ac = _P_over_Ac(r, t);
53 const auto m = sqrt(htc * P_over_Ac / k);
54 const auto mL = m * L;
55 return tanh(mL) / mL;
56 });
57}
58
registerMooseObject("HeatTransferApp", FinEfficiencyFunctorMaterial)
Moose::GenericType< Real, is_ad > GenericReal
const Moose::Functor< GenericReal< is_ad > > & _L
Fin height.
const Moose::Functor< GenericReal< is_ad > > & _k
Thermal conductivity.
const Moose::Functor< GenericReal< is_ad > > & _P_over_Ac
Ratio of the fin perimeter to its cross-sectional area.
const Moose::Functor< GenericReal< is_ad > > & _htc
Heat transfer coefficient.
FinEfficiencyFunctorMaterialTempl(const InputParameters &parameters)
static InputParameters validParams()
void addRequiredParam(const std::string &name, const std::string &doc_string)
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)