TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Paroi_loi_Ciofalo_hyd_VDF.cpp
1/****************************************************************************
2* Copyright (c) 2017, CEA
3* All rights reserved.
4*
5* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8* 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
9*
10* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
11* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
12* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
13*
14*****************************************************************************/
15
16#include <Paroi_loi_Ciofalo_hyd_VDF.h>
17#include <Fluide_base.h>
18#include <Champ_Uniforme.h>
19#include <Domaine_Cl_VDF.h>
20#include <Dirichlet_paroi_fixe.h>
21#include <Dirichlet_paroi_defilante.h>
22#include <Turbulence_paroi_base.h>
23#include <Equation_base.h>
24#include <Modele_turbulence_hyd_base.h>
25
26Implemente_instanciable_sans_constructeur(Paroi_loi_Ciofalo_hyd_VDF,"loi_Ciofalo_hydr_VDF",Paroi_std_hyd_VDF);
27
28// PrintOn
30{
31 return s << que_suis_je() << " " << le_nom();
32}
33
34// ReadOn
36{
38 return s;
39}
40
41
42/////////////////////////////////////////////////////////////////////
43//
44// Implementation des fonctions de la classe Paroi_loi_Ciofalo_hyd_VDF
45//
46/////////////////////////////////////////////////////////////////////
47
48
49// Remplissage de la table
51{
52 // Initialisations des constantes du modele :
53 Y0=11.81 ;
54 Cmu_ = mon_modele_turb_hyd->get_Cmu();
55 Erugu = ( exp ( Kappa_ * Y0) ) / Y0 ;
56 return 1;
57}
58
59// On annule les valeurs des grandeurs turbulentes qui
60// correspondent aux mailles de paroi
62{
63 return 1;
64}
65
66// calculer_hyd pour le k-epsilon
68{
69 Cerr << " Paroi_loi_Ciofalo_hyd_VDF::calculer_hyd(DoubleTab& tab_k_eps) " << finl;
70 Cerr << "on ne doit pas entrer dans cette methode" << finl;
71 Cerr << " car elle est definie uniquement pour la LES " << finl ;
72 return 1 ;
73
74
75}
76
77int Paroi_loi_Ciofalo_hyd_VDF::calculer_hyd(DoubleTab& tab_nu_t,DoubleTab& tab_k)
78{
79 const Domaine_VDF& domaine_VDF = ref_cast(Domaine_VDF, le_dom_dis_.valeur());
80 const IntVect& orientation = domaine_VDF.orientation();
81 const IntTab& face_voisins = domaine_VDF.face_voisins();
82 const Equation_base& eqn_hydr = mon_modele_turb_hyd->equation();
83 const Fluide_base& le_fluide = ref_cast(Fluide_base, eqn_hydr.milieu());
84 const Champ_Don_base& ch_visco_cin = le_fluide.viscosite_cinematique();
85
86 // la vitesse resolue par l'equation hydr
87 const DoubleVect& vit = eqn_hydr.inconnue().valeurs();
88 const DoubleTab& tab_visco = ch_visco_cin.valeurs();
89 double visco=-1.;
90
91 // l_unif est le parametre de controle
92 int l_unif;
93
94 // test si la viscosite est un champ uniforme
95 // l_unif=0 la viscosite n'est pas uniforme
96 // l_unif=1 la viscosite est uniforme
97 if (sub_type(Champ_Uniforme,ch_visco_cin))
98 {
99 visco = std::max(tab_visco(0,0),DMINFLOAT);
100 l_unif = 1;
101 }
102 else
103 l_unif = 0;
104
105
106 // preparer_calcul_hyd(tab);
107
108 // Cas ou la viscosite est nulle !!!!
109 if ((!l_unif) && (tab_visco.local_min_vect()<DMINFLOAT))
110 // on ne doit pas changer tab_visco ici !
111 {
112 Cerr << "In Paroi_loi_Ciofalo_hyd_VDF::calculer_hyd : visco = " << tab_visco.local_min_vect() << " <= 0 ? " << finl;
113 throw;
114 }
115 // tab_visco+=DMINFLOAT;
116
117 int ndeb,nfin;
118 int elem,ori;
119 double norm_v;
120 double dist;
121 double u_plus_d_plus,d_visco;
122
123 // valeurs qui vallent 0 si la norme de la vitesse est nulle
124 double val,val1,val2;
125
126
127 // Boucle sur les bords
128 for (int n_bord=0; n_bord<domaine_VDF.nb_front_Cl(); n_bord++)
129 {
130
131 // pour chaque condition limite on regarde son type
132 // On applique les lois de paroi uniquement
133 // aux voisinages des parois
134 const Cond_lim& la_cl = le_dom_Cl_dis_->les_conditions_limites(n_bord);
135
136
137 //**********************
138 // Condition Paroi_fixe
139 //**********************
140
141 if (sub_type(Dirichlet_paroi_fixe,la_cl.valeur()) )
142 {
143 const Front_VF& le_bord = ref_cast(Front_VF,la_cl->frontiere_dis());
144 ndeb = le_bord.num_premiere_face();
145 nfin = ndeb + le_bord.nb_faces();
146
147 // Cas dimension 2
148 if (dimension == 2 )
149 for (int num_face=ndeb; num_face<nfin; num_face++)
150 {
151
152 //ori vaut 0,1 ou 2 (0=> x=Cte, 1=> y=Cte ...)
153 ori = orientation(num_face);
154
155 // face_voisin contient les deux elements voisins d'une face
156 // 1er cas le bord est 'a droite' de la face de bord
157 // 2e cas le bord est 'a gauche'
158 if ( (elem =face_voisins(num_face,0)) != -1)
159 norm_v=norm_2D_vit(vit,elem,ori,domaine_VDF,val);
160 else
161 {
162 elem = face_voisins(num_face,1);
163 norm_v=norm_2D_vit(vit,elem,ori,domaine_VDF,val);
164 }
165
166 // dist correspondt a la distance entre le centre de la cellule et le bord
167 if (axi)
168 dist=domaine_VDF.dist_norm_bord_axi(num_face);
169 else
170 dist=domaine_VDF.dist_norm_bord(num_face);
171
172 // evaluation de la viscosite
173 if (l_unif)
174 d_visco = visco;
175 else
176 d_visco = tab_visco[elem];
177
178 //u+ d+ = (v d / nu)
179 u_plus_d_plus = norm_v*dist/d_visco;
180
181 // Calcul de u* et des grandeurs turbulentes
182 // a partir de u+d+
183 calculer_local(u_plus_d_plus,d_visco,tab_nu_t,tab_k,norm_v,dist,elem,num_face);
184 // RQ : Pbls : signe negatif pour le cisaillement pour la paroi sup du canal
185 Cerr << "ATTENTION!!! MODIFS FAITE POUR 3D ETENDUE A 2D MAIS NON VERIFIEE POUR 2D!!!!" << finl;
186 int num_elem = domaine_VDF.elem_faces(num_face,0);
187 if (num_elem == -1)
188 num_elem = domaine_VDF.elem_faces(num_face,1);
189 // double diff = domaine_VDF.xp(num_elem,ori)- domaine_VDF.xv(num_face,ori);
190 // Cerr << "diff=" << diff << finl;
191 // double signe = diff / std::fabs(diff);
192 // Cerr << "signe=" << signe << finl;
193
194 // Calcul de la contrainte tangentielle
195 Cisaillement_paroi_(num_face,1-ori) = tab_u_star(num_face)*tab_u_star(num_face)*val;
196 }
197
198 // Cas dimension 3
199 else if (dimension == 3)
200 for (int num_face=ndeb; num_face<nfin; num_face++)
201 {
202
203 //ori vaut 0,1 ou 2 (0=> x=Cte, 1=> y=Cte ...)
204 ori = orientation(num_face);
205
206 // face_voisin contient les deux elements voisins d'une face
207 if ( (elem = face_voisins(num_face,0)) != -1)
208 norm_v=norm_3D_vit(vit,elem,ori,domaine_VDF,val1,val2);
209 else
210 {
211 elem = face_voisins(num_face,1);
212 norm_v=norm_3D_vit(vit,elem,ori,domaine_VDF,val1,val2);
213 }
214
215 // dist correspondt a la distance entre le centre de la cellule et le bord
216 if (axi)
217 dist = domaine_VDF.dist_norm_bord_axi(num_face);
218 else
219 dist = domaine_VDF.dist_norm_bord(num_face);
220
221 // evaluation de la viscosite
222 if (l_unif)
223 d_visco = visco;
224 else
225 d_visco = tab_visco[elem];
226
227 //u+ d+ = (v d / nu)
228 u_plus_d_plus = norm_v*dist/d_visco;
229
230 // Calcul de u* et des grandeurs turbulentes:
231 // a partir de u+d+
232 calculer_local(u_plus_d_plus,d_visco,tab_nu_t,tab_k,norm_v,dist,elem,num_face);
233
234 // Calcul des deux composantes de la contrainte tangentielle:
235 double vit_frot = tab_u_star(num_face)*tab_u_star(num_face);
236 // RQ : Pbls : signe negatif pour le cisaillement pour la paroi sup du canal
237 int num_elem = domaine_VDF.elem_faces(num_face,0);
238 if (num_elem == -1)
239 num_elem = domaine_VDF.elem_faces(num_face,1);
240 // double diff = domaine_VDF.xp(num_elem,ori)- domaine_VDF.xv(num_face,ori);
241 // Cerr << "diff=" << diff << finl;
242 // double signe = diff / std::fabs(diff);
243 // Cerr << "signe=" << signe << finl;
244
245 if (ori == 0)
246 {
247 Cisaillement_paroi_(num_face,1) = vit_frot*val1;
248 Cisaillement_paroi_(num_face,2) = vit_frot*val2;
249 }
250 else if (ori == 1)
251 {
252 Cisaillement_paroi_(num_face,0) = vit_frot*val1;
253 Cisaillement_paroi_(num_face,2) = vit_frot*val2;
254 }
255 else
256 {
257 Cisaillement_paroi_(num_face,0) = vit_frot*val1;
258 Cisaillement_paroi_(num_face,1) = vit_frot*val2;
259 }
260 }
261 }
262
263
264 //***************************
265 // Condition Paroi_defilante
266 //***************************
267
268 else if (sub_type(Dirichlet_paroi_defilante,la_cl.valeur()) )
269 {
270
271 const Dirichlet_paroi_defilante& cl_diri = ref_cast(Dirichlet_paroi_defilante,la_cl.valeur());
272 const Front_VF& le_bord = ref_cast(Front_VF,la_cl->frontiere_dis());
273 ndeb = le_bord.num_premiere_face();
274 nfin = ndeb + le_bord.nb_faces();
275 DoubleTab vitesse_imposee_face_bord(le_bord.nb_faces(),dimension);
276 for (int face=ndeb; face<nfin; face++)
277 for (int k=0; k<dimension; k++)
278 vitesse_imposee_face_bord(face-ndeb,k) = cl_diri.val_imp(face-ndeb,k);
279
280 // Cas dimension 2
281 if (dimension == 2 )
282
283 // On calcule au centre des mailles de bord
284 // la vitesse parallele a l'axe de la face de bord
285 //
286 // On calcule la norme de cette vitesse
287
288 for (int num_face=ndeb; num_face<nfin; num_face++)
289 {
290 //ori vaut 0,1 ou 2 (0=> x=Cte, 1=> y=Cte ...)
291 ori = orientation(num_face);
292
293 int rang = num_face-ndeb;
294
295 // face_voisin contient les deux elements voisins d'une face
296 if ( (elem = face_voisins(num_face,0)) != -1)
297 norm_v=norm_2D_vit(vit,elem,ori,domaine_VDF,vitesse_imposee_face_bord(rang,0),
298 vitesse_imposee_face_bord(rang,1),val);
299 else
300 {
301 elem = face_voisins(num_face,1);
302 norm_v=norm_2D_vit(vit,elem,ori,domaine_VDF,vitesse_imposee_face_bord(rang,0),
303 vitesse_imposee_face_bord(rang,1),val);
304 }
305
306 // dist correspondt a la distance entre le centre de la cellule et le bord
307 if (axi)
308 dist = domaine_VDF.dist_norm_bord_axi(num_face);
309 else
310 dist = domaine_VDF.dist_norm_bord(num_face);
311
312 // evaluation de la viscosite
313 if (l_unif)
314 d_visco = visco;
315 else
316 d_visco = tab_visco[elem];
317
318 //u+ d+ = (v d / nu)
319 // a partir de u+d+
320 u_plus_d_plus = norm_v*dist/d_visco;
321
322 // Calcul de u* et des grandeurs turbulentes:
323 calculer_local(u_plus_d_plus,d_visco,tab_nu_t,tab_k,norm_v,dist,elem,num_face);
324
325 // Calcul de la contrainte tangentielle a la paroi:
326 Cisaillement_paroi_(num_face,1-ori) = tab_u_star(num_face)*tab_u_star(num_face)*val;
327 }
328
329 // Cas dimension 3
330 else if (dimension == 3)
331
332 // On calcule au centre des mailles de bord
333 // la vitesse dans le plan parallele a celui de la face de bord
334 // On calcule la norme de cette vitesse
335
336 for (int num_face=ndeb; num_face<nfin; num_face++)
337 {
338
339 //ori vaut 0,1 ou 2 (0=> x=Cte, 1=> y=Cte ...)
340 ori = orientation(num_face);
341
342 int rang = num_face-ndeb;
343
344 // face_voisin contient les deux elements voisins d'une face
345 if ( (elem = face_voisins(num_face,0)) != -1)
346 norm_v=norm_3D_vit(vit,elem,ori,domaine_VDF,vitesse_imposee_face_bord(rang,0),
347 vitesse_imposee_face_bord(rang,1),
348 vitesse_imposee_face_bord(rang,2),val1,val2);
349 else
350 {
351 elem = face_voisins(num_face,1);
352 norm_v=norm_3D_vit(vit,elem,ori,domaine_VDF,vitesse_imposee_face_bord(rang,0),
353 vitesse_imposee_face_bord(rang,1),
354 vitesse_imposee_face_bord(rang,2),val1,val2);
355 }
356
357 // dist correspondt a la distance entre le centre de la cellule et le bord
358 if (axi)
359 dist = domaine_VDF.dist_norm_bord_axi(num_face);
360 else
361 dist = domaine_VDF.dist_norm_bord(num_face);
362
363 // evaluation de la viscosite
364 if (l_unif)
365 d_visco = visco;
366 else
367 d_visco = tab_visco[elem];
368
369 //u+ d+ = (v d / nu)
370 u_plus_d_plus = norm_v*dist/d_visco;
371
372 // Calcul de u* et des grandeurs turbulentes:
373 // a partir de u+d+
374 calculer_local(u_plus_d_plus,d_visco,tab_nu_t,tab_k,norm_v,dist,elem,num_face);
375
376
377 // Calcul des deux composantes de la contrainte tangentielle:
378 double vit_frot = tab_u_star(num_face)*tab_u_star(num_face);
379
380 if (ori == 0)
381 {
382 Cisaillement_paroi_(num_face,1) = vit_frot*val1;
383 Cisaillement_paroi_(num_face,2) = vit_frot*val2;
384 }
385 else if (ori == 1)
386 {
387 Cisaillement_paroi_(num_face,0) = vit_frot*val1;
388 Cisaillement_paroi_(num_face,2) = vit_frot*val2;
389 }
390 else
391 {
392 Cisaillement_paroi_(num_face,0) = vit_frot*val1;
393 Cisaillement_paroi_(num_face,1) = vit_frot*val2;
394 }
395 }
396
397 }
398 }
399 Cisaillement_paroi_.echange_espace_virtuel();
400 tab_nu_t.echange_espace_virtuel();
402 return 1;
403}
404
405int Paroi_loi_Ciofalo_hyd_VDF::calculer_local(double u_plus_d_plus,double d_visco,
406 DoubleTab& tab_nu_t,DoubleTab& tab_k,double norm_vit,
407 double dist,int elem,int num_face)
408{
409
410
411 double valmin= Y0*Y0 ;
412 // valeur de l'intensite turbulente
413 double psi_E, psi_P ;
414 // Epaisseur de la sous-couche visqueuse proportionnelle a l'intensite turbulente
415 double Y_nu ;
416 // constante recalculee pour la continuite de la vitesse
417 double E_ ;
418 double c=1./3. ;
419
420 if ( tab_k(elem) <= 1.E-10 )
421 {
422 // Cerr << "calcul normal:" << tab_k(elem) << finl ;
423
424 if (u_plus_d_plus <= valmin)
425 {
426 calculer_u_star_sous_couche_visq(norm_vit,d_visco,dist,num_face);
427 calculer_sous_couche_visq(tab_nu_t,tab_k,elem);
428 }
429
430
431 else
432 {
433 calculer_u_star_couche_log(norm_vit,d_visco,dist,num_face,Erugu);
434 calculer_sous_couche_log(tab_nu_t,tab_k,dist,elem,num_face);
435 }
436 }
437
438
439 else
440 {
441
442 // Cerr << "calcul ciofalo" << tab_k(elem) << finl ;
443
444 psi_P= sqrt( tab_k(elem) )/ norm_vit ;
445
446 if (u_plus_d_plus <= valmin )
447 psi_E=1/(Y0*pow (Cmu_, 1./4.) ) ;
448
449 else
450 // on va calculer la valeur de psi_E pour une couche limite a l'equilibre
451 // dans la zone log
452 {
453
454 const int itmax = 25;
455 const double seuil = 0.001;
456 const double c1 = Kappa_*norm_vit;
457 const double c2 = log(Erugu*dist/d_visco); // log = logarithme neperien
458 double u_star,u_star1;
459 double F,F_;
460
461 // initialisation des variables
462 int iter = 0;
463 u_star1 = 1.;
464 u_star= 2. ;
465
466 // processus iteratif de calcul de u*
467 while (( std::fabs((u_star-u_star1)/u_star1) > seuil ) && (iter < itmax ) )
468 {
469 u_star=u_star1 ;
470 iter++ ;
471 F= u_star*(log(u_star)+c2) -c1 ;
472 F_= log(u_star)+1+c2 ;
473 u_star1=u_star- F/F_ ;
474 }
475
476 if (iter >= itmax) erreur_non_convergence();
477
478 // valeur de u_star
479 u_star=u_star1;
480
481 psi_E= Kappa_ / (log (Erugu*dist*u_star/d_visco)* pow (Cmu_, 1./4.) ) ;
482
483 }
484
485 // calcul de Y_nu
486 Y_nu = Y0*pow( (psi_P/psi_E) , -c );
487 // calcul de la nouvelle constante pour la loi log
488 E_ = ( exp ( Kappa_ * Y_nu) ) / Y_nu ;
489
490 if (u_plus_d_plus <= Y_nu*Y_nu)
491 {
492 calculer_u_star_sous_couche_visq(norm_vit,d_visco,dist,num_face);
493 calculer_sous_couche_visq(tab_nu_t,tab_k,elem);
494 }
495
496 else
497 {
498
499 calculer_u_star_couche_log(norm_vit,d_visco,dist,num_face,E_);
500 calculer_sous_couche_log(tab_nu_t,tab_k,dist,elem,num_face);
501 }
502
503
504 // fin du else de test de la valeur de k
505 }
506
507 tab_d_plus_(num_face) = dist*tab_u_star(num_face)/d_visco;
508
509 // test si on sort des limites de validite de la loi log
510 if ( (dist*tab_u_star(num_face)/d_visco) > 500. )
511 {
512 // Cerr << "Probleme de TRUST dans Paroi_std_hyd_VDF::calculer_local() : " << finl;
513 // Cerr << "on sort du domaine de validite de la loi log" << finl;
514 Cerr << "Y+=" << (dist*tab_u_star(num_face)/d_visco) << finl;
515 }
516
517 return 1;
518}
519
520
522 double d_visco,double dist,
523 int face)
524{
525 // Dans la sous couche visqueuse: u* = sqrt(u*nu/d)
526
527 ////tab_u_star_(face) = sqrt(2*norm_vit*d_visco/dist);
528 tab_u_star_(face) = sqrt(norm_vit*d_visco/dist);
529
530 return 1;
531}
532
534 double dist, int face, double E_)
535{
536 // Dans la sous couche inertielle u* est solution d'une equation
537 // differentielle resolue de maniere iterative
538
539 const int itmax = 25;
540 const double seuil = 0.001;
541 const double c1 = Kappa_*norm_vit;
542 const double c2 = log(E_*dist/d_visco); // log = logarithme neperien
543 double u_star,u_star1;
544 double F,F_;
545
546 int iter = 0;
547 u_star1 = 1.;
548 u_star= 2. ;
549
550 while (( std::fabs((u_star-u_star1)/u_star1) > seuil ) && (iter < itmax ) )
551 {
552 u_star=u_star1 ;
553 iter++ ;
554 F= u_star*(log(u_star)+c2) -c1 ;
555 F_= log(u_star)+1+c2 ;
556 u_star1=u_star- F/F_ ;
557
558 }
559
560 if (iter >= itmax) erreur_non_convergence();
561
562 tab_u_star_(face)= u_star1;
563
564
565
566 return 1;
567}
568
569
570
classe Champ_Don_base classe de base des Champs donnes (non calcules)
DoubleTab & valeurs() override
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
classe Champ_Uniforme Represente un champ constant dans l'espace et dans le temps.
classe Cond_lim Classe generique servant a representer n'importe quelle classe
Definition Cond_lim.h:31
classe Dirichlet_paroi_defilante Impose la vitesse de paroi dnas une equation de type Navier_Stokes.
classe Dirichlet_paroi_fixe Represente une paroi immobile dans une equation de type Navier_Stokes.
virtual double val_imp(int i) const
Renvoie la valeur imposee sur la i-eme composante du champ a la frontiere au temps par defaut du cham...
Definition Dirichlet.cpp:35
class Domaine_VDF
Definition Domaine_VDF.h:64
double dist_norm_bord_axi(int num_face) const
int orientation(int) const override
inline DoubleVect& Domaine_VDF::porosite_face() {
double dist_norm_bord(int num_face) const override
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
Definition Domaine_VF.h:543
int face_voisins(int num_face, int i) const
renvoie l'element voisin de numface dans la direction i.
Definition Domaine_VF.h:418
int nb_front_Cl() const
Class defining operators and methods for all reading operation in an input flow (file,...
Definition Entree.h:42
classe Equation_base Le role d'une equation est le calcul d'un ou plusieurs champs....
virtual const Milieu_base & milieu() const =0
virtual const Champ_Inc_base & inconnue() const =0
classe Fluide_base Cette classe represente un d'un fluide incompressible ainsi que
Definition Fluide_base.h:38
const Champ_Don_base & viscosite_cinematique() const
Definition Fluide_base.h:58
class Front_VF
Definition Front_VF.h:36
int nb_faces() const
Definition Front_VF.h:53
int num_premiere_face() const
Definition Front_VF.h:63
static int dimension
Definition Objet_U.h:99
const Nom & que_suis_je() const
renvoie la chaine identifiant la classe.
Definition Objet_U.cpp:104
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
Definition Objet_U.cpp:293
virtual const Nom & le_nom() const
Donne le nom de l'Objet_U Methode a surcharger : renvoie "neant" dans cette implementation.
Definition Objet_U.cpp:319
static int axi
Definition Objet_U.h:101
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
Definition Objet_U.cpp:282
int preparer_calcul_hyd(DoubleTab &) override
int calculer_u_star_couche_log(double, double, double, int, double)
int calculer_u_star_sous_couche_visq(double, double, double, int)
int calculer_hyd(DoubleTab &) override
int calculer_local(double, double, DoubleTab &, DoubleTab &, double, double, int, int)
CLASS: Paroi_std_hyd_VDF.
int calculer_sous_couche_visq(DoubleTab &, double, int, double, int)
int calculer_sous_couche_log(DoubleTab &, double, int, int)
Classe de base des flux de sortie.
Definition Sortie.h:52
_TYPE_ local_min_vect(Mp_vect_options opt=VECT_REAL_ITEMS) const
Definition TRUSTVect.h:155
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")
const DoubleVect & tab_u_star() const