16#include <Frontiere_ouverte_temperature_imposee_rayo_semi_transp.h>
17#include <Temperature_imposee_paroi_rayo_semi_transp.h>
18#include <Neumann_paroi_rayo_semi_transp_VEF.h>
19#include <Frontiere_ouverte_rayo_semi_transp.h>
20#include <Champ_front_uniforme.h>
21#include <Eq_rayo_semi_transp.h>
22#include <Pb_rayo_semi_transp.h>
23#include <Flux_radiatif_VEF.h>
24#include <Schema_Temps_base.h>
25#include <Champ_Uniforme.h>
26#include <Fluide_base.h>
27#include <Domaine_VEF.h>
38 const double sigma,
double temps)
40 const DoubleTab& n = indice.
valeurs();
45 assert(le_champ_front->nb_comp() == 1);
46 DoubleTab& tab = le_champ_front->valeurs_au_temps(temps);
53 const int nfin = ndeb + le_bord.
nb_faces();
54 double epsi = -123., nn = -123., T = -123.;
57 for (
int face = ndeb; face < nfin; face++)
62 epsi = epsilon(face - ndeb, 0);
74 const double numer_coeff = 4 * nn * nn * sigma * pow(T, 4) * epsi;
75 const double denum_coeff =
A_ * (2 - epsi);
77 tab(face - ndeb, 0) = numer_coeff / denum_coeff;
87 const int nb_faces = le_bord.
nb_faces();
92 for (
int num_cl_temp = 0; num_cl_temp < les_cl_temp.size(); num_cl_temp++)
95 Nom nom_cl_temp = la_cl_temp->frontiere_dis().le_nom();
121 Cerr <<
"To be implemented for other boundary conditions of the temperature equation 1 " << finl;
128 Cerr <<
"Error: there is no boundary condition on a boundary with the name: " <<
frontiere_dis().
le_nom() << finl;
147 assert(Tb->nb_comp() == 1);
149 double bilan_flux = 0.;
151 double epsi = -123., Tbord = -123., n = -123.;
154 for (
int face = 0; face < nb_faces; face++)
164 n = indice(face + ndeb, 0);
167 Tbord = Tb->valeurs()(0, 0);
169 Tbord = Tb->valeurs()(face, 0);
171 const double irra = irradiance(face + ndeb);
173 const double denum =
A_ * (2 - epsi);
174 const double numer = epsi * (irra - 4 * n * n * sigma * pow(Tbord, 4));
175 Flux(face, 0) = -numer / denum;
180 surface += (face_normales(face + ndeb, i) * face_normales(face + ndeb, i));
182 surface = sqrt(surface);
183 bilan_flux += surface * Flux(face, 0);
189 Cout <<
"Radiative flux on boundary " << le_bord.
le_nom() <<
" : " << bilan_flux << finl;
class Champ_Don_base base class of Given Fields (not calculated)
DoubleTab & valeurs() override
Overrides Champ_base::valeurs() Returns the array of values.
DoubleTab & valeurs() override
Returns the array of field values at the current time.
class Champ_front_base Base class for the hierarchy of boundary fields.
virtual DoubleTab & valeurs() override
Returns the array of field values.
virtual DoubleTab & valeurs_au_temps(double temps)=0
Domaine_Cl_dis_base & domaine_Cl_dis()
Returns the domain of discretized boundary conditions to which the object belongs.
virtual Frontiere_dis_base & frontiere_dis()
Returns the discretized boundary to which the boundary conditions apply.
class Cond_lim Generic class used to represent any class
class Conds_lim This class represents a vector of boundary conditions.
static void verifier_bord(const char *const msg, const DoubleVect &arr, int num_deb)
const Cond_lim & les_conditions_limites(int) const
Returns the i-th boundary condition.
virtual double face_normales(int face, int comp) const
Class defining operators and methods for all reading operation in an input flow (file,...
const Pb_rayo_semi_transp & pb_rayo_semi_transp() const
const Champ_Inc_base & inconnue() const override
class Equation_base The role of an equation is the calculation of one or more fields....
virtual Domaine_Cl_dis_base & domaine_Cl_dis()
Returns the discretized boundary condition domain associated with the equation.
Schema_Temps_base & schema_temps()
Returns the time scheme associated with the equation.
virtual int nb_comp() const
Base class for an incompressible fluid and its properties:
Champ_Don_base & indice()
void calculer_flux_radiatif(const Equation_base &eq_temp) override
void evaluer_cl_rayonnement(Champ_front_base &Tb, const Champ_Don_base &, const Champ_Don_base &, const Champ_Don_base &, const Domaine_VF &, const double, double)
Champ_front_base & flux_radiatif()
Champ_front_base & emissivite()
int num_premiere_face() const
const Nom & le_nom() const override
Returns the name of the geometric boundary.
Champ_front_base & temperature_bord()
Champ_front_base & temperature_bord()
Champ_front_base & temperature_bord()
class Nom: a character string for naming TRUST objects.
const Nom & que_suis_je() const
Returns the string identifying the class.
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
virtual const Nom & le_nom() const
Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
const double & valeur_sigma() const
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
int limpr() const
Returns 1 if there is a need to perform a print (cf dt_impr) Returns 0 otherwise.
Base class for output streams.
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")
Temperature_imposee_paroi_rayo_semi_transp class: used to impose a wall temperature.
Champ_front_base & temperature_bord()