16#include <Traitement_particulier_NS_canal_VDF.h>
17#include <Domaine_VDF.h>
19#include <Fluide_base.h>
20#include <Navier_Stokes_std.h>
21#include <Modele_turbulence_hyd_base.h>
58 const Domaine_dis_base& zdisbase = mon_equation->inconnue().domaine_dis_base();
60 const DoubleTab& xp = domaine_VF.
xp();
62 int num_elem,j,indic,trouve;
76 for (num_elem=0; num_elem<nb_elems; num_elem++)
81 for (j=0; j<indic+1; j++)
83 if(est_egal(y,tab_Y[j]))
120 const Domaine_dis_base& zdisbase=mon_equation->inconnue().domaine_dis_base();
122 const DoubleTab& xp = domaine_VDF.
xp();
123 const IntTab& elem_faces = domaine_VDF.
elem_faces();
126 int elem_test,elem_test2;
137 Tab_rec.
resize(nb_elems,3);
139 for (num_elem=nb_elems; num_elem<nb_elem_tot; num_elem++)
142 elem_test=domaine_VDF.
elem_voisin(num_elem,face,0);
143 face = elem_faces(num_elem,1);
144 elem_test2=domaine_VDF.
elem_voisin(num_elem,face,1);
146 if ((elem_test>0) && (elem_test<nb_elems))
148 trouve[q-1]=elem_test;
152 Tab_rec(elem_test,0)=num_elem;
153 Tab_rec(elem_test,1)=num_elem;
162 Tab_rec(elem_test,2)=i;
164 else if ((elem_test2<nb_elems)&&(elem_test2>0))
166 trouve[q-1]=elem_test2;
170 Tab_rec(elem_test2,0)=num_elem;
171 Tab_rec(elem_test2,1)=num_elem;
179 Tab_rec(elem_test2,2)=i;
185 Cerr <<
"Traitement particulier canal : Il y a une amelioration a apporter aux face de bord !! " << finl;
186 for (num_elem=0; num_elem<nb_elems; num_elem++)
189 for(i=0; i<(trouve.
size()-1); i++)
190 if(num_elem==trouve[i])
198 face=elem_faces(num_elem,1);
199 elem_test=domaine_VDF.
elem_voisin(num_elem,face,1);
204 Tab_rec(num_elem,1)=elem_test;
212 elem_test=domaine_VDF.
elem_voisin(num_elem,face,0);
216 Tab_rec(num_elem,0)=elem_test;
220 Tab_rec(num_elem,0)=domaine_VDF.
elem_voisin(num_elem,elem_faces(num_elem,1),1);
225 if(est_egal(y,
Y[i]))
break;
227 Tab_rec(num_elem,2)=i;
236 const Domaine_dis_base& zdisbase=mon_equation->inconnue().domaine_dis_base();
239 const IntTab& elem_faces = domaine_VDF.
elem_faces();
240 const DoubleTab& vitesse = mon_equation->inconnue().valeurs();
244 int face_x_0,face_y_0,face_y_1,face_z_0;
250 int taille_rho=tab_rho_elem.
dimension(0);
252 for (num_elem=0; num_elem<nb_elems; num_elem++)
256 face_x_0 = elem_faces(num_elem,0);
258 face_y_0 = elem_faces(num_elem,1);
259 face_y_1 = elem_faces(num_elem,1+
dimension);
269 u = vitesse[face_x_0];
270 v = .5*(vitesse[face_y_0]+vitesse[face_y_1]);
280 if(
dimension==2) val_moy(i,9) += sqrt(u*u);
284 face_z_0 = elem_faces(num_elem,2);
288 wl = vitesse[face_z_0];
291 val_moy(i,5) += wl*wl;
292 val_moy(i,7) += u*wl;
293 val_moy(i,8) += v*wl;
294 val_moy(i,9) += sqrt(u*u+wl*wl);
297 if (taille_rho==1) val_moy(i,10) += tab_rho_elem(0,0);
298 else val_moy(i,10) += tab_rho_elem[num_elem];
301 if (taille_mu==1) val_moy(i,11) += visco_dyn(0,0);
302 else val_moy(i,11) += visco_dyn[num_elem];
308 const Domaine_dis_base& zdisbase=mon_equation->inconnue().domaine_dis_base();
311 const RefObjU& modele_turbulence = mon_equation->get_modele(TURBULENCE);
319 for (num_elem=0; num_elem<nb_elems; num_elem++)
325 val_moy(i,12) += nu_t[num_elem];
331 const Domaine_dis_base& zdisbase=mon_equation->inconnue().domaine_dis_base();
334 const IntTab& elem_faces = domaine_VDF.
elem_faces();
335 const DoubleTab& temperature = Temp->valeurs();
336 const DoubleTab& vitesse = mon_equation->inconnue().valeurs();
340 int face_x_0,face_x_1,face_y_0,face_y_1,face_z_0,face_z_1;
342 for (num_elem=0; num_elem<nb_elems; num_elem++)
346 T = temperature[num_elem];
348 face_x_0 = elem_faces(num_elem,0);
349 face_x_1 = elem_faces(num_elem,
dimension);
350 face_y_0 = elem_faces(num_elem,1);
351 face_y_1 = elem_faces(num_elem,1+
dimension);
353 u = .5*(vitesse[face_x_0]+vitesse[face_x_1]);
354 v = .5*(vitesse[face_y_0]+vitesse[face_y_1]);
361 val_moy(i,14) += T*T;
362 val_moy(i,15) += u*T;
363 val_moy(i,16) += v*T;
367 face_z_0 = elem_faces(num_elem,2);
368 face_z_1 = elem_faces(num_elem,2+
dimension);
370 wl = .5*(vitesse[face_z_0]+vitesse[face_z_1]);
372 val_moy(i,17) += wl*T;
DoubleTab & valeurs() override
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
virtual DoubleTab & valeurs()=0
int_t nb_elem_tot() const
int elem_voisin(int, int, int) const
int elem_faces(int i, int j) const
renvoie le numero de le ieme face de la maille num_elem la facon dont ces faces sont numerotees est
double xp(int num_elem, int k) const
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
const Domaine & domaine() const
Class defining operators and methods for all reading operation in an input flow (file,...
classe Fluide_base Cette classe represente un d'un fluide incompressible ainsi que
const Champ_Don_base & viscosite_dynamique() const
virtual const Champ_base & masse_volumique() const
Renvoie la masse volumique du milieu.
Classe Modele_turbulence_hyd_base Cette classe sert de base a la hierarchie des classes.
const Champ_Fonc_base & viscosite_turbulente() const
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.
Classe de base des flux de sortie.
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
_SIZE_ dimension(int d) const
void resize(_SIZE_, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
const Objet_U & valeur() const
classe Traitement_particulier_NS_canal_VDF Cette classe permet de faire les traitements particuliers
Entree & lire(const Motcle &, Entree &)
void calculer_moyenne_spatiale_Temp(DoubleTab &) const override
void remplir_Tab_recap(IntTab &) const override
void calculer_moyenne_spatiale_vitesse_rho_mu(DoubleTab &) const override
void calculer_moyenne_spatiale_nut(DoubleTab &) const override
void remplir_Y(DoubleVect &, DoubleVect &, int &) const override
classe Traitement_particulier_NS_canal Cette classe permet de faire les traitements particuliers
Entree & lire(Entree &) override