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 "HeatTransferFromTemperature1Phase.h" 11 : #include "FlowModelSinglePhase.h" 12 : 13 : InputParameters 14 898 : HeatTransferFromTemperature1Phase::validParams() 15 : { 16 898 : InputParameters params = HeatTransfer1PhaseBase::validParams(); 17 1796 : MooseEnum var_type("nodal elemental", "nodal", false); 18 1796 : params.addParam<MooseEnum>( 19 : "var_type", var_type, "The type of wall temperature variable (nodal, elemental)."); 20 898 : params.addClassDescription("Heat transfer specified by a wall temperature provided by an " 21 : "external application going into 1-phase flow channel."); 22 898 : return params; 23 898 : } 24 : 25 449 : HeatTransferFromTemperature1Phase::HeatTransferFromTemperature1Phase( 26 449 : const InputParameters & parameters) 27 : : HeatTransfer1PhaseBase(parameters), 28 449 : _fe_type(getParam<MooseEnum>("var_type") == 0 ? libMesh::FEType(FIRST, LAGRANGE) 29 449 : : libMesh::FEType(CONSTANT, MONOMIAL)) 30 : { 31 449 : } 32 : 33 : const libMesh::FEType & 34 241 : HeatTransferFromTemperature1Phase::getFEType() 35 : { 36 241 : return _fe_type; 37 : } 38 : 39 : void 40 388 : HeatTransferFromTemperature1Phase::addVariables() 41 : { 42 388 : HeatTransfer1PhaseBase::addVariables(); 43 : 44 388 : getTHMProblem().addSimVariable(false, _T_wall_name, getFEType(), _flow_channel_subdomains); 45 388 : } 46 : 47 : void 48 388 : HeatTransferFromTemperature1Phase::addMooseObjects() 49 : { 50 388 : HeatTransfer1PhaseBase::addMooseObjects(); 51 388 : } 52 : 53 : void 54 241 : HeatTransferFromTemperature1Phase::addHeatTransferKernels() 55 : { 56 : { 57 241 : const std::string class_name = "ADOneDEnergyWallHeating"; 58 241 : InputParameters params = _factory.getValidParams(class_name); 59 482 : params.set<NonlinearVariableName>("variable") = FlowModelSinglePhase::RHOEA; 60 482 : params.set<std::vector<SubdomainName>>("block") = _flow_channel_subdomains; 61 723 : params.set<std::vector<VariableName>>("T_wall") = {_T_wall_name}; 62 482 : params.set<MaterialPropertyName>("Hw") = _Hw_1phase_name; 63 723 : params.set<std::vector<VariableName>>("P_hf") = {_P_hf_name}; 64 482 : params.set<MaterialPropertyName>("T") = FlowModelSinglePhase::TEMPERATURE; 65 482 : getTHMProblem().addKernel(class_name, genName(name(), "wall_heat_transfer"), params); 66 241 : } 67 241 : } 68 : 69 : bool 70 927 : HeatTransferFromTemperature1Phase::isTemperatureType() const 71 : { 72 927 : return true; 73 : }