https://mooseframework.inl.gov
GrayLambertSurfaceRadiationBase.h
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 #pragma once
11 
12 #include "SideUserObject.h"
13 
14 // Forward Declarations
15 class Function;
16 
22 {
23 public:
25 
27 
28  virtual void execute() override;
29  virtual void initialize() override;
30  virtual void finalize() override;
31  bool checkVariableBoundaryIntegrity() const override { return false; }
32 
35  {
39  };
40 
47  Real getViewFactor(BoundaryID from_id, BoundaryID to_id) const;
48  std::set<BoundaryID> getSurfaceIDs() const;
50 
51 protected:
52  virtual void threadJoin(const UserObject & y) override;
53 
55  virtual std::vector<std::vector<Real>> setViewFactors() = 0;
56 
59 
61  unsigned int _n_sides;
62 
65 
67  std::vector<const Function *> _fixed_side_temperature;
68 
70  std::vector<Real> _radiosity;
71 
73  std::vector<Real> _heat_flux_density;
74 
76  std::vector<Real> _side_temperature;
77 
79  std::vector<enum RAD_BND_TYPE> _side_type;
80 
82  std::map<BoundaryID, unsigned int> _side_id_index;
83 
85  std::vector<Real> _areas;
86 
88  std::vector<Real> _beta;
89 
91  std::vector<Real> _surface_irradiation;
92 
94  std::vector<const Function *> _emissivity;
95 
97  std::map<unsigned int, unsigned int> _fixed_side_id_index;
98 
100  std::set<unsigned int> _adiabatic_side_ids;
101 
103  std::vector<std::vector<Real>> _view_factors;
104 };
virtual std::vector< std::vector< Real > > setViewFactors()=0
a purely virtual function that defines where view factors come from
std::vector< const Function * > _fixed_side_temperature
side id to index map, side ids can have holes or be out of order
std::map< BoundaryID, unsigned int > _side_id_index
side id to index map, side ids can have holes or be out of order
std::vector< Real > _surface_irradiation
the irradiation into each surface
GrayLambertSurfaceRadiationBase computes the heat flux on a set of surfaces in radiative heat transfe...
const std::vector< double > y
std::vector< Real > _radiosity
the radiosity of each surface
Real getSurfaceIrradiation(BoundaryID id) const
public interface of this UserObject
GrayLambertSurfaceRadiationBase(const InputParameters &parameters)
RAD_BND_TYPE
Define enum for boundary type.
boundary_id_type BoundaryID
std::vector< const Function * > _emissivity
constant emissivity for each boundary
std::set< BoundaryID > getSurfaceIDs() const
OutputTools< Real >::VariableValue VariableValue
std::vector< Real > _beta
the average value of sigma * eps * T^4
std::vector< Real > _side_temperature
the average temperature: this could be important for adiabatic walls
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
unsigned int _n_sides
number of active boundary ids
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 ...
std::vector< std::vector< Real > > _view_factors
the view factors which are set by setViewFactors by derived classes
const Real _sigma_stefan_boltzmann
Stefan-Boltzmann constant.
const InputParameters & parameters() const
std::vector< Real > _heat_flux_density
the heat flux density qdot
std::set< unsigned int > _adiabatic_side_ids
the set of adiabatic boundaries
std::vector< enum RAD_BND_TYPE > _side_type
the type of the side, allows lookup index -> type
const VariableValue & _temperature
the coupled temperature variable
Real getViewFactor(BoundaryID from_id, BoundaryID to_id) const
std::vector< Real > _areas
the area by participating side set
virtual void threadJoin(const UserObject &y) override