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 "FinEnhancementFactorFunctorMaterial.h" 11 : 12 : registerMooseObject("HeatTransferApp", FinEnhancementFactorFunctorMaterial); 13 : registerMooseObject("HeatTransferApp", ADFinEnhancementFactorFunctorMaterial); 14 : 15 : template <bool is_ad> 16 : InputParameters 17 41 : FinEnhancementFactorFunctorMaterialTempl<is_ad>::validParams() 18 : { 19 41 : InputParameters params = FunctorMaterial::validParams(); 20 41 : params.addClassDescription("Computes a heat transfer enhancement factor for fins."); 21 82 : params.addRequiredParam<MooseFunctorName>("fin_efficiency", "Fin efficiency functor"); 22 82 : params.addRequiredParam<MooseFunctorName>( 23 : "fin_area_fraction", 24 : "Functor for the fraction of the total surface area corresponding to fins"); 25 82 : params.addRequiredParam<MooseFunctorName>( 26 : "area_increase_factor", 27 : "Functor for the ratio of the total surface area with fins to the base surface area"); 28 82 : params.addParam<MooseFunctorName>( 29 : "fin_enhancement_factor_name", 30 : "fin_enhancement_factor", 31 : "Name to give the fin enhancement factor functor material property"); 32 41 : return params; 33 0 : } 34 : 35 : template <bool is_ad> 36 22 : FinEnhancementFactorFunctorMaterialTempl<is_ad>::FinEnhancementFactorFunctorMaterialTempl( 37 : const InputParameters & parameters) 38 : : FunctorMaterial(parameters), 39 22 : _fin_efficiency(getFunctor<GenericReal<is_ad>>("fin_efficiency")), 40 44 : _fin_area_fraction(getFunctor<GenericReal<is_ad>>("fin_area_fraction")), 41 66 : _area_increase_factor(getFunctor<GenericReal<is_ad>>("area_increase_factor")) 42 : { 43 88 : addFunctorProperty<GenericReal<is_ad>>( 44 44 : getParam<MooseFunctorName>("fin_enhancement_factor_name"), 45 18 : [this](const auto & r, const auto & t) -> GenericReal<is_ad> 46 : { 47 18 : const auto fin_efficiency = _fin_efficiency(r, t); 48 18 : const auto fin_area_fraction = _fin_area_fraction(r, t); 49 0 : const auto total_efficiency = 1.0 - (1.0 - fin_efficiency) * fin_area_fraction; 50 18 : const auto area_increase_factor = _area_increase_factor(r, t); 51 18 : return total_efficiency * area_increase_factor; 52 : }); 53 44 : } 54 : 55 : template class FinEnhancementFactorFunctorMaterialTempl<false>; 56 : template class FinEnhancementFactorFunctorMaterialTempl<true>;