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 "LinearFVCHTBCInterface.h" 13 : #include "LinearFVAdvectionDiffusionBC.h" 14 : 15 : /** 16 : * Conjugate heat transfer BC for Robin boundary condition-based 17 : * coupling. Differs from regular BCs due to the need of error checking 18 : * and direct computation of the fluxes. 19 : */ 20 : class LinearFVRobinCHTBC : public LinearFVAdvectionDiffusionBC, public LinearFVCHTBCInterface 21 : { 22 : public: 23 : /** 24 : * Class constructor. 25 : * @param parameters The InputParameters for the object 26 : */ 27 : LinearFVRobinCHTBC(const InputParameters & parameters); 28 : 29 : static InputParameters validParams(); 30 : 31 : protected: 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 679680 : virtual bool includesMaterialPropertyMultiplier() const override { return true; } 45 : 46 : protected: 47 : /// The virtual convective heat transfer coefficient 48 : const Moose::Functor<Real> & _htc; 49 : 50 : /// The thermal conductivity of the material 51 : const Moose::Functor<Real> & _k; 52 : 53 : /// The incoming diffusive flux on the intervace 54 : const Moose::Functor<Real> & _incoming_flux; 55 : 56 : /// The prescribed temperature on the interface 57 : const Moose::Functor<Real> & _surface_temperature; 58 : };