16#include <Neumann_paroi_rayo_semi_transp_VDF.h>
17#include <Pb_rayo_semi_transp.h>
18#include <Fluide_Incompressible.h>
19#include <Champ_front_uniforme.h>
20#include <Schema_Temps_base.h>
21#include <Champ_Uniforme.h>
22#include <communications.h>
23#include <Domaine_VDF.h>
45 int elem = face_voisins(ndeb + i, 0);
47 elem = face_voisins(ndeb + i, 1);
52 if (le_champ_front->valeurs().size() == 1)
53 return signe * le_champ_front->valeurs()(0, 0) - flux_radiatif(i, 0);
54 else if (le_champ_front->valeurs().dimension(1) == 1)
55 return signe * (le_champ_front->valeurs()(i, 0) - flux_radiatif(i, 0));
57 Cerr <<
"Neumann_paroi_rayo_semi_transp_VDF::flux_impose erreur" << finl;
69 int elem = face_voisins(ndeb + i, 0);
71 elem = face_voisins(ndeb + i, 1);
75 if (le_champ_front->valeurs().dimension(0) == 1)
76 return le_champ_front->valeurs()(0, j) - flux_radiatif(i);
78 return le_champ_front->valeurs()(i, j) - flux_radiatif(i);
101 double d_Cp, d_rho, d_Lambda;
106 tmp[0] = local_max_vect(Cp);
107 tmp[1] = local_max_vect(rho);
108 tmp[2] = local_max_vect(Lambda);
119 d_Lambda = Lambda(0, 0);
128 const DoubleTab& T_f = mon_dom_cl_dis->equation().inconnue().valeurs();
129 DoubleTab& T_b = temperature_bord_->valeurs_au_temps(temps);
135 for (face = 0; face < nb_faces; face++)
137 num_face = face + ndeb;
139 int elem = face_voisins(num_face, 0);
141 elem = face_voisins(num_face, 1);
144 double omega = d_Lambda * dt / (d_Lambda * dt + eF * eF * d_rho * d_Cp);
148 T_b(face, 0) = omega * (T_f(elem) + (le_champ_front->valeurs()(0, 0) - flux_radiatif(face, 0)) / (d_Lambda / eF)) + (1 - omega) * T_b(face, 0);
151 T_b(face, 0) = omega * (T_f(elem) + (le_champ_front->valeurs()(face, 0) - flux_radiatif(face, 0)) / (d_Lambda / eF)) + (1 - omega) * T_b(face, 0);
158 Motcle Thermique =
"Thermique";
159 Motcle indetermine =
"indetermine";
160 if ((dom_app == Thermique) || (dom_app == indetermine))
177 temperature_bord_.typer(
"Champ_front_fonc");
178 temperature_bord_->fixer_nb_comp(nb_comp);
179 DoubleTab& tab = temperature_bord_->valeurs();
187 const DoubleTab& T = mon_dom_cl_dis->equation().inconnue().valeurs();
193 for (face = 0; face < front_vf.
nb_faces(); face++)
195 int elem = face_voisins(face + ndeb, 0);
197 elem = face_voisins(face + ndeb, 1);
198 tab(face, 0) = T(elem);
DoubleTab & valeurs() override
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
virtual DoubleTab & valeurs()=0
virtual DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ.
classe Cond_lim_base Classe de base pour la hierarchie des classes qui representent les differentes c...
void err_pas_compatible(const Equation_base &) const
Cette methode est appelee quand la condition aux limites n'est pas compatible avec l'equation sur laq...
Domaine_Cl_dis_base & domaine_Cl_dis()
Renvoie le domaine des conditions aux limites discretisee dont l'objet fait partie.
virtual void completer()
NE FAIT RIEN A surcharger dans les classes derivees.
virtual Frontiere_dis_base & frontiere_dis()
Renvoie la frontiere discretisee a laquelle les conditions aux limites s'appliquent.
const Pb_rayo_semi_transp & pb_rayo_semi_transp() const
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.
Class defining operators and methods for all reading operation in an input flow (file,...
classe Equation_base Le role d'une equation est le calcul d'un ou plusieurs champs....
virtual const Milieu_base & milieu() const =0
virtual const Motcle & domaine_application() const
Renvoie "indetermine" Navier_Stokes_standard par exemple surcharge cette methode.
virtual int nb_comp() const
int num_premiere_face() const
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.
Une chaine de caractere (Nom) en majuscules.
void completer() override
NE FAIT RIEN A surcharger dans les classes derivees.
double flux_impose(int i) const override
Renvoie la valeur du flux impose sur la i-eme composante du champ representant le flux a la frontiere...
int compatible_avec_eqn(const Equation_base &) const override
void calculer_temperature_bord(double temps)
const Cond_lim_base & la_cl() const override
Classe Neumann_paroi Cette condition limite correspond a un flux impose pour l'equation de.
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual const Nom & le_nom() const
Donne le nom de l'Objet_U Methode a surcharger : renvoie "neant" dans cette implementation.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
const Champ_front_base & flux_radiatif(const Nom &nom_bord) const
static void mp_max_for_each_item(TRUSTArray< _TYPE_ > &x, int n=-1)
double pas_de_temps() const
Renvoie le pas de temps (delta_t) courant.
Classe de base des flux de sortie.
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
virtual const MD_Vector & get_md_vector() const