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
Overrides Champ_base::valeurs() Returns the array of values.
virtual DoubleTab & valeurs()=0
int nb_faces() const
Returns the total number of faces.
double xv(int num_face, int k) const
ArrOfInt & faces_doubles()
Returns 1 for faces belonging to a periodic boundary or a shared item, 0 by default.
int face_voisins(int num_face, int i) const
Returns the neighbouring element of num_face in direction i.
class Domaine_dis_base This class is the base of the hierarchy of discretized domains.
Class defining operators and methods for all reading operation in an input flow (file,...
class Equation_base The role of an equation is the calculation of one or more fields....
virtual const RefObjU & get_modele(Type_modele type) const
Base class for an incompressible fluid and its properties:
const Champ_Don_base & viscosite_dynamique() const
virtual const Champ_base & masse_volumique() const
Returns the mass density of the medium (const version).
Base class for the turbulence model hierarchy for Navier-Stokes equations.
const Champ_Fonc_base & viscosite_turbulente() const
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.
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
Base class for output streams.
_SIZE_ dimension(int d) const
void resize(_SIZE_, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
const Objet_U & valeur() const
class Traitement_particulier_NS_canal_VEF This class performs special post-processing
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
Traitement_particulier_NS_canal This class performs specific post-processing treatments.
Entree & lire(Entree &) override