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