191 const Domaine_dis_base& zdisbase=mon_equation->inconnue().domaine_dis_base();
193 const DoubleTab& vitesse = mon_equation->inconnue().valeurs();
194 int nb_faces = domaine_VEF.
nb_faces();
195 const DoubleTab& xv = domaine_VEF.
xv();
196 const double tps = mon_equation->schema_temps().temps_courant();
203 U_RANS.resize(nb_faces,3);
206 utemp.resize(nb_faces,3);
209 utemp_sum.resize(nb_faces,3);
212 if (tps > t_moy_start )
232 for(
int num_face=0 ; num_face<nb_faces ; num_face++)
234 fic << vitesse(num_face,0) << vitesse(num_face,1) << vitesse(num_face,2);
242 for(
int num_face=0 ; num_face<nb_faces ; num_face++)
244 fic >> U_RANS(num_face,0) >> U_RANS(num_face,1) >> U_RANS(num_face,2);
245 ficv << U_RANS(num_face,0) <<
" " << U_RANS(num_face,1) <<
" " << U_RANS(num_face,2) << finl;
266 for(
int num_face=0 ; num_face<nb_faces ; num_face++)
268 x1=xv(num_face,comp1);
269 x2=xv(num_face,comp2);
271 U_RANS(num_face,dir)= u_tau*(2.44*log((rayon-sqrt(x1*x1+x2*x2))*u_tau/nu)+5.32) ;
276 if( dir_nom==
"-X" || dir_nom==
"-Y" || dir_nom==
"-Z") U_RANS*=-1.;
286 const Domaine_VEF& domaine_VEF = le_dom_VEF.valeur();
289 const DoubleTab& vitesse = mon_equation->inconnue().valeurs();
290 const double dt = mon_equation->schema_temps().pas_de_temps();
291 const double dt_min = mon_equation->schema_temps().pas_temps_min();
292 const double tps = mon_equation->schema_temps().temps_courant();
293 int nb_faces = domaine_VEF.
nb_faces();
297 static double duree=0;
302 Cerr <<
"code en VDF, necessite codage VEF ? " << finl;
315 double DT_moy=(tps-dt)-t_moy_start;
319 for (
int num_face=0; num_face<nb_faces; num_face++)
320 for(
int comp=0; comp<3; comp++)
322 utemp(num_face,comp) += dt*vitesse(num_face,comp);
350 for (
int num_face=0; num_face<nb_faces; num_face++)
351 for(
int comp=0; comp<3; comp++)
354 utemp_sum(num_face,comp) = U_RANS(num_face,comp)*duree;
356 utemp(num_face,comp) = utemp_sum(num_face,comp)/(tps-dt_min+duree);
358 utemp_sum(num_face,comp) += dt*vitesse(num_face,comp);
359 utemp(num_face,comp) = vitesse(num_face,comp);
366 for (
int num_face=0; num_face<nb_faces; num_face++)
367 for(
int comp=0; comp<3; comp++)
369 utemp_sum(num_face,comp) += dt*vitesse(num_face,comp);
370 utemp(num_face,comp) = utemp_sum(num_face,comp)/(tps-dt_min+dt+duree);
378 Cerr <<
"moyenne = " << moyenne << finl;
379 Cerr <<
"Probleme pour le choix du type de moyenne" << finl;
387 const Domaine_VEF& domaine_VEF = le_dom_VEF.valeur();
388 int nb_faces = domaine_VEF.
nb_faces();
391 const double tps = mon_equation->schema_temps().temps_courant();
392 const double dt = mon_equation->schema_temps().pas_de_temps();
393 const double dt_min = mon_equation->schema_temps().pas_temps_min();
395 const DoubleTab& vitesse = mon_equation->inconnue().valeurs();
408 SFichier fic_f(
"forcing_term.dat", ios::app);
409 SFichier fic_finst(
"finst.dat", ios::app);
418 if((tps>f_start)||((moyenne==3)&&(tps>dt_min)&&(tps>f_start)))
421 if (tps < f_tot) coef*=(tps-f_start)/(f_tot-f_start);
423 for(
int num_face = 0 ; num_face<nb_faces ; num_face++)
425 vol = volumes_entrelaces(num_face)*porosite_surf(num_face);
427 for(
int comp=0; comp<3; comp++)
429 scaling=U_RANS(num_face,comp)/((U_RANS(num_face,0)*U_RANS(num_face,0)
430 +U_RANS(num_face,1)*U_RANS(num_face,1)
431 +U_RANS(num_face,2)*U_RANS(num_face,2))+1e-10);
436 resu(num_face,comp) = scaling*coef*((U_RANS(num_face,comp)-utemp(num_face,comp))/(alpha_tau*dt))*vol;
442 mbf0 += resu(num_face,0);
443 mbf1 += resu(num_face,1);
444 mbf2 += resu(num_face,2);
453 scaling=U_RANS(num_face,0)/((U_RANS(num_face,0)*U_RANS(num_face,0)
454 +U_RANS(num_face,1)*U_RANS(num_face,1)
455 +U_RANS(num_face,2)*U_RANS(num_face,2))+1e-10);
457 mbf = scaling*((U_RANS(num_face,0)-utemp(num_face,0))/(alpha_tau*dt))*vol;
459 fic_finst << tps <<
" " << mbf <<
" " << U_RANS(num_face,0)
460 <<
" " << utemp(num_face,0) <<
" " << vitesse(num_face,0)
461 <<
" " << scaling << finl;
463 fic_f << tps <<
" " << mbf0 <<
" " << mbf1 <<
" " << mbf2 << finl;
465 if (sub_type(
Champ_P1NC,mon_equation->inconnue()))
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
int nb_faces() const
renvoie le nombre global de faces.
DoubleVect & volumes_entrelaces()
double xv(int num_face, int k) const
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.