16#include <Traitement_particulier_NS_canal_VEF.h>
17#include <Navier_Stokes_std.h>
18#include <Modele_turbulence_hyd_base.h>
19#include <Equation_base.h>
20#include <Domaine_VEF.h>
21#include <Milieu_base.h>
22#include <Fluide_base.h>
42 const Domaine_dis_base& zdisbase = mon_equation->inconnue().domaine_dis_base();
44 const DoubleTab& xv = domaine_VF.
xv();
47 int nb_faces = domaine_VF.
nb_faces();
48 int num_face,j,indic,trouve;
67 for (num_face=0; num_face<nb_faces; num_face++)
69 int c = (faces_doubles[num_face]==1) ? 1 : 2 ;
73 for (j=0; j<indic+1; j++)
75 if(est_egal(y,tabY[j]))
105 const Domaine_dis_base& zdisbase=mon_equation->inconnue().domaine_dis_base();
107 const DoubleTab& xv = domaine_VEF.
xv();
108 const IntTab& face_voisins = domaine_VEF.
face_voisins();
109 const DoubleTab& vitesse = mon_equation->inconnue().valeurs();
111 int nb_faces = domaine_VEF.
nb_faces();
112 int num_face,i,elem0,elem1;
120 int taille_rho=tab_rho_face.
dimension(0);
124 Cerr<<
"Error in Traitement_particulier_NS_canal_VEF::calculer_moyenne_spatiale_vitesse_rho_mu()"<<finl;
128 for (num_face=0; num_face<nb_faces; num_face++)
130 c = (faces_doubles[num_face]==1) ? 0.5 : 1. ;
134 u = vitesse(num_face,0);
135 v = vitesse(num_face,1);
138 if(est_egal(y,
Y[i]))
break;
142 val_moy(i,3) += c*u*u;
143 val_moy(i,4) += c*v*v;
144 val_moy(i,6) += c*u*v;
146 if(
dimension==2) val_moy(i,9) += c*sqrt(u*u);
151 wl = vitesse(num_face,2);
153 val_moy(i,2) += c*wl;
154 val_moy(i,5) += c*wl*wl;
155 val_moy(i,7) += c*u*wl;
156 val_moy(i,8) += c*v*wl;
157 val_moy(i,9) += c*sqrt(u*u+wl*wl);
161 if (taille_rho==1) val_moy(i,10) += c*tab_rho_face(0,0);
162 else val_moy(i,10) += c*tab_rho_face[num_face];
166 elem0 = face_voisins(num_face,0);
167 elem1 = face_voisins(num_face,1);
170 val_moy(i,11) += c*visco_dyn(0,0);
175 val_moy(i,11) += c*0.5*(visco_dyn(elem0,0)+visco_dyn(elem1,0));
179 val_moy(i,11) += c*visco_dyn(elem0,0);
187 const Domaine_dis_base& zdisbase=mon_equation->inconnue().domaine_dis_base();
189 const DoubleTab& xv = domaine_VEF.
xv();
191 const RefObjU& modele_turbulence_hydr = N_S_Turb.
get_modele(TURBULENCE);
194 const IntTab& face_voisins = domaine_VEF.
face_voisins();
196 int nb_faces = domaine_VEF.
nb_faces();
197 int num_face,i,elem0,elem1;
201 for (num_face=0; num_face<nb_faces; num_face++)
203 c = (faces_doubles[num_face]==1) ? 0.5 : 1. ;
208 if(est_egal(y,
Y[i]))
break;
210 elem0 = face_voisins(num_face,0);
211 elem1 = face_voisins(num_face,1);
215 val_moy(i,12) += c*0.5*(nu_t[elem0]+nu_t[elem1]);
219 val_moy(i,12) += c*nu_t[elem0];
226 const Domaine_dis_base& zdisbase=mon_equation->inconnue().domaine_dis_base();
228 const DoubleTab& xv = domaine_VEF.
xv();
229 const DoubleTab& temperature = Temp->valeurs();
230 const DoubleTab& vitesse = mon_equation->inconnue().valeurs();
232 int nb_faces = domaine_VEF.
nb_faces();
238 for (num_face=0; num_face<nb_faces; num_face++)
240 c = (faces_doubles[num_face]==1) ? 0.5 : 1. ;
244 T = temperature[num_face];
245 u = vitesse(num_face,0);
246 v = vitesse(num_face,1);
249 if(est_egal(y,
Y[i]))
break;
251 val_moy(i,13) += c*T;
252 val_moy(i,14) += c*T*T;
253 val_moy(i,15) += c*u*T;
254 val_moy(i,16) += c*v*T;
258 wl = vitesse(num_face,2);
260 val_moy(i,17) += c*wl*T;
DoubleTab & valeurs() override
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
virtual DoubleTab & valeurs()=0
int nb_faces() const
renvoie le nombre global de faces.
double xv(int num_face, int k) const
ArrOfInt & faces_doubles()
renvoie 1 pour les faces appartenant a un bord perio ou un item commun, 0 par defaut
int face_voisins(int num_face, int i) const
renvoie l'element voisin de numface dans la direction i.
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
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 RefObjU & get_modele(Type_modele type) const
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.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
_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_VEF Cette classe permet de faire les traitements particuliers
void calculer_moyenne_spatiale_Temp(DoubleTab &) const override
Entree & lire(const Motcle &, Entree &)
void remplir_Y(DoubleVect &, DoubleVect &, int &) const override
void calculer_moyenne_spatiale_vitesse_rho_mu(DoubleTab &) const override
void calculer_moyenne_spatiale_nut(DoubleTab &) const override
classe Traitement_particulier_NS_canal Cette classe permet de faire les traitements particuliers
Entree & lire(Entree &) override