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 "ClosuresBase.h" 11 : #include "FlowChannelBase.h" 12 : 13 : InputParameters 14 2803 : ClosuresBase::validParams() 15 : { 16 2803 : InputParameters params = MooseObject::validParams(); 17 : 18 2803 : params.addPrivateParam<THMProblem *>("_thm_problem"); 19 2803 : params.addPrivateParam<Logger *>("_logger"); 20 : 21 2803 : params.registerBase("Closures"); 22 : 23 2803 : return params; 24 0 : } 25 : 26 1398 : ClosuresBase::ClosuresBase(const InputParameters & params) 27 : : MooseObject(params), 28 2796 : LoggingInterface(*params.getCheckedPointerParam<Logger *>("_logger")), 29 : NamingInterface(), 30 : 31 1398 : _sim(*params.getCheckedPointerParam<THMProblem *>("_thm_problem")), 32 5592 : _factory(_app.getFactory()) 33 : { 34 1398 : } 35 : 36 : void 37 0 : ClosuresBase::addZeroMaterial(const FlowChannelBase & flow_channel, 38 : const std::string & property_name) const 39 : { 40 0 : const std::string class_name = "ADConstantMaterial"; 41 0 : InputParameters params = _factory.getValidParams(class_name); 42 0 : params.set<std::vector<SubdomainName>>("block") = flow_channel.getSubdomainNames(); 43 0 : params.set<std::string>("property_name") = property_name; 44 0 : params.set<Real>("value") = 0; 45 0 : _sim.addMaterial(class_name, genName(flow_channel.name(), "const_mat", property_name), params); 46 0 : } 47 : 48 : void 49 22 : ClosuresBase::addWeightedAverageMaterial(const FlowChannelBase & flow_channel, 50 : const std::vector<MaterialPropertyName> & values, 51 : const std::vector<VariableName> & weights, 52 : const MaterialPropertyName & property_name) const 53 : { 54 22 : const std::string class_name = "ADWeightedAverageMaterial"; 55 22 : InputParameters params = _factory.getValidParams(class_name); 56 22 : params.set<MaterialPropertyName>("prop_name") = property_name; 57 22 : params.set<std::vector<SubdomainName>>("block") = flow_channel.getSubdomainNames(); 58 22 : params.set<std::vector<MaterialPropertyName>>("values") = values; 59 22 : params.set<std::vector<VariableName>>("weights") = weights; 60 22 : _sim.addMaterial(class_name, genName(flow_channel.name(), "wavg_mat", property_name), params); 61 44 : } 62 : 63 : void 64 405 : ClosuresBase::addWallTemperatureFromAuxMaterial(const FlowChannelBase & flow_channel, 65 : unsigned int i) const 66 : { 67 405 : const std::string class_name = "ADCoupledVariableValueMaterial"; 68 405 : InputParameters params = _factory.getValidParams(class_name); 69 810 : params.set<std::vector<SubdomainName>>("block") = flow_channel.getSubdomainNames(); 70 810 : params.set<MaterialPropertyName>("prop_name") = {flow_channel.getWallTemperatureNames()[i]}; 71 810 : params.set<std::vector<VariableName>>("coupled_variable") = { 72 1620 : flow_channel.getWallTemperatureNames()[i]}; 73 405 : _sim.addMaterial(class_name, genName(flow_channel.name(), "coupled_var_mat", i), params); 74 810 : }