https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
15class Function;
16
22{
23public:
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
40
42 Real getSurfaceIrradiation(BoundaryID id) const;
44 Real getSurfaceTemperature(BoundaryID id) const;
45 Real getSurfaceRadiosity(BoundaryID id) const;
46 Real getSurfaceEmissivity(BoundaryID id) const;
47 Real getViewFactor(BoundaryID from_id, BoundaryID to_id) const;
48 std::set<BoundaryID> getSurfaceIDs() const;
50
51protected:
52 virtual void threadJoin(const UserObject & y) override;
53
55 virtual std::vector<std::vector<Real>> setViewFactors() = 0;
56
58 unsigned int getSideIDIndex(BoundaryID id) const;
59
62
64 unsigned int _n_sides;
65
68
70 std::vector<const Function *> _fixed_side_temperature;
71
73 std::vector<Real> _radiosity;
74
76 std::vector<Real> _heat_flux_density;
77
79 std::vector<Real> _side_temperature;
80
82 std::vector<enum RAD_BND_TYPE> _side_type;
83
85 std::map<BoundaryID, unsigned int> _side_id_index;
86
88 std::vector<Real> _areas;
89
91 std::vector<Real> _beta;
92
94 std::vector<Real> _surface_irradiation;
95
97 std::vector<const Function *> _emissivity;
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};
boundary_id_type BoundaryID
const std::vector< double > y
GrayLambertSurfaceRadiationBase computes the heat flux on a set of surfaces in radiative heat transfe...
std::set< unsigned int > _adiabatic_side_ids
the set of adiabatic boundaries
const VariableValue & _temperature
the coupled temperature variable
unsigned int _n_sides
number of active boundary ids
std::vector< Real > _surface_irradiation
the irradiation into each surface
Real getSurfaceIrradiation(BoundaryID id) const
public interface of this UserObject
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< const Function * > _emissivity
constant emissivity for each boundary
unsigned int getSideIDIndex(BoundaryID id) const
Gets the index within _side_id_index of the given boundary ID.
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 > _heat_flux_density
the heat flux density qdot
std::vector< Real > _side_temperature
the average temperature: this could be important for adiabatic walls
std::vector< Real > _areas
the area by participating side set
std::vector< Real > _beta
the average value of sigma * eps * T^4
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.
virtual void threadJoin(const UserObject &y) override
std::vector< enum RAD_BND_TYPE > _side_type
the type of the side, allows lookup index -> type
std::vector< Real > _radiosity
the radiosity of each surface
Real getViewFactor(BoundaryID from_id, BoundaryID to_id) const
std::vector< const Function * > _fixed_side_temperature
side id to index map, side ids can have holes or be out of order
virtual std::vector< std::vector< Real > > setViewFactors()=0
a purely virtual function that defines where view factors come from
const InputParameters & parameters() const
VariableValueTempl< false > VariableValue