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 5265 : ClosuresBase::validParams() 15 : { 16 5265 : InputParameters params = MooseObject::validParams(); 17 : 18 5265 : params.addPrivateParam<THMProblem *>("_thm_problem"); 19 5265 : params.addPrivateParam<Logger *>("_logger"); 20 : 21 5265 : params.registerBase("Closures"); 22 : 23 5265 : return params; 24 0 : } 25 : 26 2628 : ClosuresBase::ClosuresBase(const InputParameters & params) 27 : : MooseObject(params), 28 5256 : LoggingInterface(*params.getCheckedPointerParam<Logger *>("_logger")), 29 : NamingInterface(), 30 : 31 2628 : _sim(*params.getCheckedPointerParam<THMProblem *>("_thm_problem")), 32 10512 : _factory(_app.getFactory()) 33 : { 34 2628 : } 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 44 : 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 44 : const std::string class_name = "ADWeightedAverageMaterial"; 55 44 : InputParameters params = _factory.getValidParams(class_name); 56 44 : params.set<MaterialPropertyName>("prop_name") = property_name; 57 44 : params.set<std::vector<SubdomainName>>("block") = flow_channel.getSubdomainNames(); 58 44 : params.set<std::vector<MaterialPropertyName>>("values") = values; 59 44 : params.set<std::vector<VariableName>>("weights") = weights; 60 44 : _sim.addMaterial(class_name, genName(flow_channel.name(), "wavg_mat", property_name), params); 61 88 : } 62 : 63 : void 64 849 : ClosuresBase::addWallTemperatureFromAuxMaterial(const FlowChannelBase & flow_channel, 65 : unsigned int i) const 66 : { 67 849 : const std::string class_name = "ADCoupledVariableValueMaterial"; 68 849 : InputParameters params = _factory.getValidParams(class_name); 69 1698 : params.set<std::vector<SubdomainName>>("block") = flow_channel.getSubdomainNames(); 70 1698 : params.set<MaterialPropertyName>("prop_name") = {flow_channel.getWallTemperatureNames()[i]}; 71 1698 : params.set<std::vector<VariableName>>("coupled_variable") = { 72 3396 : flow_channel.getWallTemperatureNames()[i]}; 73 849 : _sim.addMaterial(class_name, genName(flow_channel.name(), "coupled_var_mat", i), params); 74 1698 : }