16#include <Modele_rayo_transp.h>
17#include <Paroi_flux_impose_rayo_transp_VDF.h>
18#include <Schema_Temps_base.h>
19#include <Champ_Uniforme.h>
20#include <Probleme_base.h>
21#include <Equation_base.h>
22#include <Milieu_base.h>
23#include <Domaine_VDF.h>
36 const DoubleTab& T_f = mon_dom_cl_dis->equation().inconnue().valeurs();
39 int nb_faces_bord = la_frontiere_VF.
nb_faces();
43 for (
int numfa = 0; numfa < nb_faces_bord; numfa++)
45 int elem = face_voisins(numfa + ndeb, 0);
47 elem = face_voisins(numfa + ndeb, 1);
59 int nb_faces_bord = la_frontiere_VF.
nb_faces();
63 int is_conduc_unif = 0;
83 d_Lambda = Lambda(0, 0);
96 if (le_modele_rayo_->relaxation() == 0)
99 for (
int numfa = 0; numfa < nb_faces_bord; numfa++)
103 int elem = face_voisins(numfa + ndeb, 0);
105 elem = face_voisins(numfa + ndeb, 1);
108 d_Lambda = Lambda(elem);
119 omega = d_Lambda * dt / (d_Lambda * dt + e * e * d_rho * d_Cp);
124 double flux_radia = le_modele_rayo_->flux_radiatif(numfa + ndeb);
126 if (le_champ_front->valeurs().size() == 1)
127 teta_i_(numfa) = omega * ((le_champ_front->valeurs()(0, 0) - flux_radia) / (d_Lambda / e) + T_f(elem)) + (1 - omega) *
teta_i_(numfa);
128 else if (le_champ_front->valeurs().dimension(1) == 1)
129 teta_i_(numfa) = omega * ((le_champ_front->valeurs()(numfa, 0) - flux_radia) / (d_Lambda / e) + T_f(elem)) + (1 - omega) *
teta_i_(numfa);
132 Cerr <<
"Paroi_flux_impose_rayo_transp::calculer_Teta_i() error" << finl;
138 if (zvdf.
domaine().bords_a_imprimer().contient(la_frontiere_VF.
le_nom()) && sch.
limpr())
140 Cout <<
"Printing wall temperatures on boundary " << la_frontiere_VF.
le_nom() <<
" :" << finl;
141 Cout <<
"---------------------------------------------------------------------" << finl;
142 for (
int numfa = 0; numfa < nb_faces_bord; numfa++)
143 Cout <<
"T(" << numfa <<
") : " <<
teta_i_(numfa) <<
" K." << finl;
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.
virtual DoubleTab & valeurs()=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.
double dist_norm_bord(int num_face) const override
Returns the normal distance for a boundary face (Cartesian coordinates).
int face_voisins(int num_face, int i) const
Returns the neighbouring element of num_face in direction i.
const Domaine & domaine() const
Class defining operators and methods for all reading operation in an input flow (file,...
virtual const Milieu_base & milieu() const =0
virtual const Champ_Inc_base & inconnue() const =0
int num_premiere_face() const
const Nom & le_nom() const override
Returns the name of the geometric boundary.
Milieu_base This class is the base of the (physical) medium hierarchy.
virtual const Equation_base & equation(const std::string &nom_inc) const
virtual const Champ_Don_base & capacite_calorifique() const
Returns the heat capacity of the medium (const version).
virtual const Champ_Don_base & conductivite() const
Returns the conductivity of the medium (const version).
virtual const Champ_base & masse_volumique() const
Returns the mass density of the medium (const version).
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
void completer() override
void calculer_Teta_i() override
void completer() override
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.
double pas_de_temps() const
Returns the current time step (delta_t).
Base class for output streams.