https://mooseframework.inl.gov
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 
15 template <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 
35 template <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  const auto htc = _htc(r, t);
49  const auto k = _k(r, t);
50  const auto L = _L(r, t);
51  const auto P_over_Ac = _P_over_Ac(r, t);
52  const auto m = std::sqrt(htc * P_over_Ac / k);
53  const auto mL = m * L;
54  return std::tanh(mL) / mL;
55  });
56 }
57 
Moose::GenericType< Real, is_ad > GenericReal
FinEfficiencyFunctorMaterialTempl(const InputParameters &parameters)
static InputParameters validParams()
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addRequiredParam(const std::string &name, const std::string &doc_string)
registerMooseObject("HeatTransferApp", FinEfficiencyFunctorMaterial)
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.
const Moose::Functor< GenericReal< is_ad > > & _k
Thermal conductivity.
void addClassDescription(const std::string &doc_string)
const Moose::Functor< GenericReal< is_ad > > & _L
Fin height.
static const std::string k
Definition: NS.h:130