www.mooseframework.org
GrayLambertSurfaceRadiationBase.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 #pragma once
11 
12 #include "SideUserObject.h"
13 
14 // Forward Declarations
16 class Function;
17 
18 template <>
20 
25 class GrayLambertSurfaceRadiationBase : public SideUserObject
26 {
27 public:
28  static InputParameters validParams();
29 
30  GrayLambertSurfaceRadiationBase(const InputParameters & parameters);
31 
32  virtual void execute() override;
33  virtual void initialize() override;
34  virtual void finalize() override;
35 
38  {
42  };
43 
45  Real getSurfaceIrradiation(BoundaryID id) const;
46  Real getSurfaceHeatFluxDensity(BoundaryID id) const;
47  Real getSurfaceTemperature(BoundaryID id) const;
48  Real getSurfaceRadiosity(BoundaryID id) const;
49  Real getSurfaceEmissivity(BoundaryID id) const;
50  Real getViewFactor(BoundaryID from_id, BoundaryID to_id) const;
51  std::set<BoundaryID> getSurfaceIDs() const;
53 
54 protected:
55  virtual void threadJoin(const UserObject & y) override;
56 
58  virtual std::vector<std::vector<Real>> setViewFactors() = 0;
59 
62 
64  unsigned int _n_sides;
65 
67  const VariableValue & _temperature;
68 
70  const std::vector<Real> _emissivity;
71 
73  std::vector<const Function *> _fixed_side_temperature;
74 
76  std::vector<Real> _radiosity;
77 
79  std::vector<Real> _heat_flux_density;
80 
82  std::vector<Real> _side_temperature;
83 
85  std::vector<enum RAD_BND_TYPE> _side_type;
86 
88  std::map<BoundaryID, unsigned int> _side_id_index;
89 
91  std::vector<Real> _areas;
92 
94  std::vector<Real> _beta;
95 
97  std::vector<Real> _surface_irradiation;
98 
100  std::map<unsigned int, unsigned int> _fixed_side_id_index;
101 
103  std::set<unsigned int> _adiabatic_side_ids;
104 
106  std::vector<std::vector<Real>> _view_factors;
107 };
GrayLambertSurfaceRadiationBase::_surface_irradiation
std::vector< Real > _surface_irradiation
the irradiation into each surface
Definition: GrayLambertSurfaceRadiationBase.h:97
GrayLambertSurfaceRadiationBase::threadJoin
virtual void threadJoin(const UserObject &y) override
Definition: GrayLambertSurfaceRadiationBase.C:246
validParams< GrayLambertSurfaceRadiationBase >
InputParameters validParams< GrayLambertSurfaceRadiationBase >()
GrayLambertSurfaceRadiationBase::FIXED_TEMPERATURE
Definition: GrayLambertSurfaceRadiationBase.h:40
GrayLambertSurfaceRadiationBase::RAD_BND_TYPE
RAD_BND_TYPE
Define enum for boundary type.
Definition: GrayLambertSurfaceRadiationBase.h:37
GrayLambertSurfaceRadiationBase::ADIABATIC
Definition: GrayLambertSurfaceRadiationBase.h:41
GrayLambertSurfaceRadiationBase::_fixed_side_temperature
std::vector< const Function * > _fixed_side_temperature
side id to index map, side ids can have holes or be out of order
Definition: GrayLambertSurfaceRadiationBase.h:73
GrayLambertSurfaceRadiationBase::getSurfaceIrradiation
Real getSurfaceIrradiation(BoundaryID id) const
public interface of this UserObject
Definition: GrayLambertSurfaceRadiationBase.C:269
GrayLambertSurfaceRadiationBase::finalize
virtual void finalize() override
Definition: GrayLambertSurfaceRadiationBase.C:186
GrayLambertSurfaceRadiationBase::getSurfaceEmissivity
Real getSurfaceEmissivity(BoundaryID id) const
Definition: GrayLambertSurfaceRadiationBase.C:301
GrayLambertSurfaceRadiationBase::_sigma_stefan_boltzmann
const Real _sigma_stefan_boltzmann
Stefan-Boltzmann constant.
Definition: GrayLambertSurfaceRadiationBase.h:61
GrayLambertSurfaceRadiationBase::_temperature
const VariableValue & _temperature
the coupled temperature variable
Definition: GrayLambertSurfaceRadiationBase.h:67
GrayLambertSurfaceRadiationBase::GrayLambertSurfaceRadiationBase
GrayLambertSurfaceRadiationBase(const InputParameters &parameters)
Definition: GrayLambertSurfaceRadiationBase.C:42
GrayLambertSurfaceRadiationBase::_fixed_side_id_index
std::map< unsigned int, unsigned int > _fixed_side_id_index
side id to index map for isothermal boundaries, side ids can have holes or be out of order
Definition: GrayLambertSurfaceRadiationBase.h:100
GrayLambertSurfaceRadiationBase::_radiosity
std::vector< Real > _radiosity
the radiosity of each surface
Definition: GrayLambertSurfaceRadiationBase.h:76
GrayLambertSurfaceRadiationBase::validParams
static InputParameters validParams()
Definition: GrayLambertSurfaceRadiationBase.C:20
GrayLambertSurfaceRadiationBase::execute
virtual void execute() override
Definition: GrayLambertSurfaceRadiationBase.C:142
GrayLambertSurfaceRadiationBase::getSurfaceRadiosity
Real getSurfaceRadiosity(BoundaryID id) const
Definition: GrayLambertSurfaceRadiationBase.C:293
GrayLambertSurfaceRadiationBase::initialize
virtual void initialize() override
Definition: GrayLambertSurfaceRadiationBase.C:170
GrayLambertSurfaceRadiationBase::_heat_flux_density
std::vector< Real > _heat_flux_density
the heat flux density qdot
Definition: GrayLambertSurfaceRadiationBase.h:79
GrayLambertSurfaceRadiationBase::_beta
std::vector< Real > _beta
the average value of sigma * eps * T^4
Definition: GrayLambertSurfaceRadiationBase.h:94
GrayLambertSurfaceRadiationBase::_emissivity
const std::vector< Real > _emissivity
constant emissivity for each boundary
Definition: GrayLambertSurfaceRadiationBase.h:70
GrayLambertSurfaceRadiationBase::_adiabatic_side_ids
std::set< unsigned int > _adiabatic_side_ids
the set of adiabatic boundaries
Definition: GrayLambertSurfaceRadiationBase.h:103
GrayLambertSurfaceRadiationBase::VARIABLE_TEMPERATURE
Definition: GrayLambertSurfaceRadiationBase.h:39
GrayLambertSurfaceRadiationBase::_view_factors
std::vector< std::vector< Real > > _view_factors
the view factors which are set by setViewFactors by derived classes
Definition: GrayLambertSurfaceRadiationBase.h:106
GrayLambertSurfaceRadiationBase::getSurfaceIDs
std::set< BoundaryID > getSurfaceIDs() const
Definition: GrayLambertSurfaceRadiationBase.C:260
GrayLambertSurfaceRadiationBase::_side_temperature
std::vector< Real > _side_temperature
the average temperature: this could be important for adiabatic walls
Definition: GrayLambertSurfaceRadiationBase.h:82
GrayLambertSurfaceRadiationBase::getSurfaceHeatFluxDensity
Real getSurfaceHeatFluxDensity(BoundaryID id) const
Definition: GrayLambertSurfaceRadiationBase.C:277
GrayLambertSurfaceRadiationBase::_n_sides
unsigned int _n_sides
number of active boundary ids
Definition: GrayLambertSurfaceRadiationBase.h:64
GrayLambertSurfaceRadiationBase::getSurfaceTemperature
Real getSurfaceTemperature(BoundaryID id) const
Definition: GrayLambertSurfaceRadiationBase.C:285
GrayLambertSurfaceRadiationBase
GrayLambertSurfaceRadiationBase computes the heat flux on a set of surfaces in radiative heat transfe...
Definition: GrayLambertSurfaceRadiationBase.h:25
GrayLambertSurfaceRadiationBase::_side_type
std::vector< enum RAD_BND_TYPE > _side_type
the type of the side, allows lookup index -> type
Definition: GrayLambertSurfaceRadiationBase.h:85
GrayLambertSurfaceRadiationBase::getViewFactor
Real getViewFactor(BoundaryID from_id, BoundaryID to_id) const
Definition: GrayLambertSurfaceRadiationBase.C:309
GrayLambertSurfaceRadiationBase::_side_id_index
std::map< BoundaryID, unsigned int > _side_id_index
side id to index map, side ids can have holes or be out of order
Definition: GrayLambertSurfaceRadiationBase.h:88
GrayLambertSurfaceRadiationBase::setViewFactors
virtual std::vector< std::vector< Real > > setViewFactors()=0
a purely virtual function that defines where view factors come from
GrayLambertSurfaceRadiationBase::_areas
std::vector< Real > _areas
the area by participating side set
Definition: GrayLambertSurfaceRadiationBase.h:91