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 : #pragma once 11 : 12 : #include "LinearFVAdvectionDiffusionBC.h" 13 : 14 : /** 15 : * Class describing a convective heat transfer between two domains. 16 : * The heat flux is described by: 17 : * h * (T_solid - T_liquid), 18 : * where h is the heat transfer coefficient, while T_solid and T_liquid 19 : * denote the solid and liquid temperatures, respectively. 20 : */ 21 : class LinearFVConvectiveHeatTransferBC : public LinearFVAdvectionDiffusionBC 22 : { 23 : public: 24 : static InputParameters validParams(); 25 : 26 : /** 27 : * Class constructor. 28 : * @param parameters The InputParameters for the object 29 : */ 30 : LinearFVConvectiveHeatTransferBC(const InputParameters & parameters); 31 : 32 : virtual Real computeBoundaryValue() const override; 33 : 34 : virtual Real computeBoundaryNormalGradient() const override; 35 : 36 : virtual Real computeBoundaryValueMatrixContribution() const override; 37 : 38 : virtual Real computeBoundaryValueRHSContribution() const override; 39 : 40 : virtual Real computeBoundaryGradientMatrixContribution() const override; 41 : 42 : virtual Real computeBoundaryGradientRHSContribution() const override; 43 : 44 122112 : virtual bool includesMaterialPropertyMultiplier() const override { return true; } 45 : 46 : protected: 47 : /// The fluid temperature, we use the functor form to enable situations when 48 : /// the user wants to supply a solution-independent form for this. 49 : const Moose::Functor<Real> & _temp_fluid; 50 : 51 : /// The solid/wall temperature, we use the functor form to enable situations when 52 : /// the user wants to supply a solution-independent form for this. 53 : const Moose::Functor<Real> & _temp_solid; 54 : 55 : /// The convective heat transfer coefficient 56 : const Moose::Functor<Real> & _htc; 57 : 58 : /// Helper boolean to see if the variable we have is the fluid variable 59 : bool _var_is_fluid; 60 : 61 : /// The temperature which will contribute to the right hand side. 62 : /// When this is the fluid domain, the solid temperature will go to the 63 : /// right hand side. When it is the solid domain, the fluid temperature 64 : /// will contribute to the right hand side. 65 : const Moose::Functor<Real> * _rhs_temperature; 66 : };