15#include <Paroi_TBLE_QDM_Scal.h>
16#include <Paroi_TBLE_QDM.h>
17#include <Domaine_dis_base.h>
18#include <EcrFicPartage.h>
20#include <Domaine_VF.h>
22#include <Dirichlet_paroi_fixe.h>
23#include <Probleme_base.h>
24#include <Diffu_totale_hyd_base.h>
25#include <Diffu_totale_scal_base.h>
26#include <Domaine_Cl_dis_base.h>
34 les_mots[1]=
"modele_visco";
35 les_mots[2]=
"facteur";
37 les_mots[4]=
"epsilon";
39 les_mots[6]=
"sonde_tble";
40 les_mots[7]=
"restart";
41 les_mots[8]=
"stationnaire";
42 les_mots[9]=
"Prandtl";
44 int rang=les_mots.
search(mot_lu);
49 Cerr <<
"N = " <<
nb_pts << finl;
53 Cerr <<
"Le modele de viscosite turbulente dans le maillge fin est "
58 Cerr <<
"Raison geometrique du maillage fin : " <<
fac << finl;
69 Cerr <<
"Temps stats TBLE : OK" << finl;
71 Cerr <<
"WARNING !!!!! Temps stats TBLE INCORRECTS" << finl;
75 Cerr <<
"Seuil de convergence pour les equations de couche limites : " <<
epsilon << finl;
79 Cerr <<
"Le maximum d'iterations pour la resolution des equations TBLE est de : " <<
max_it << finl;
88 Cerr <<
"Nom"<<i<<
"=" <<
nom_pts[i] <<finl;
92 Cerr <<
"sonde_tble( "<< i <<
"," << j <<
" ) =" <<
sonde_tble(i,j) << finl;
104 Cerr <<
"Vous devez choisir le nombre maximum d'iterations pour attendre la convergence en temps de TBLE" << finl;
105 Cerr <<
"ainsi que la valeur du critere d'arret" << finl;
106 Cerr <<
"Syntaxe : statio max_it_statio eps_statio" << finl;
115 Cerr << mot_lu <<
" n'est pas un mot compris par Paroi_TBLE_scal" << finl;
116 Cerr <<
"Les mots compris sont : " << les_mots << finl;
150 int compteur_faces_paroi = 0;
153 for (
int n_bord=0; n_bord<domaine_dis.
nb_front_Cl(); n_bord++)
159 compteur_faces_paroi += le_bord.
nb_faces();
162 eq_temp.dimensionner(compteur_faces_paroi);
167 int face=-1,face2=-1;
170 compteur_faces_paroi=0;
171 for (
int n_bord=0; n_bord<domaine_dis.
nb_front_Cl(); n_bord++)
179 for (
int ind_face=0; ind_face<size; ind_face++)
181 int num_face = le_bord.
num_face(ind_face);
192 face=compteur_faces_paroi;
197 compteur_faces_paroi++;
216 for (
int i=0; i<compteur_faces_paroi; i++)
218 eq_temp[i].associer_milieu(
getPbBase().milieu());
237 Cerr <<
"Reprise du champ TBLE T au temps = " << tps_reprise<< finl;
238 int compteur_faces_paroi = 0;
240 Nom nom_fic=
"sauvegarde_tble_scal_";
243 nom_fic+=
Nom(tps_reprise,
getPbBase().reprise_format_temps());
246 if (fic_sauve.
fail())
248 Cerr <<
"Erreur a l'ouverture du fichier " << nom_fic << finl;
249 Cerr <<
"Si vous ne souhaitez pas reprendre les quantites TBLE, utilisez le mot-cle 'restart' dans les options TBLE" << finl;
255 for (
int n_bord=0; n_bord<domaine_dis.
nb_front_Cl(); n_bord++)
263 compteur_faces_paroi+=le_bord.
nb_faces();
269 compteur_faces_paroi=0;
271 for (
int n_bord=0; n_bord<domaine_dis.
nb_front_Cl(); n_bord++)
278 int nfin = ndeb + le_bord.
nb_faces();
279 for (
int num_face=ndeb; num_face<nfin; num_face++)
281 for (
int comp=0; comp<
nb_comp; comp++)
283 for (
int itble=0; itble<
nb_pts+1; itble++)
288 compteur_faces_paroi++;
293 Cerr <<
"Reprise du champ TBLE T OK" << finl;
304 Cerr <<
"Sauvegarde du champ TBLE T au temps = " << tps << finl;
306 Nom nom_fic=
"sauvegarde_tble_scal_";
309 nom_fic+=
Nom(tps,
"%e");
312 int compteur_faces_paroi=0;
313 for (
int n_bord=0; n_bord<domaine_dis.
nb_front_Cl(); n_bord++)
320 int nfin = ndeb + le_bord.
nb_faces();
321 for (
int num_face=ndeb; num_face<nfin; num_face++)
323 for (
int comp=0; comp<
nb_comp; comp++)
325 for (
int itble=0; itble<
nb_pts+1; itble++)
326 fic_sauve << eq_temp[compteur_faces_paroi].get_Unp1(comp,itble) <<
" " ;
329 compteur_faces_paroi++;
354 fic_post <<
"# "<< tps <<
" T T^2 UT VT "<< finl;
355 for(
int i=0; i<
nb_pts+1; i++)
360 fic_post <<
"# "<< tps <<
" T T^2 UT VT WT "<< finl;
361 for(
int i=0; i<
nb_pts+1; i++)
385 for(
int i=0 ; i<
nb_pts+1 ; i++)
406 for(
int i=0 ; i<
nb_pts+1 ; i++)
classe Cond_lim Classe generique servant a representer n'importe quelle classe
void associer_mulambda(const MuLambda_TBLE_base &m)
Classe Diffu_totale_hyd_base Classe abstraite calculant la diffusivite totale (somme diffusivite.
void associer_eqn_T(Eq_couch_lim &e)
Classe Diffu_totale_scal_base Classe abstraite calculant la diffusivite totale (somme diffusivite.
void set_visco_tot(Diffu_totale_base &a)
void setPrandtl(double p)
classe Dirichlet_paroi_fixe Represente une paroi immobile dans une equation de type Navier_Stokes.
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
const Cond_lim & les_conditions_limites(int) const
Renvoie la i-ieme condition aux limites.
double xv(int num_face, int k) const
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
Fichier en lecture Cette classe est a la classe C++ ifstream ce que la classe Entree est a la.
Sortie & syncfile() override
Provoque l'ecriture sur disque des donnees accumulees sur les differents processeurs depuis le dernie...
Class defining operators and methods for all reading operation in an input flow (file,...
int num_premiere_face() const
int num_face(const int) const
Une chaine de caractere (Nom) en majuscules.
Un tableau d'objets de la classe Motcle.
int search(const Motcle &t) const
class Nom Une chaine de caractere pour nommer les objets de TRUST
VECT(Eq_couch_lim) eq_temp
int reprendre(Entree &, const Domaine_dis_base &, const Domaine_Cl_dis_base &, double tps)
void imprimer_sondes(Sortie &, double, const VECT(DoubleVect)&) const
DoubleTab valeurs_reprises
Entree & lire_donnees(const Motcle &motlu, Entree &s)
virtual const Probleme_base & getPbBase() const =0
virtual Eq_couch_lim & get_eq_couch_lim(int)=0
void init_valeurs_defaut()
virtual MuLambda_TBLE_base & getMuLambda()=0
int sauvegarder(Sortie &, const Domaine_dis_base &, const Domaine_Cl_dis_base &, double tps) const
int init_lois_paroi(const Domaine_VF &, const Domaine_Cl_dis_base &)
void calculer_stat(int j, int i, double u, double v, double w, double T, double dt)
IntTab num_global_faces_post
void imprimer_stat(Sortie &, double) const
static int me()
renvoie mon rang dans le groupe de communication courant.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.