Télécharger colline_expl.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : colline_expl.dgibi
  2. **---------------------------------
  3. ** ECOULEMENT AUTOUR D'UNE COLLINE
  4. ** G. TURBELIN 14/12/99
  5. ** modifie le 6/02/2000
  6. ** modifie le 15/06/2014 passage EQPR -> EQEX
  7. **
  8. ** CAS TEST DE ALMEIDA et Al.
  9. ** INFO DOMAINE & RESULTATS EXPERIMENTAUX A L_ADRESSE
  10. ** http://vortex.mech.surrey.ac.uk/database/test18/test18.html
  11. **----------------------------------
  12.  
  13. opti dime 2 elem qua8;
  14.  
  15. COMPLET=FAUX;
  16. GRAPH='N' ;
  17.  
  18. DISCR = 'MACRO' ;
  19. KPRESS = 'CENTRE';
  20. BETAP = 1. ;
  21.  
  22. Si complet ;
  23. iitma=20000 ;
  24. sinon;
  25. iitma=42 ;
  26. finsi ;
  27.  
  28. **************************
  29. ** PROCEDURE DE CALCUL
  30. ** POUR ESTIMER LA CONVERGENCE
  31. ****************************************
  32.  
  33. 'DEBPROC' ERR;
  34. 'ARGUMENT' rvx*'TABLE';
  35. rv= rvx.'EQEX';
  36.  
  37. DD = rv.PASDETPS.'NUPASDT' ;
  38. NN = DD/20;
  39. T0 = (DD '-' (20*NN)) 'EGA' 0;
  40. 'SI' T0;
  41. UN = RV.INCO.'UN' ;
  42. UNM1 = RV.INCO.'UNM1' ;
  43.  
  44. unx= kcht $surfa scal sommet (exco 'UX' un) ;
  45. unm1x = kcht $surfa scal sommet (exco 'UX' unm1) ;
  46. uny= kcht $surfa scal sommet (exco 'UY' un) ;
  47. unm1y = kcht $surfa scal sommet (exco 'UY' unm1) ;
  48.  
  49. ERRX = KOPS unx '-' unm1x ;
  50. ERRY = KOPS uny '-' unm1y ;
  51. ELIX = MAXI ERRX 'ABS' ;
  52. ELIY = MAXI ERRY 'ABS' ;
  53. ELIX = (LOG (ELIX + 1.0E-20))/(LOG 20.) ;
  54. ELIY = (LOG (ELIY + 1.0E-20))/(LOG 20.) ;
  55.  
  56. ***! pour afficher NUT/NU, attention aux dimensions
  57.  
  58. MESSAGE 'ITER ' RV.PASDETPS.'NUPASDT' ' ERREUR LINF ' ELIX ELIY
  59. 'MAX NUT/NU = ' ((MAXI RV.INCO.'NUT')*Re) ;
  60. IT = PROG RV.PASDETPS.'NUPASDT' ;
  61.  
  62. ERY = PROG ELIY ;
  63. ERX = PROG ELIX ;
  64.  
  65. RV.INCO.'IT' = (RV.INCO.'IT') ET IT ;
  66. RV.INCO.'ERY' = (RV.INCO.'ERY') ET ERY ;
  67. RV.INCO.'ERX' = (RV.INCO.'ERX') ET ERX ;
  68.  
  69. 'FINSI' ;
  70. RV.INCO.'UNM1'= KCHT $surfa vect sommet (RV.INCO.'UN') ;
  71. as2 ama1 = 'KOPS' 'MATRIK' ;
  72. 'FINPROC' as2 ama1 ;
  73. **--------------------------------------------------
  74.  
  75. ************************************
  76. ** CONSTRUCTION DU MAILLAGE (ADIM)
  77. *************************************
  78. **
  79. **Definition des longueurs
  80. **-----------------------
  81. **hauteur du domaine (mm)
  82. Hdo = 170.;
  83. **hauteur de la colline (mm)
  84. H_ref = 28.;
  85.  
  86. **abscisses caracteristiques (mm)
  87. Xmind = -326.; Xmaxd = 500.; X1d=0.;
  88.  
  89. X2d=9.; X3d= 14.; X4d= 20.;
  90. X5d=30.; X6d=40.; X7d=54.;
  91.  
  92. **abscisses caracteristiques adim
  93. Xmin = Xmind/H_ref ; Xmax = Xmaxd/H_ref; X1=X1d/H_ref;
  94.  
  95. X2=X2d/H_ref; X3= X3d/H_ref; X4=X4d/H_ref;
  96. X5=X5d/H_ref; X6=X6d/H_ref; X7=X7d/H_ref;
  97.  
  98. Hd = Hdo/H_ref ;
  99.  
  100. **Nb de maille
  101. **Nombre de maille entre x=9 et x=14 (colline)
  102. si complet ;
  103. Nbcol = 2;
  104. sinon ;
  105. Nbcol = 1;
  106. finsi ;
  107.  
  108. **Nb de maille entre x=-326 et x =-54 (bas1 & haut4)
  109.  
  110. Nbbas1 = 13*Nbcol;
  111.  
  112. ****Nb de maille entre x=54 et x =500 (bas2 & haut1)
  113.  
  114. Nbbas2 = 19*Nbcol;
  115.  
  116. **Nb de maille entre y=0 et y=170 (sortie et entree)
  117.  
  118. Nbsort = 10*Nbcol ;
  119.  
  120. **Densité
  121. DIbasG = -1*(Xmin+X7)/Nbbas1 ;
  122.  
  123. DIbas1 = 2*DIbasG ; DFbas1 = 0.5*DIbasG;
  124.  
  125. DIbasD = (Xmax-X7)/Nbbas1 ;
  126. DIbas2 = 0.8*DIbasD ; DFbas2 = 1.5*DIbasD;
  127.  
  128. Dsort = Hd '/' Nbsort ;
  129. DIsort = 0.3* Dsort;
  130. DFsort = 2.* Dsort;
  131.  
  132. **-----------------------------------------
  133. ** Construction de la colline a partir
  134. ** de polynomes du troisieme ordre
  135. **-----------------------------------------
  136. **
  137. ** Cote GAUCHE
  138.  
  139. coG60 = 0. (56.39011190988/H_ref);
  140. coG61 = 1. (+2.010520359035);
  141. coG62 = 0. ((1.644919857549e-2)*H_ref) ;
  142. coG63 = 0. (-2.674976141766e-5 *(H_ref**2));
  143.  
  144. lignG6 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1.
  145. coG60 coG61 coG62 coG63 'PARAMETRE' (-1*X7) (-1*X6) ;
  146.  
  147. coG50 = 0. (17.92461334664/H_ref);
  148. coG51 = 1. -8.743920332081e-1 ;
  149. coG52 = 0. ((-5.567361123058e-2)*H_ref) ;
  150. coG53 = 0. ((-6.277731764683e-4)*(H_ref**2));
  151.  
  152. lignG5 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1.
  153. coG50 coG51 coG52 coG53 'PARAMETRE' (-1*X6) (-1*X5) ;
  154.  
  155. coG40 = 0. (40.46435022819/H_ref);
  156. coG41 = 1. +1.379581654948;
  157. coG42 = 0. ((1.945884504128e-2)*H_ref);
  158. coG43 = 0. ((+2.070318932190e-4)*(H_ref**2));
  159.  
  160. lignG4 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1.
  161. coG40 coG41 coG42 coG43 'PARAMETRE' (-1*X5) (-1*X4) ;
  162.  
  163. coG30 = 0. (25.79601052357/H_ref);
  164. coG31 = 1. -8.20669300745e-1;
  165. coG32 = 0. ((-9.055370274339e-2)*H_ref) ;
  166. coG33 = 0. ((-1.626510569859e-3)*(H_ref**2));
  167.  
  168. lignG3 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1.
  169. coG30 coG31 coG32 coG33 'PARAMETRE' (-1*X4) (-1*X3) ;
  170.  
  171. coG20 = 0. ((2.507355893131e+1)/H_ref);
  172. coG21 = 1. -9.754803562315e-1;
  173. coG22 = 0. ((-1.016116352781e-1)*H_ref) ;
  174. coG23 = 0. ((-1.889794677828e-3)*(H_ref**2)) ;
  175.  
  176. lignG2 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1.
  177. coG20 coG21 coG22 coG23 'PARAMETRE' (-1*X3) (-1*X2) ;
  178.  
  179. coG10 = 0. (28/H_ref);
  180. coG11 = 1. 0.;
  181. coG12 = 0. ((6.775070969851e-3)*H_ref) ;
  182. coG13 = 0. ((+2.124527775800e-3)*(H_ref**2)) ;
  183.  
  184. lignG1 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1.
  185. coG10 coG11 coG12 coG13 'PARAMETRE' (-1*X2) X1 ;
  186.  
  187. colG = lignG6 et lignG5 et lignG4 et lignG3
  188. et lignG2 et lignG1 ;
  189. elim colG 1e-5;
  190.  
  191. *trac colG;
  192.  
  193. **Cote Droit
  194.  
  195. coD10 = 0. (28/H_ref);
  196. coD11 = 1. 0.;
  197. coD12 = 0. ((6.775070969851e-3)*H_ref) ;
  198. coD13 = 0. ((-2.124527775800e-3)*(H_ref**2));
  199.  
  200. lignD1 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1. coD10
  201. coD11 coD12 coD13 'PARAMETRE' X1 X2 ;
  202.  
  203. coD20 = 0. ((2.507355893131e+1)/H_ref);
  204. coD21 = 1. 9.754803562315e-1;
  205. coD22 = 0. ((-1.016116352781e-1)*H_ref) ;
  206. coD23 = 0. ((1.889794677828e-3)*(H_ref**2)) ;
  207.  
  208. lignD2 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1. coD20 coD21
  209. coD22 coD23 'PARAMETRE' X2 X3 ;
  210.  
  211. coD30 = 0. ((25.79601052357)/H_ref);
  212. coD31 = 1. 8.20669300745e-1;
  213. coD32 = 0. ((-9.055370274339e-2)*H_ref) ;
  214. coD33 = 0. ((1.626510569859e-3)*(H_ref**2)) ;
  215.  
  216. lignD3 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1. coD30 coD31
  217. coD32 coD33 'PARAMETRE' X3 X4 ;
  218.  
  219. coD40 = 0. (40.46435022819/H_ref);
  220. coD41 = 1. -1.379581654948;
  221. coD42 = 0. ((1.945884504128e-2)*H_ref);
  222. coD43 = 0. ((-2.070318932190e-4)*(H_ref**2));
  223.  
  224. lignD4 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1. coD40
  225. coD41 coD42 coD43 'PARAMETRE' X4 X5 ;
  226.  
  227. coD50 = 0. (17.92461334664/H_ref);
  228. coD51 = 1. 8.743920332081e-1;
  229. coD52 = 0. ((-5.567361123058e-2)*H_ref) ;
  230. coD53 = 0. ((6.277731764683e-4)*(H_ref**2));
  231.  
  232. lignD5 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1. coD50 coD51
  233. coD52 coD53 'PARAMETRE' X5 X6 ;
  234.  
  235. coD60 = 0. (56.39011190988/H_ref);
  236. coD61 = 1. -2.010520359035;
  237. coD62 = 0. ((1.644919857549e-2)*H_ref) ;
  238. coD63 = 0. ((2.674976141766e-5)*(H_ref**2)) ;
  239.  
  240. lignD6 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1. coD60
  241. coD61 coD62 coD63 'PARAMETRE' X6 X7 ;
  242.  
  243. colD = lignD1 et lignD2 et lignD3 et lignD4
  244. et lignD5 et lignD6 ;
  245.  
  246. elim colD 1e-6;
  247.  
  248. colline = colG et colD; elim colline 1e-6;
  249.  
  250. *trac colline;opti donn 5 ;
  251.  
  252. **
  253. **Construction des cotes du domaine
  254. **-----------------------------------
  255.  
  256. bas1 = (Xmin 0.) d (-1*Nbbas1) ((-1*X7) 0.) DINI DIbas1 DFIN DFbas1;
  257. bas2 = (X7 0.) d (-1*Nbbas2) (Xmax 0.) DINI DIbas2 DFIN DFbas2;
  258.  
  259. bas = bas1 et colline et bas2; elim bas 1e-6;
  260.  
  261. ** Le maillage de la face superieure doit correspondre avec le
  262. ** maillage de la face inferieure. Pour ne pas avoir de pb dans le
  263. ** post-traitement (definition de lignes a X=Cst) , il est utile d'avoir
  264. ** un maillage rectiligne.
  265.  
  266. *Haut Droite et Haut Gauche
  267. hautD = (Xmax Hd) d (-1*Nbbas2) (X7 Hd) DINI DFbas2 DFIN DIbas2;
  268. hautG = ((-1*X7) Hd) d (-1*Nbbas1) (Xmin Hd) DINI DFbas1 DFIN DIbas1;
  269.  
  270. **cote Droit
  271. haut1D = (X7 Hd) d (1*Nbcol) (X6 Hd);
  272. haut2D = (X6 Hd) d (1*Nbcol) (X5 Hd);
  273. haut3D = (X5 Hd) d (1*Nbcol) (X4 Hd);
  274. haut4D = (X4 Hd) d (1*Nbcol) (X3 Hd);
  275. haut5D = (X3 Hd) d (1*Nbcol) (X2 Hd);
  276. haut6D = (X2 Hd) d (1*Nbcol) (X1 Hd);
  277.  
  278. **Cote Gauche
  279. haut6G = ((-1*X1) Hd) d (1*Nbcol) ((-1*X2) Hd);
  280. haut5G = ((-1*X2) Hd) d (1*Nbcol) ((-1*X3) Hd);
  281. haut4G = ((-1*X3) Hd) d (1*Nbcol) ((-1*X4) Hd);
  282. haut3G = ((-1*X4) Hd) d (1*Nbcol) ((-1*X5) Hd);
  283. haut2G = ((-1*X5) Hd) d (1*Nbcol) ((-1*X6) Hd);
  284. haut1G = ((-1*X6) Hd) d (1*Nbcol) ((-1*X7) Hd);
  285.  
  286. haut = hautD et haut1D et haut2D et haut3D et haut4D et
  287. haut5D et haut6D et haut6G et haut5G et haut4G et
  288. haut3G et haut2G et haut1G et hautG;
  289.  
  290. elim haut 1e-6;
  291.  
  292. sortie1 =(Xmax 0.) d (-1*(Nbsort/2)) (Xmax (Hd/2))
  293. DINI DIsort DFIN DFsort;
  294. sortie2 =(Xmax (Hd/2)) d (-1*(Nbsort/2)) (Xmax Hd)
  295. DINI DFsort DFIN DIsort;
  296.  
  297. sortie = (sortie1 et sortie2);
  298. elim sortie 1e-5;
  299.  
  300. entree1 =(Xmin Hd) d (-1*(Nbsort/2)) (Xmin (Hd/2))
  301. DINI DIsort DFIN DFsort;
  302. entree2 =(Xmin (Hd/2)) d (-1*(Nbsort/2)) (Xmin 0.)
  303. DINI DFsort DFIN DIsort;
  304.  
  305. entree = (entree1 et entree2); elim entree 1e-5;
  306.  
  307. elim (bas et sortie et haut et entree ) 1e-5;
  308. surfa = dall bas sortie haut entree plan;
  309.  
  310. surfa = 'CHANGER' surfa 'QUAF' ;
  311. bas = 'CHANGER' bas 'QUAF' ;
  312. entree = 'CHANGER' entree 'QUAF' ;
  313. haut = 'CHANGER' haut 'QUAF' ;
  314. sortie = 'CHANGER' sortie 'QUAF' ;
  315.  
  316. 'ELIMINATION' 1.D-6 (bas 'ET' entree 'ET' haut 'ET' sortie
  317. 'ET' surfa) ;
  318.  
  319. ** ! Le maillage est sans dimension ...
  320.  
  321. *************************
  322. ** DEFINITION DES MODELES
  323. *************************
  324. **------------------------
  325.  
  326. Msurfa = 'CHAN' surfa 'QUAF' ;
  327. Mbas = 'CHAN' bas 'QUAF' ;
  328. Mentree = 'CHAN' entree 'QUAF' ;
  329. Mhaut = 'CHAN' haut 'QUAF' ;
  330. Msortie = 'CHAN' sortie 'QUAF' ;
  331.  
  332. 'ELIM' (Msurfa et Mbas et Mentree et Mhaut et Msortie)1.e-5;
  333.  
  334. $surfa = 'MODE' Msurfa 'NAVIER_STOKES' DISCR ;
  335. $bas = 'MODE' Mbas 'NAVIER_STOKES' DISCR ;
  336. $entree = 'MODE' Mentree 'NAVIER_STOKES' DISCR ;
  337. $haut = 'MODE' Mhaut 'NAVIER_STOKES' DISCR ;
  338. $sortie = 'MODE' Msortie 'NAVIER_STOKES' DISCR ;
  339.  
  340. surfa = 'DOMA' $surfa 'MAILLAGE' ;
  341. 'ORIENTER' surfa;
  342. entree = 'DOMA' $entree 'MAILLAGE' ;
  343. haut = 'DOMA' $haut 'MAILLAGE' ;
  344. bas = 'DOMA' $bas 'MAILLAGE' ;
  345. sortie = 'DOMA' $sortie 'MAILLAGE' ;
  346.  
  347.  
  348. si ('EGA' graph 'O' );
  349. 'TRACER' surfa;
  350. finsi ;
  351.  
  352. **********************
  353. **VALEURS DE REFERENCE
  354. **(mm)-->(m)
  355. **********************
  356. **Hauteur du canal (m)
  357. Hdo = Hdo*1.e-3;
  358. **1/2 hauteur (axe)
  359. Haxe = Hdo/2.;
  360. **Hauteur de reference (m)
  361. H_ref = H_ref*1.e-3 ;
  362. **vitesse de reference (m/s) = Vx(85)
  363. U_ref = 2.147;
  364. *vitesse de frottement (aerodynamique) en m/s
  365. Uf = 0.079;
  366.  
  367. *****************************
  368. *** PROPRIETES PHYSIQUES
  369. ***************************
  370. ** constante de Von Karman
  371. C1 = 0.4;
  372.  
  373. ** constante du modele RNG k-e
  374. CNU = 0.0845;
  375.  
  376. ** taux de turbulence
  377. INT = 0.03 ;
  378.  
  379. ** Longueur de reference pour FILTREKE
  380. Lref = (Hdo/H_ref) ;
  381.  
  382. ** nu de l'eau (m**2/s)
  383. nu_eau = 1e-6;
  384. nu = nu_eau;
  385.  
  386. ** NUT_ent/Nu
  387. alf1 = 40.;
  388.  
  389. **Reynolds de l'écoulement
  390. Re = (U_ref*H_ref)/nu ;
  391. iRe = 1/Re ;
  392.  
  393. *************************************
  394. ** COORDONNEES DES POINTS DU MAILLAGE
  395. **************************************
  396. ** ORDO des points du maillage (sans dim)
  397. Y1 = coor 2 surfa;
  398.  
  399. ** Ordonnées de tous les points de l'entree (CHPO et LISTREEL) (sans dim)
  400. Y2 = coor 2 entree;
  401. YC2 = EVOL CHPO Y2 scal (inve entree) ;
  402.  
  403. ** Nombre de noeud en hauteur
  404. NH = DIME (extr YC2 ordo);
  405.  
  406. ** Distances Normales aux parois (1/2 hauteur de la premiere maille) (sans dim)
  407. **-----------------------------------------------
  408. YP = (EXTR (extr YC2 ordo) 2)/2;
  409.  
  410. ** Prise en compte de Yp dans les ordonnees (y=y+yp)
  411. Yyp = MANU CHPO entree 1 scal YP;
  412. Yyp = Y2 + Yyp;
  413.  
  414. ** Coordonnes pour des profils symetriques / a l_axe
  415. Yc = MANU CHPO entree 1 scal ((Haxe/H_ref)+YP);
  416. Ysym = Yc -(abs(Yyp - Yc));
  417. Yslog = log Ysym;
  418.  
  419. ** Definition des profils d'entrees et initiaux
  420. **----------------------------------------------
  421. ** Definition du domaine d'imposition
  422. M_imp =entree;
  423.  
  424. ** CALCUL DES PROFILS D'ENTREE
  425. **---------------------------------------------------
  426. ** (U= a*lnYyp + b) et (K= c*Yyp + d)
  427. ** (a,b,c,d) sont obtenus a partir des profils experimentaux.
  428.  
  429. a = 0.25756 ;
  430. b = 1.8552 ;
  431. c = -1.85184878e-1*H_ref;
  432. d = 1.912227164e-2;
  433. d = MANU CHPO entree 1 scal d;
  434.  
  435. ** VITESSES
  436. **-----------
  437. Uent = (Yslog*a)+b ;
  438. Uent = Uent /U_ref;
  439.  
  440. ** Transformation du chpo scalaire en
  441. ** chpo vecteur + imposition sur le domaine
  442.  
  443. U1 = Uent NOMC 'UX' ;
  444. U1 = KCHT $surfa vect sommet U1;
  445.  
  446. ** Valeurs IMPOSEES
  447. UX_IMP = EXCO (REDU U1 M_imp) 'UX' SCAL;
  448. UY_IMP = EXCO (REDU U1 M_imp) 'UY' SCAL;
  449.  
  450. ** Valeurs INITIALES (sans dim)
  451. U_ini = MANU CHPO surfa 1 scal 1.;
  452. U_ini = U_ini NOMC 'UX' ;
  453. U_ini = KCHT $surfa vect sommet U_ini;
  454.  
  455. *opti donn 5;
  456.  
  457. **ENERGIE CINETIQUE
  458. **-----------------
  459. ** Kadim = K/(U_ref**2)
  460. *
  461. Kent = ((Ysym*c)+ d);
  462. Kent = (Kent/(U_ref**2));
  463.  
  464. ** Fonction de l'intensite de la turbulence
  465. K2 = 1.5*(INT**2) ;
  466. K2 = 'MANU' 'CHPO' surfa 1 scal K2;
  467.  
  468. ***INITIALE
  469. K_ini = KCHT $surfa scal sommet K2;
  470.  
  471. ***IMPOSEE
  472. K_IMP = KCHT $surfa scal sommet K2 Kent ;
  473. K_IMP = EXCO (REDU K_IMP M_imp) SCAL;
  474.  
  475. ** DISSIPATION
  476. **--------------
  477. ** Fonction de K_ini et de NUT
  478. ** K_ini est sans dim
  479. E2 = (CNU*(K_ini**2)*Re)/(alf1);
  480.  
  481. ** En entree, fonction de Kent et d'une longueur caractéristique
  482. ** K_ent est sans dim
  483.  
  484. E3 = (Kent**1.5)* (H_ref/Lref);
  485.  
  486. ** INITIALE
  487. E_ini = KCHT $surfa scal sommet E2;
  488.  
  489. ** IMPOSEE
  490. E_IMP= KCHT $surfa scal sommet E2 E3 ;
  491. E_IMP=EXCO (REDU E_IMP M_imp) SCAL ;
  492.  
  493. *list E_imp;
  494.  
  495. ** NUT INITIALE
  496. ** ------------------
  497. ** NUTadim = NUT/(Uref*Href)
  498. ** NUadim =1/Re
  499.  
  500. ** Fonction de K et E
  501. *N2=CNU*(K_ini**2)*(E_ini**-1);
  502.  
  503. ** Fonction de nu
  504. N3=KCHT $surfa scal sommet (alf1/Re) ;
  505.  
  506. N_ini = noel $surfa N3 ;
  507.  
  508. ** U* INITIALES
  509. **-------------
  510. UET_ini1 = kcht $bas scal centre (Uf/U_ref);
  511. UET_ini2 = kcht $haut scal centre (Uf/U_ref);
  512.  
  513. *opti donn 5;
  514.  
  515. ** Module de resolution
  516. **-------------------
  517. RV = EQEX $surfa ITMA iitma ALFA 0.8
  518. OPTI 'SUPG' 'RNG'
  519. ZONE $surfa OPER NSKE iRe 'NUT' INCO 'UN' 'KN' 'EN'
  520. ZONE $bas OPER FPU iRe 'UET1' YP INCO 'UN' 'KN' 'EN'
  521. ZONE $haut OPER FPU iRe 'UET2' YP INCO 'UN' 'KN' 'EN'
  522. ZONE $surfa OPER FILTREKE 1. Lref iRe 'UN' INCO 'KN' 'EN';
  523.  
  524. RV = EQEX RV 'OPTI' 'CENTREE'
  525. 'ZONE' $surfa 'OPER' 'DFDT' 1. 'UN' 'DELTAT' INCO 'UN'
  526. 'ZONE' $surfa 'OPER' 'DFDT' 1. 'KN' 'DELTAT' INCO 'KN'
  527. 'ZONE' $surfa 'OPER' 'DFDT' 1. 'EN' 'DELTAT' INCO 'EN' ;
  528.  
  529. RV = 'EQEX' RV
  530. ZONE $surfa OPER ERR;
  531.  
  532.  
  533. RV = EQEX RV
  534. CLIM 'UN' UIMP M_imp UX_imp
  535. CLIM 'UN' VIMP M_imp UY_imp
  536. CLIM 'KN' TIMP M_imp K_imp
  537. CLIM 'EN' TIMP M_imp E_imp ;
  538.  
  539. RVP = EQEX 'OPTI' 'EF' KPRESS
  540. 'ZONE' $surfa OPER KBBT -1. betap 'INCO' 'UN' 'PRES'
  541. 'ZONE' $bas OPER VNIMP $surfa 0. 'INCO' 'UN' 'PRES'
  542. 'ZONE' $haut OPER VNIMP $surfa 0. 'INCO' 'UN' 'PRES'
  543. ;
  544.  
  545. RV.'PROJ' = RVP ;
  546.  
  547. RV.INCO = TABLE INCO;
  548. RV.INCO.'PRES' = kcht $surfa SCAL KPRESS 0.;
  549. RV.INCO.'UN' = U_ini;
  550. RV.INCO.'KN' = K_ini;
  551. RV.INCO.'EN' = E_ini;
  552. RV.INCO.'NUT' = N_ini;
  553. RV.INCO.'UET1' = UET_ini1;
  554. RV.INCO.'UET2' = UET_ini2;
  555.  
  556. RV.INCO.'UNM1'= KCHT $surfa vect sommet (1.E-3 1.E-3) ;
  557. RV.INCO.'IT' = PROG 1 ;
  558. RV.INCO.'ERY' = PROG 0. ;
  559. RV.INCO.'ERX' = PROG 0.;
  560.  
  561. EXEC RV;
  562.  
  563. rt=rv.pasdetps;
  564. tps1 = rt.tps;
  565. it1 = rt.nupasdt;
  566. dt = rt.'DELTAT-1';
  567.  
  568. 'MESSAGE' 'No ITERATION ' it1;
  569. 'MESSAGE' 'DERNIER PAS ' DT;
  570. 'MESSAGE' 'TEMPS PHYSIQUE' tps1;
  571.  
  572. ** PROFILS SUR LE DOMAINE TOTAL
  573. **--------------------------------
  574. vv = 'VECTEUR' rv.inco.'UN' .1 ux uy ;
  575. Vx = rv.inco.'UN' exco UX SCAL ;
  576. Vy = rv.inco.'UN' exco UY SCAL ;
  577. kk = rv.inco.'KN' ;
  578. EE = rv.inco.'EN';
  579. nuts = 'ELNO' ('KCHT' $surfa scal centre (RV.INCO.'NUT')) $surfa;
  580. NUTSNU = nuts * Re ;
  581. PP = 'ELNO' $surfa (exco (rv.'INCO'.'PRESSION') 'PRES') kpress ;
  582.  
  583. si ('EGA' graph 'O' );
  584. *'OPTION' isov ligne;
  585. titre 'Vecteur Vitesse à t=' tps1;
  586. 'TRACER' vv surfa ('CONTOUR' surfa);
  587. titre 'vecteur vitesse composante X à t=' tps1;
  588. 'TRACER' Vx surfa ('CONTOUR' surfa) ;
  589. titre 'vecteur vitesse composante Y à t=' tps1;
  590. 'TRACER' VY surfa ('CONTOUR' surfa) ;
  591. titre 'CHAMP DE PRESSION';
  592. 'TRACER' PP surfa ('CONTOUR' surfa);
  593. titre 'Energie Cinetique Turbulente à t=' tps1;
  594. 'TRACER' kk surfa ('CONTOUR' surfa);
  595. titre 'dissipation à t=' tps1;
  596. 'TRACER' ee surfa ('CONTOUR' surfa);
  597. titre 'NUT/NU à t=' tps1;
  598. 'TRACER' nutsnu surfa ('CONTOUR' surfa);
  599. finsi ;
  600.  
  601. ** FONCTION DE COURANT
  602. **---------------------
  603.  
  604. * FONCTION DE COURANT
  605. **---------------------
  606.  
  607. un1=EXCO (rv.inco.'UN') ux;
  608. un2=EXCO (rv.inco.'UN') uy;
  609.  
  610. un1=KCHT $surfa SCAL SOMMET un1;
  611. un2=KCHT $surfa SCAL SOMMET un2;
  612.  
  613. ** CALCUL DU ROTATIONNEL DU CHAMP DE VITESSE
  614.  
  615. rt2d=KOPS (rv.inco.'UN') 'ROT' $surfa;
  616. sw= (-1*rt2d);
  617.  
  618. ** DEFINITION DE Utangentielle SUR CHAQUE FACE
  619. ** !! la direction de Ut depend de la définition
  620. ** de la normale a la paroi n !!
  621.  
  622. unn1=KCHT $BAS SCAL SOMMET (-1*un1);
  623. unn2=KCHT $SORTIE SCAL SOMMET (-1*un2);
  624. unn3=KCHT $HAUT SCAL SOMMET (un1);
  625. unn4=KCHT $ENTREE SCAL SOMMET (un2);
  626.  
  627. unn1=NOEL $BAS unn1;
  628. unn1=KCHT $BAS SCAL CENTRE unn1;
  629. unn2=NOEL $SORTIE unn2;
  630. unn2=KCHT $SORTIE SCAL CENTRE unn2;
  631. unn3=NOEL $HAUT unn3;
  632. unn3=KCHT $HAUT SCAL CENTRE unn3;
  633. unn4=NOEL $ENTREE unn4;
  634. unn4=KCHT $ENTREE SCAL CENTRE unn4;
  635.  
  636. ** RESOLUTION DE LAPN(PSI)=ROT(UN)
  637. ** avec D(PSI)/D(n) = (+/-)Utangentielle AUX LIMITES DU DOMAINE, (ce qui
  638. ** se traduit par des conditions de type flux imposés (FIMP) aux frontieres.
  639. ** ON PREND PSI(BAS) = 0
  640.  
  641. ** ICI, SEULE LA CONDITION SUR HAUT EST NECESSAIRE
  642.  
  643. rk=EQEX $surfa 'OPTI' 'EF' 'IMPL'
  644. ZONE $surfa OPER LAPN 1. inco 'psi'
  645. ZONE $surfa OPER FIMP sw inco 'psi'
  646. ZONE $BAS OPER FIMP unn1 inco 'psi'
  647. ZONE $SORTIE OPER FIMP unn2 inco 'psi'
  648. ZONE $HAUT OPER FIMP unn3 inco 'psi'
  649. ZONE $ENTREE OPER FIMP unn4 inco 'psi'
  650. CLIM 'psi' TIMP BAS 0. ;
  651.  
  652. rk.inco.'psi'=KCHT $surfa SCAL SOMMET 0.;
  653. exec rk;
  654. ** Lignes de courant = ISO de la fonction de courant
  655.  
  656.  
  657. si ('EGA' graph 'O' );
  658. psi=rk.inco.'psi';
  659. 'OPTION' ISOV LIGNE;
  660.  
  661. 'TRACER' psi surfa ('CONTOUR' (surfa)) titr 'LIGNES DE COURANT';
  662. finsi ;
  663.  
  664. *opti donn 5 ;
  665.  
  666. 'FIN' ;
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales