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() erreur" << finl;
138 if (zvdf.
domaine().bords_a_imprimer().contient(la_frontiere_VF.
le_nom()) && sch.
limpr())
140 Cout <<
"Impression des temperatures de paroi sur la frontiere " << 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
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
virtual DoubleTab & valeurs()=0
Domaine_Cl_dis_base & domaine_Cl_dis()
Renvoie le domaine des conditions aux limites discretisee dont l'objet fait partie.
virtual Frontiere_dis_base & frontiere_dis()
Renvoie la frontiere discretisee a laquelle les conditions aux limites s'appliquent.
double dist_norm_bord(int num_face) const override
int face_voisins(int num_face, int i) const
renvoie l'element voisin de numface dans la 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
Renvoie le nom de la frontiere geometrique.
classe Milieu_base Cette classe est la base de la hierarchie des milieux (physiques)
virtual const Equation_base & equation(const std::string &nom_inc) const
virtual const Champ_Don_base & capacite_calorifique() const
Renvoie la capacite calorifique du milieu.
virtual const Champ_Don_base & conductivite() const
Renvoie la conductivite du milieu.
virtual const Champ_base & masse_volumique() const
Renvoie la masse volumique du milieu.
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
void completer() override
void calculer_Teta_i() override
void completer() override
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
int limpr() const
Renvoie 1 s'il y a lieu d'effectuer une impression (cf dt_impr) Renvoie 0 sinon.
double pas_de_temps() const
Renvoie le pas de temps (delta_t) courant.
Classe de base des flux de sortie.