https://mooseframework.inl.gov
Loading...
Searching...
No Matches
HSBoundaryRadiation.C
Go to the documentation of this file.
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 "HSBoundaryRadiation.h"
11#include "HeatConductionModel.h"
14
16
19{
21
22 params.addRequiredParam<MooseFunctorName>("emissivity", "Emissivity functor [-]");
23 params.addParam<MooseFunctorName>("view_factor", 1.0, "View factor functor [-]");
24 params.addRequiredParam<MooseFunctorName>("T_ambient", "Ambient temperature functor [K]");
25 params.addParam<MooseFunctorName>(
26 "scale", 1.0, "Functor by which to scale the boundary condition");
27 params.addParam<bool>(
28 "scale_heat_rate_pp",
29 true,
30 "If true, the scaling function is applied to the heat rate post-processor.");
31
32 params.addClassDescription("Radiative heat transfer boundary condition for heat structure");
33
34 return params;
35}
36
38
39void
41{
42 const HeatStructureInterface & hs = getComponent<HeatStructureInterface>("hs");
43 const HeatStructureCylindricalBase * hs_cyl =
44 dynamic_cast<const HeatStructureCylindricalBase *>(&hs);
45 const bool is_cylindrical = hs_cyl != nullptr;
46
47 {
48 const std::string class_name =
49 is_cylindrical ? "ADRadiativeHeatFluxRZBC" : "ADRadiativeHeatFluxBC";
50 InputParameters pars = _factory.getValidParams(class_name);
51 pars.set<NonlinearVariableName>("variable") = HeatConductionModel::TEMPERATURE;
52 pars.set<std::vector<BoundaryName>>("boundary") = _boundary;
53 pars.set<MooseFunctorName>("emissivity") = getParam<MooseFunctorName>("emissivity");
54 pars.set<MooseFunctorName>("T_ambient") = getParam<MooseFunctorName>("T_ambient");
55 pars.set<MooseFunctorName>("view_factor") = getParam<MooseFunctorName>("view_factor");
56 if (is_cylindrical)
57 {
58 pars.set<Point>("axis_point") = hs_cyl->getPosition();
59 pars.set<RealVectorValue>("axis_dir") = hs_cyl->getDirection();
60 }
61 pars.set<MooseFunctorName>("scale") = getParam<MooseFunctorName>("scale");
62
63 getTHMProblem().addBoundaryCondition(class_name, genName(name(), "bc"), pars);
64 }
65
66 // Create integral PP for cylindrical heat structures
67 if (is_cylindrical)
68 {
69 const std::string class_name = "HeatRateRadiationRZ";
70 InputParameters pars = _factory.getValidParams(class_name);
71 pars.set<std::vector<BoundaryName>>("boundary") = _boundary;
72 pars.set<std::vector<VariableName>>("T") = {HeatConductionModel::TEMPERATURE};
73 pars.set<MooseFunctorName>("T_ambient") = getParam<MooseFunctorName>("T_ambient");
74 pars.set<MooseFunctorName>("emissivity") = getParam<MooseFunctorName>("emissivity");
75 pars.set<MooseFunctorName>("view_factor") = getParam<MooseFunctorName>("view_factor");
76 pars.set<Point>("axis_point") = hs_cyl->getPosition();
77 pars.set<RealVectorValue>("axis_dir") = hs_cyl->getDirection();
78 if (getParam<bool>("scale_heat_rate_pp"))
79 pars.set<MooseFunctorName>("scale") = getParam<MooseFunctorName>("scale");
80 pars.set<ExecFlagEnum>("execute_on") = {EXEC_INITIAL, EXEC_TIMESTEP_END};
81 getTHMProblem().addPostprocessor(class_name, genSafeName(name(), "integral"), pars);
82 }
83}
registerMooseObject("ThermalHydraulicsApp", HSBoundaryRadiation)
const ExecFlagType EXEC_TIMESTEP_END
const ExecFlagType EXEC_INITIAL
const std::string name
Definition Setup.h:21
THMProblem & getTHMProblem() const
Gets the THM problem.
Definition Component.C:135
Factory & _factory
The Factory associated with the MooseApp.
Definition Component.h:497
virtual RealVectorValue getDirection() const
virtual void addBoundaryCondition(const std::string &bc_name, const std::string &name, InputParameters &parameters)
virtual void addPostprocessor(const std::string &pp_name, const std::string &name, InputParameters &parameters)
InputParameters getValidParams(const std::string &name) const
Radiative heat transfer boundary condition for heat structure.
HSBoundaryRadiation(const InputParameters &params)
virtual void addMooseObjects() override
static InputParameters validParams()
Base class for heat structure boundary components.
Definition HSBoundary.h:19
const std::vector< BoundaryName > & _boundary
Boundary names for which the boundary component applies.
Definition HSBoundary.h:56
static InputParameters validParams()
Definition HSBoundary.C:15
static const std::string TEMPERATURE
Base class for cylindrical heat structure components.
Interface class for heat structure components.
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
T & set(const std::string &name, bool quiet_mode=false)
std::string genName(const std::string &prefix, unsigned int id, const std::string &suffix="") const
Build a name from a prefix, number and possible suffix.
std::string genSafeName(const std::string &prefix, const std::string &middle, const std::string &suffix="") const
Build a name from strings that is safe to use in input files (i.e.