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 "FlowChannelBase.h" 13 : 14 : /** 15 : * Base class for single-phase flow channels 16 : */ 17 : class FlowChannel1PhaseBase : public FlowChannelBase 18 : { 19 : public: 20 : static InputParameters validParams(); 21 : 22 : FlowChannel1PhaseBase(const InputParameters & params); 23 : 24 : virtual void addMooseObjects() override; 25 : 26 : /** 27 : * Gets 1-phase wall heat transfer coefficient names for connected heat transfers 28 : */ 29 334 : std::vector<MaterialPropertyName> getWallHTCNames1Phase() const { return _Hw_1phase_names; } 30 : 31 : /** 32 : * Gets the numerical flux user object name 33 : */ 34 3307 : const UserObjectName & getNumericalFluxUserObjectName() const { return _numerical_flux_name; } 35 : 36 : /** 37 : * Gets the slope reconstruction option used 38 : */ 39 888 : const MooseEnum & getSlopeReconstruction() const { return _rdg_slope_reconstruction; } 40 : 41 : /// Returns the names of the IC parameters 42 : virtual std::vector<std::string> ICParameters() const = 0; 43 : 44 : protected: 45 : virtual void init() override; 46 : virtual std::shared_ptr<FlowModel> buildFlowModel() override; 47 : virtual void check() const override; 48 : 49 : /** 50 : * Adds a material for the hydraulic diameter 51 : */ 52 : virtual void addHydraulicDiameterMaterial(); 53 : 54 : /** 55 : * Populates heat connection variable names lists 56 : */ 57 : virtual void getHeatTransferVariableNames() override; 58 : 59 : /// Logs an error if the fluid properties is not valid 60 : virtual void checkFluidProperties() const = 0; 61 : 62 : /// Returns the flow model class name 63 : virtual std::string flowModelClassName() const = 0; 64 : 65 : /// 1-phase wall heat transfer coefficient names for connected heat transfers 66 : std::vector<MaterialPropertyName> _Hw_1phase_names; 67 : 68 : /// Numerical flux user object name 69 : const UserObjectName _numerical_flux_name; 70 : 71 : /// Slope reconstruction type for rDG 72 : const MooseEnum _rdg_slope_reconstruction; 73 : };