Télécharger colline.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : colline.dgibi
  2. **---------------------------------
  3. ** ECOULEMENT AUTOUR D'UNE COLLINE
  4. ** G. TURBELIN 14/12/99
  5. **----------------------------------
  6.  
  7. opti dime 2 elem qua8;
  8.  
  9. COMPLET=FAUX;
  10. GRAPH='N' ;
  11.  
  12. Si complet ;
  13. iitma=20000 ;
  14. sinon;
  15. iitma=5 ;
  16. finsi ;
  17.  
  18.  
  19.  
  20. *------------------ PROCEDURE FILTREKE ---------------------------------
  21. DEBP FILTREKE ;
  22. ARGU RX*TABLE ;
  23. * Filtre sur K et Epsilon
  24. * - Echelle de vitesse (K**0.5) inférieure à une fraction (alfk)
  25. * de Uref (vitesse caractéristique) (alfk=1 pour l'instant)
  26. * Uref=max(UN,U0)
  27. * - K > K0
  28. * - Epsilon tel que l'echelle de longueur reste inférieure
  29. * à (L0/a) où L0 = diamètre enceinte et a=f(Re)
  30. * => Nut < Uref*L0/a
  31.  
  32. rv=rx.'EQEX' ;
  33. rvp=rv.'PRESSION' ;
  34. iarg=rx.'IARG' ;
  35. NASTOK = rv.'NAVISTOK' ;
  36.  
  37.  
  38. si( non ( ega iarg 4)) ;
  39. mess 'Procedure FILTREKE : nombre d arguments incorrect ' iarg ;
  40. quitter FILTREKE ;
  41. finsi ;
  42. si ( ega ('TYPE' rx.'ARG1') 'MOT ') ;
  43. U1=rv.'INCO'.(rx.'ARG1') ;
  44. sinon ;
  45. si ( ega ('TYPE' (rx.'ARG1')) 'FLOTTANT') ;
  46. U1=rx.'ARG1' ;
  47. sinon ;
  48. mess 'Procedure FILTREKE : type argument 1 invalide ' ;
  49. quitter FILTREKE ;
  50. finsi ;
  51. finsi ;
  52.  
  53. si ( ega ('TYPE' rx.'ARG2') 'MOT ') ;
  54. L0=rv.'INCO'.(rx.'ARG2') ;
  55. sinon ;
  56. si ( ega ('TYPE' (rx.'ARG2')) 'FLOTTANT') ;
  57. L0=rx.'ARG2' ;
  58. sinon ;
  59. mess 'Procedure FILTREKE : type argument 2 invalide ' ;
  60. quitter FILTREKE ;
  61. finsi ;
  62. finsi ;
  63.  
  64. si ( ega ('TYPE' rx.'ARG3') 'MOT ') ;
  65. NU=rv.'INCO'.(rx.'ARG3') ;
  66. sinon ;
  67. si ( ega ('TYPE' (rx.'ARG3')) 'FLOTTANT') ;
  68. NU=rx.'ARG3' ;
  69. sinon ;
  70. mess 'Procedure FILTREKE : type argument 3 invalide ' ;
  71. quitter FILTREKE ;
  72. finsi ;
  73. finsi ;
  74.  
  75. si ( ega ('TYPE' rx.'ARG4') 'MOT ') ;
  76. UN=rv.'INCO'.(rx.'ARG4') ;
  77. sinon ;
  78. si ( ega ('TYPE' (rx.'ARG4')) 'CHPOINT') ;
  79. UN=rx.'ARG4' ;
  80. sinon ;
  81. mess 'Procedure FILTREKE : type argument 4 invalide ' ;
  82. quitter FILTREKE ;
  83. finsi ;
  84. finsi ;
  85.  
  86.  
  87. nic=dime (rx.'LISTINCO') ;
  88. si( non ( ega nic 2)) ;
  89. mess 'Procedure FILTREKE : nombre d inconnues incorrect ' nic ;
  90. quitter FILTREKE ;
  91. finsi ;
  92.  
  93. nomi1=extr 1 (rx.'LISTINCO');
  94. nomi2=extr 2 (rx.'LISTINCO');
  95. nom1= mot (text (chai nomi1)) ;
  96. nom2= mot (text (chai nomi2)) ;
  97.  
  98. en=rv.'INCO'.nom2 ;
  99. kn=rv.'INCO'.nom1 ;
  100.  
  101. Rec=100.;
  102. k0 = 1.e-10 ;
  103. cnu=0.09;
  104.  
  105. lcu=extr un 'COMP' ;
  106. mdu=un lcu 'PSCA' un lcu;
  107. mdu=mdu ** 0.5 ;
  108.  
  109. Re=kops (kops (kops mdu '*' L0) '/' nu) '+' (Rec / 10.) ;
  110. a= exp (kops Rec '/' Re ) ;
  111.  
  112. mdu = kops mdu '|<' u1 ;
  113. mdu2= kops mdu '*' mdu ;
  114.  
  115. kn=kops kn '|<' k0 ;
  116. kn=kops kn '>|' mdu2 ;
  117.  
  118. E0= kops (kops kn '**' 1.5) '*' (a / L0) ;
  119. en=kops en '|<' E0 ;
  120.  
  121. rv.'INCO'.nom2=en ;
  122. rv.'INCO'.nom1=kn ;
  123.  
  124. as2 ama1 = 'KOPS' 'MATRIK' ;
  125. *RESPRO as2 ama1 ;
  126.  
  127. FINPROC ;
  128. *------------------------------- FIN PROCEDURE FILTREKE ----------------
  129.  
  130.  
  131. ** CONSTRUCTION DU MAILLAGE
  132. **------------------------
  133.  
  134. **Définition des longueurs
  135. **-----------------------
  136. **hauteur du domaine (mm)
  137. Hdo = 170.;
  138. **hauteur de la colline (mm)
  139. H_ref = 28.;
  140.  
  141. **abscisses caractéristiques (mm)
  142. Xmind = -326.; Xmaxd = 500.; X1d=0.;
  143.  
  144. X2d=9.; X3d= 14.; X4d= 20.;
  145. X5d=30.; X6d=40.; X7d=54.;
  146.  
  147. **abscisses caractéristiques adim
  148. Xmin = Xmind/H_ref ; Xmax = Xmaxd/H_ref; X1=X1d/H_ref;
  149.  
  150. X2=X2d/H_ref; X3= X3d/H_ref; X4=X4d/H_ref;
  151. X5=X5d/H_ref; X6=X6d/H_ref; X7=X7d/H_ref;
  152.  
  153. Hd = Hdo/H_ref ;
  154.  
  155. **Nb de maille
  156. **Nombre de maille entre x=9 et x=14(colline)
  157.  
  158. Nbcol = 1;
  159.  
  160. **Nb de maille entre x=-326 et x =-54 (bas1 & haut4)
  161.  
  162. Nbbas1 = 25;
  163.  
  164. ****Nb de maille entre x=54 et x =500 (bas2 & haut1)
  165.  
  166. Nbbas2 = 40;
  167.  
  168. **Nb de maille entre y=0 et x =170 (sortie et entree)
  169. **
  170. Nbsort = 20 ;
  171.  
  172. **Densité
  173. DIbasG = -1*(Xmin+X7)/Nbbas1 ;
  174.  
  175. DIbas1 = 2*DIbasG ; DFbas1 = 0.5*DIbasG;
  176.  
  177. DIbasD = (Xmax-X7)/Nbbas1 ;
  178. DIbas2 = 0.8*DIbasD ; DFbas2 = 1.5*DIbasD;
  179.  
  180. Dsort = Hd '/' Nbsort ;
  181. DIsort = 0.3* Dsort;
  182. DFsort = 2.* Dsort;
  183.  
  184. **-----------------------------------------
  185. ** Construction de la colline a partir
  186. ** de polynomes du troisième ordre
  187. **-----------------------------------------
  188. **
  189. ** Cote GAUCHE
  190.  
  191. coG60 = 0. (56.39011190988/H_ref);
  192. coG61 = 1. (+2.010520359035);
  193. coG62 = 0. ((1.644919857549e-2)*H_ref) ;
  194. coG63 = 0. (-2.674976141766e-5 *(H_ref**2));
  195.  
  196. lignG6 = COURBE (3*Nbcol) 'DINI'1. 'DFIN'1.
  197. coG60 coG61 coG62 coG63 'PARAMETRE' (-1*X7) (-1*X6) ;
  198.  
  199. coG50 = 0. (17.92461334664/H_ref);
  200. coG51 = 1. -8.743920332081e-1 ;
  201. coG52 = 0. ((-5.567361123058e-2)*H_ref) ;
  202. coG53 = 0. ((-6.277731764683e-4)*(H_ref**2));
  203.  
  204. lignG5 = COURBE (2*Nbcol) 'DINI'1. 'DFIN'1.
  205. coG50 coG51 coG52 coG53 'PARAMETRE' (-1*X6) (-1*X5) ;
  206.  
  207. coG40 = 0. (40.46435022819/H_ref);
  208. coG41 = 1. +1.379581654948;
  209. coG42 = 0. ((1.945884504128e-2)*H_ref);
  210. coG43 = 0. ((+2.070318932190e-4)*(H_ref**2));
  211.  
  212. lignG4 = COURBE (2*Nbcol) 'DINI'1. 'DFIN'1.
  213. coG40 coG41 coG42 coG43 'PARAMETRE' (-1*X5) (-1*X4) ;
  214.  
  215. coG30 = 0. (25.79601052357/H_ref);
  216. coG31 = 1. -8.20669300745e-1;
  217. coG32 = 0. ((-9.055370274339e-2)*H_ref) ;
  218. coG33 = 0. ((-1.626510569859e-3)*(H_ref**2));
  219.  
  220. lignG3 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1.
  221. coG30 coG31 coG32 coG33 'PARAMETRE' (-1*X4) (-1*X3) ;
  222.  
  223. coG20 = 0. ((2.507355893131e+1)/H_ref);
  224. coG21 = 1. -9.754803562315e-1;
  225. coG22 = 0. ((-1.016116352781e-1)*H_ref) ;
  226. coG23 = 0. ((-1.889794677828e-3)*(H_ref**2)) ;
  227.  
  228. lignG2 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1.
  229. coG20 coG21 coG22 coG23 'PARAMETRE' (-1*X3) (-1*X2) ;
  230.  
  231. coG10 = 0. (28/H_ref);
  232. coG11 = 1. 0.;
  233. coG12 = 0. ((6.775070969851e-3)*H_ref) ;
  234. coG13 = 0. ((+2.124527775800e-3)*(H_ref**2)) ;
  235.  
  236. lignG1 = COURBE (2*Nbcol) 'DINI'1. 'DFIN'1.
  237. coG10 coG11 coG12 coG13 'PARAMETRE' (-1*X2) X1 ;
  238.  
  239. colG = lignG6 et lignG5 et lignG4 et lignG3
  240. et lignG2 et lignG1 ;
  241. elim colG 1e-5;
  242.  
  243. *trac colG;
  244.  
  245. **Cote Droit
  246.  
  247. coD10 = 0. (28/H_ref);
  248. coD11 = 1. 0.;
  249. coD12 = 0. ((6.775070969851e-3)*H_ref) ;
  250. coD13 = 0. ((-2.124527775800e-3)*(H_ref**2));
  251.  
  252. lignD1 = COURBE (2*Nbcol) 'DINI'1. 'DFIN'1. coD10
  253. coD11 coD12 coD13 'PARAMETRE' X1 X2 ;
  254.  
  255. coD20 = 0. ((2.507355893131e+1)/H_ref);
  256. coD21 = 1. 9.754803562315e-1;
  257. coD22 = 0. ((-1.016116352781e-1)*H_ref) ;
  258. coD23 = 0. ((1.889794677828e-3)*(H_ref**2)) ;
  259.  
  260. lignD2 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1. coD20 coD21
  261. coD22 coD23 'PARAMETRE' X2 X3 ;
  262.  
  263. coD30 = 0. ((25.79601052357)/H_ref);
  264. coD31 = 1. 8.20669300745e-1;
  265. coD32 = 0. ((-9.055370274339e-2)*H_ref) ;
  266. coD33 = 0. ((1.626510569859e-3)*(H_ref**2)) ;
  267.  
  268. lignD3 = COURBE (1*Nbcol) 'DINI'1. 'DFIN'1. coD30 coD31
  269. coD32 coD33 'PARAMETRE' X3 X4 ;
  270.  
  271. coD40 = 0. (40.46435022819/H_ref);
  272. coD41 = 1. -1.379581654948;
  273. coD42 = 0. ((1.945884504128e-2)*H_ref);
  274. coD43 = 0. ((-2.070318932190e-4)*(H_ref**2));
  275.  
  276. lignD4 = COURBE (2*Nbcol) 'DINI'1. 'DFIN'1. coD40
  277. coD41 coD42 coD43 'PARAMETRE' X4 X5 ;
  278.  
  279. coD50 = 0. (17.92461334664/H_ref);
  280. coD51 = 1. 8.743920332081e-1;
  281. coD52 = 0. ((-5.567361123058e-2)*H_ref) ;
  282. coD53 = 0. ((6.277731764683e-4)*(H_ref**2));
  283.  
  284. lignD5 = COURBE (2*Nbcol) 'DINI'1. 'DFIN'1. coD50 coD51
  285. coD52 coD53 'PARAMETRE' X5 X6 ;
  286.  
  287. coD60 = 0. (56.39011190988/H_ref);
  288. coD61 = 1. -2.010520359035;
  289. coD62 = 0. ((1.644919857549e-2)*H_ref) ;
  290. coD63 = 0. ((2.674976141766e-5)*(H_ref**2)) ;
  291.  
  292. lignD6 = COURBE (3*Nbcol) 'DINI'1. 'DFIN'1. coD60
  293. coD61 coD62 coD63 'PARAMETRE' X6 X7 ;
  294.  
  295. colD = lignD1 et lignD2 et lignD3 et lignD4
  296. et lignD5 et lignD6 ;
  297.  
  298. elim colD 1e-6;
  299.  
  300. colline = colG et colD;
  301.  
  302. elim colline 1e-6;
  303.  
  304. *trac colline;opti donn 5 ;
  305.  
  306. **
  307. **Construction des cotes du domaine
  308. **-----------------------------------
  309. bas1 = (Xmin 0.) d (-1*Nbbas1) ((-1*X7) 0.) DINI DIbas1 DFIN DFbas1;
  310. bas2 = (X7 0.) d (-1*Nbbas2) (Xmax 0.) DINI DIbas2 DFIN DFbas2;
  311.  
  312. bas = bas1 et colline et bas2;
  313.  
  314. elim bas 1e-6;
  315.  
  316. ** Le maillage de la face supérieure doit correspondre avec le
  317. ** maillage de la face inférieure. Pour ne pas avoir de pb dans le
  318. ** post-traitement (définition de lignes a X=Cst) , il est utile d'avoir
  319. ** un maillage rectiligne.
  320.  
  321. *Haut Droite et Haut Gauche
  322. hautD = (Xmax Hd) d (-1*Nbbas2) (X7 Hd) DINI DFbas2 DFIN DIbas2;
  323. hautG = ((-1*X7) Hd) d (-1*Nbbas1) (Xmin Hd) DINI DFbas1 DFIN DIbas1;
  324.  
  325. **cote Droit
  326. haut1D = (X7 Hd) d (3*Nbcol) (X6 Hd);
  327. haut2D = (X6 Hd) d (2*Nbcol) (X5 Hd);
  328. haut3D = (X5 Hd) d (2*Nbcol) (X4 Hd);
  329. haut4D = (X4 Hd) d (1*Nbcol) (X3 Hd);
  330. haut5D = (X3 Hd) d (1*Nbcol) (X2 Hd);
  331. haut6D = (X2 Hd) d (2*Nbcol) (X1 Hd);
  332.  
  333. **Cote Gauche
  334. haut6G = ((-1*X1) Hd) d (2*Nbcol) ((-1*X2) Hd);
  335. haut5G = ((-1*X2) Hd) d (1*Nbcol) ((-1*X3) Hd);
  336. haut4G = ((-1*X3) Hd) d (1*Nbcol) ((-1*X4) Hd);
  337. haut3G = ((-1*X4) Hd) d (2*Nbcol) ((-1*X5) Hd);
  338. haut2G = ((-1*X5) Hd) d (2*Nbcol) ((-1*X6) Hd);
  339. haut1G = ((-1*X6) Hd) d (3*Nbcol) ((-1*X7) Hd);
  340.  
  341. haut = hautD et haut1D et haut2D et haut3D et haut4D et
  342. haut5D et haut6D et haut6G et haut5G et haut4G et
  343. haut3G et haut2G et haut1G et hautG;
  344.  
  345. elim haut 1e-6;
  346.  
  347. sortie1 =(Xmax 0.) d (-1*(Nbsort/2)) (Xmax (Hd/2))
  348. DINI DIsort DFIN DFsort;
  349. sortie2 =(Xmax (Hd/2)) d (-1*(Nbsort/2)) (Xmax Hd)
  350. DINI DFsort DFIN DIsort;
  351.  
  352. sortie = (sortie1 et sortie2);
  353. elim sortie 1e-5;
  354.  
  355. entree1 =(Xmin Hd) d (-1*(Nbsort/2)) (Xmin (Hd/2))
  356. DINI DIsort DFIN DFsort;
  357. entree2 =(Xmin (Hd/2)) d (-1*(Nbsort/2)) (Xmin 0.)
  358. DINI DFsort DFIN DIsort;
  359.  
  360. entree = (entree1 et entree2);
  361. elim entree 1e-5;
  362.  
  363. elim (bas et sortie et haut et entree ) 1e-5;
  364. surf2 = dall bas sortie haut entree plan;
  365.  
  366. ORIENTER surf2;
  367.  
  368. *trac surf2; opti donn 5;
  369.  
  370. ** Le maillage est sans dimension ...
  371.  
  372. **-------------------------------
  373. **CALCUL DE L'ERREUR
  374. ** ------------------------------
  375. 'DEBPROC' ERR;
  376. 'ARGUMENT' rvx*'TABLE';
  377. rv= rvx.'EQEX';
  378.  
  379. DD = rv.PASDETPS.'NUPASDT' ;
  380. NN = DD/5;
  381. L0 = (DD '-' (5*NN)) 'EGA' 0;
  382. 'SI' L0;
  383.  
  384. UN = RV.INCO.'UN' ;
  385. UNM1 = RV.INCO.'UNM1' ;
  386.  
  387. unx= kcht (rv.'DOMAINE') scal sommet (exco 'UX' un) ;
  388. unm1x = kcht (rv.'DOMAINE') scal sommet (exco 'UX' unm1) ;
  389. uny= kcht (rv.'DOMAINE') scal sommet (exco 'UY' un) ;
  390. unm1y = kcht (rv.'DOMAINE') scal sommet (exco 'UY' unm1) ;
  391.  
  392. ERRX = KOPS unx '-' unm1x ;
  393. ERRY = KOPS uny '-' unm1y ;
  394. ELIX = MAXI ERRX 'ABS' ;
  395. ELIY = MAXI ERRY 'ABS' ;
  396. ELIX = (LOG (ELIX + 1.0E-20))/(LOG 20.) ;
  397. ELIY = (LOG (ELIY + 1.0E-20))/(LOG 20.) ;
  398.  
  399. MESSAGE 'ITER ' RV.PASDETPS.'NUPASDT' ' ERREUR LINF ' ELIX ELIY
  400. 'MAX NUT/NU = ' ((MAXI RV.INCO.'NUT')/NU) ;
  401. RV.INCO.'UNM1'= KCHT (rv.'DOMAINE') vect sommet (RV.INCO.'UN') ;
  402. IT = PROG RV.PASDETPS.'NUPASDT' ;
  403.  
  404. ERY = PROG ELIY ;
  405. ERX = PROG ELIX ;
  406.  
  407. RV.INCO.'IT' = (RV.INCO.'IT') ET IT ;
  408. RV.INCO.'ERY' = (RV.INCO.'ERY') ET ERY ;
  409. RV.INCO.'ERX' = (RV.INCO.'ERX') ET ERX ;
  410.  
  411. 'FINSI' ;
  412. 'FINPROC' ;
  413. **------------------------------------------------
  414. **
  415. ** Définition des domaines
  416. **------------------------
  417.  
  418. $surf = DOMA surf2 1.e-5 MACRO;
  419. $bas = DOMA bas INCL $surf 1.e-5 MACRO;
  420. $entree = DOMA entree INCL $surf 1.e-5 MACRO;
  421. $haut = DOMA haut INCL $surf 1.e-5 MACRO;
  422. $sortie = DOMA sortie INCL $surf 1.e-5 MACRO;
  423.  
  424. surf=$surf.maillage;
  425. ORIENTER surf;
  426. entree= $entree.maillage;
  427. haut = $haut.maillage ;
  428. bas = $bas.maillage ;
  429. sortie= $sortie.maillage ;
  430.  
  431. ** CONSTANTES (avec Dim)
  432. **----------------------
  433.  
  434. **Hauteur du canal (m)
  435. Hc = 170e-3;
  436.  
  437. **Hauteur de reference (m)
  438. H_ref = 28.e-3 ;
  439.  
  440. *vitesse de reference (m/s) = Vx(85)
  441. U_ref = 2.147;
  442.  
  443. * constante de Von Karman
  444. C1 = 0.4;
  445.  
  446. * constante du modele k-e
  447. CNU = 0.09;
  448.  
  449. * taux de turbulence
  450. INT = 0.03 ;
  451.  
  452. *vitesse de frottement (aerodynamique) en m/s
  453. Uf = 0.079;
  454.  
  455. Lref = (Hc/H_ref) ;
  456.  
  457. ** Proprietes physiques
  458. **-------------------
  459.  
  460. ** nu de l'eau (m**2/s)
  461. nu_eau = 1e-6;
  462. nu = nu_eau;
  463.  
  464. ** NUT_ent/Nu
  465. alf1 = 40.;
  466.  
  467. **Reynolds de l'écoulement
  468. Re = (U_ref*H_ref)/nu ;
  469. iRe = 1/Re ;
  470.  
  471. ** Coordonnees
  472. **------------
  473.  
  474. ** Ordonnées de tous les points du maillage (sans dim)
  475. Y1 = coor 2 surf;
  476.  
  477. ** Ordonnées de tous les points de l'entree (CHPO et LISTREEL) (sans dim)
  478. Y2 = coor 2 entree;
  479. YC2 = EVOL CHPO Y2 scal (inve entree) ;
  480.  
  481. ** Nombre de noeud en hauteur
  482. NH = DIME (extr YC2 ordo);
  483. *list NH ;
  484.  
  485. ** DISTANCE A LA PAROI (1/2 hauteur de la premiere maille) (sans dim)
  486. **-----------------------------------------------
  487. YP = (EXTR (extr YC2 ordo) 2)/2;
  488.  
  489. *list Yp;
  490. *opti donn 5;
  491.  
  492. ** Prise en compte de Yp dans les ordonnees (y=y+yp)
  493. Yyp = MANU CHPO entree 1 scal YP;
  494. Yyp = Y2 + Yyp;
  495.  
  496. ** CALCUL DES PROFILS D'ENTREE (un peu complique ...)
  497. **---------------------------------------------------
  498. ** (U= a*lnYyp + b) et (K= c*Yyp + d)
  499. ** (a,b,c,d) sont obtenus a partir des profils experimentaux.
  500.  
  501. ** Definition du domaine ou les profils seront imposes
  502. M_imp =entree;
  503.  
  504. ** Calcul du profil symetrique
  505.  
  506. Yc = MANU CHPO entree 1 scal ((85.e-3/H_ref)+YP);
  507. Ysym = Yc -(abs(Yyp - Yc));
  508. Yslog = log Ysym;
  509.  
  510. ** Profil de vitesse (sans dim) : Calcul des coeff a et b
  511. **------------------
  512. ** De maniere grossiere
  513.  
  514. a = 0.873/( (log((85.e-3/H_ref)+YP)) - (log((1.e-3/ H_ref)+YP)) ) ;
  515. *list a;
  516. b= 2.147-( a*(log((85.e-3/H_ref)+YP)) );
  517. *list b ;
  518. b=MANU CHPO entree 1 scal b;
  519.  
  520. *opti donn 5;
  521.  
  522. Uent = (Yslog*a)+b ;
  523. Uent = Uent /U_ref;
  524.  
  525. *List Uent ;
  526.  
  527. *opti donn 5;
  528.  
  529. ** Transformation du chpo scalaire en
  530. ** chpo vecteur + imposition sur le domaine
  531.  
  532. U1 = Uent NOMC 'UX' ;
  533. U1 = KCHT $surf vect sommet U1;
  534.  
  535. ** Valeurs IMPOSEES
  536. UX_IMP = EXCO (REDU U1 M_imp) 'UX' SCAL;
  537. UY_IMP = EXCO (REDU U1 M_imp) 'UY' SCAL;
  538.  
  539. ** Valeurs INITIALES (sans dim)
  540. U_ini = MANU CHPO surf 1 scal 1.;
  541. U_ini = U_ini NOMC 'UX' ;
  542. U_ini = KCHT $surf vect sommet U_ini;
  543.  
  544. *opti donn 5;
  545.  
  546. **ENERGIE CINETIQUE
  547. **-----------------
  548. ** Kadim = K/(U_ref**2)
  549. *
  550. ** Profil ECT : coeff c et d
  551. **------------------
  552.  
  553. c = -1.85184878e-1*H_ref;
  554. d = 1.912227164e-2;
  555. d = MANU CHPO entree 1 scal d;
  556. Kent = ((Ysym*c)+ d);
  557. Kent = (Kent/(U_ref**2));
  558.  
  559. ** Fonction de l'intensite de la turbulence
  560. K2 = (INT)**2 ;
  561. K2 = 'MANU' 'CHPO' surf 1 scal K2;
  562.  
  563. ***INITIALE
  564. K_ini = KCHT $surf scal sommet K2;
  565.  
  566. ***IMPOSEE
  567. K_IMP = KCHT $surf scal sommet K2 Kent ;
  568. K_IMP = EXCO (REDU K_IMP M_imp) SCAL;
  569.  
  570. ** DISSIPATION
  571. **--------------
  572. ** Fonction de K_ini et de NUT
  573. ** K_ini est sans dim
  574. E2 = (CNU*(K_ini**2)*Re)/(alf1);
  575.  
  576. ** En entree, fonction de Kent et d'une longueur caractéristique
  577. ** K_ent est sans dim
  578. E3 = ((Kent**1.5)*H_ref)/(Lref);
  579.  
  580. ** INITIALE
  581. E_ini = KCHT $surf scal sommet E2;
  582.  
  583. ** IMPOSEE
  584. E_IMP= KCHT $surf scal sommet E2 E3 ;
  585. E_IMP=EXCO (REDU E_IMP M_imp) SCAL ;
  586.  
  587. *list E_imp;
  588. *opti donn 5;
  589.  
  590. ** NUT INITIALE
  591. ** ------------------
  592. ** NUTadim = NUT/(Uref*Href)
  593. ** NUadim =1/Re
  594.  
  595. ** Fonction de K et E
  596. *N2=CNU*(K_ini**2)*(E_ini**-1);
  597.  
  598. ** Fonction de nu
  599. N3=KCHT $surf scal sommet (alf1/Re) ;
  600.  
  601. N_ini = noel $surf N3 ;
  602.  
  603. ** U* INITIALES
  604. **-------------
  605. UET_ini1 = kcht $bas scal centre (Uf/U_ref);
  606. UET_ini2 = kcht $haut scal centre (Uf/U_ref);
  607.  
  608. *opti donn 5;
  609.  
  610. ** Module de resolution
  611. **-------------------
  612. RV = EQEX $surf ITMA iitma ALFA 0.8
  613. OPTI 'SUPG' 'RNG'
  614. ZONE $surf OPER ERR
  615. ZONE $surf OPER NSKE iRe 'NUT' INCO 'UN' 'KN' 'EN'
  616. ZONE $bas OPER FPU iRe 'UET1' YP INCO 'UN' 'KN' 'EN'
  617. ZONE $haut OPER FPU iRe 'UET2' YP INCO 'UN' 'KN' 'EN'
  618. ZONE $surf OPER FILTREKE 1. Lref iRe 'UN' INCO 'KN' 'EN';
  619.  
  620. RV = EQEX RV
  621.  
  622. CLIM 'UN' UIMP M_imp UX_imp
  623. CLIM 'UN' VIMP M_imp UY_imp
  624. CLIM 'KN' TIMP M_imp K_imp
  625. CLIM 'EN' TIMP M_imp E_imp ;
  626.  
  627. RVP = eqpr $surf
  628. ZONE $surf OPER PRESSION
  629. ZONE $bas OPER VNIMP 0.
  630. ZONE $haut OPER VNIMP 0.;
  631.  
  632. RV.PRESSION = RVP;
  633.  
  634. RV.INCO = TABLE INCO;
  635. RV.INCO.'UN' = U_ini;
  636. RV.INCO.'KN' = K_ini;
  637. RV.INCO.'EN' = E_ini;
  638. RV.INCO.'NUT' = N_ini;
  639. RV.INCO.'UET1' = UET_ini1;
  640. RV.INCO.'UET2' = UET_ini2;
  641.  
  642. RV.INCO.'UNM1'= KCHT (rv.'DOMAINE') vect sommet (1.E-3 1.E-3) ;
  643. RV.INCO.'IT' = PROG 1 ;
  644. RV.INCO.'ERY' = PROG 0. ;
  645. RV.INCO.'ERX' = PROG 0.;
  646.  
  647. rv.inco.'TABFK' = TABLE 'FiltreK' ;
  648. rv.inco.'TABFE' = TABLE 'FiltreE' ;
  649. rv.inco.'TTF' = TABLE 'Temps' ;
  650. rv.inco.'iTabF' = PROG ;
  651.  
  652.  
  653. lh= (POIN SURF PROC (-2. 3.)) et (POIN SURF PROC (2. 0.5))
  654. et (POIN SURF PROC (2. 3.))
  655. et (POIN SURF PROC (10. 3.)) et (POIN SURF PROC (17. 3.));
  656.  
  657.  
  658. his=khis 'UN' 1 lh
  659. 'UN' 2 lh
  660. 'KN' lh
  661. 'EN' lh;
  662. rv.hist=his;
  663.  
  664. exec RV;
  665.  
  666.  
  667. Fin;
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  

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