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 "InputParameters.h" 13 : 14 : class HeatConductionModel; 15 : class GeometricalComponent; 16 : 17 : /** 18 : * Interface class for heat structure components 19 : */ 20 0 : class HeatStructureInterface 21 : { 22 : public: 23 : static InputParameters validParams(); 24 : 25 : HeatStructureInterface(GeometricalComponent * geometrical_component); 26 : 27 : /** 28 : * Gets the initial temperature function name 29 : */ 30 : FunctionName getInitialT() const; 31 : 32 : /** 33 : * Gets the geometrical component inheriting from this interface 34 : */ 35 : const GeometricalComponent & getGeometricalComponent() const 36 : { 37 41 : return _geometrical_component_hsi; 38 : } 39 : 40 : protected: 41 : /** 42 : * Use cylindrical transformation? 43 : */ 44 : virtual bool useCylindricalTransformation() const = 0; 45 : 46 : /** 47 : * Builds the heat conduction model 48 : */ 49 : virtual std::shared_ptr<HeatConductionModel> buildModel(); 50 : 51 : /** 52 : * Method to be called in the component's init() method 53 : */ 54 : void init(); 55 : 56 : /** 57 : * Method to be called in the component's check() method 58 : */ 59 : void check() const; 60 : 61 : /** 62 : * Method to be called in the component's addVariables() method 63 : */ 64 : void addVariables(); 65 : 66 : /** 67 : * Method to be called in the component's addMooseObjects() method 68 : */ 69 : void addMooseObjects(); 70 : 71 : /// The heat conduction model used by this heat structure 72 : std::shared_ptr<HeatConductionModel> _hc_model; 73 : 74 : private: 75 : /// The geometrical component inheriting from this interface 76 : GeometricalComponent & _geometrical_component_hsi; 77 : };