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 "HeatTransferFromExternalAppHeatFlux1Phase.h" 11 : #include "FlowModelSinglePhase.h" 12 : 13 : registerMooseObject("ThermalHydraulicsApp", HeatTransferFromExternalAppHeatFlux1Phase); 14 : 15 : InputParameters 16 16 : HeatTransferFromExternalAppHeatFlux1Phase::validParams() 17 : { 18 16 : InputParameters params = HeatTransfer1PhaseBase::validParams(); 19 16 : params.addClassDescription("Heat transfer specified by heat flux provided by an external " 20 : "application going into 1-phase flow channel."); 21 16 : return params; 22 0 : } 23 : 24 8 : HeatTransferFromExternalAppHeatFlux1Phase::HeatTransferFromExternalAppHeatFlux1Phase( 25 8 : const InputParameters & parameters) 26 8 : : HeatTransfer1PhaseBase(parameters) 27 : { 28 8 : } 29 : 30 : void 31 8 : HeatTransferFromExternalAppHeatFlux1Phase::addVariables() 32 : { 33 8 : HeatTransfer1PhaseBase::addVariables(); 34 : 35 16 : getTHMProblem().addSimVariable( 36 8 : false, _q_wall_name, libMesh::FEType(CONSTANT, MONOMIAL), _flow_channel_subdomains); 37 : 38 8 : if (!_app.isRestarting()) 39 16 : getTHMProblem().addConstantIC(_q_wall_name, 0, _flow_channel_subdomains); 40 8 : } 41 : 42 : void 43 8 : HeatTransferFromExternalAppHeatFlux1Phase::addMooseObjects() 44 : { 45 8 : HeatTransfer1PhaseBase::addMooseObjects(); 46 : 47 : { 48 8 : const std::string class_name = "ADCoupledVariableValueMaterial"; 49 8 : InputParameters params = _factory.getValidParams(class_name); 50 8 : params.set<std::vector<SubdomainName>>("block") = _flow_channel_subdomains; 51 8 : params.set<MaterialPropertyName>("prop_name") = _q_wall_name; 52 24 : params.set<std::vector<VariableName>>("coupled_variable") = {_q_wall_name}; 53 16 : getTHMProblem().addMaterial(class_name, genName(name(), "q_wall_material"), params); 54 8 : } 55 : 56 : // wall heat transfer kernel 57 : { 58 8 : const std::string class_name = "ADOneDEnergyWallHeatFlux"; 59 8 : InputParameters params = _factory.getValidParams(class_name); 60 16 : params.set<NonlinearVariableName>("variable") = FlowModelSinglePhase::RHOEA; 61 8 : params.set<std::vector<SubdomainName>>("block") = _flow_channel_subdomains; 62 16 : params.set<MaterialPropertyName>("q_wall") = _q_wall_name; 63 24 : params.set<std::vector<VariableName>>("P_hf") = {_P_hf_name}; 64 16 : getTHMProblem().addKernel(class_name, genName(name(), "wall_heat"), params); 65 8 : } 66 16 : } 67 : 68 : bool 69 8 : HeatTransferFromExternalAppHeatFlux1Phase::isTemperatureType() const 70 : { 71 8 : return false; 72 : }