Télécharger cl_B_3.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : cl_B_3.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *C***********************************************************************
  5. *C* *
  6. *C* PROJET : Opérateur CLMI *
  7. *C* NOM : cl_B_3.dgibi *
  8. *C* DESCRIPTION : Jeu de données pour le calcul d'une couche limite *
  9. *C* laminaire par la méthode à 2 équations *
  10. *C* LANGAGE : Gibiane *
  11. *C* AUTEUR : Guillaume VENCO - DRN/DMT/SEMT/LTMF *
  12. *C* *
  13. *C***********************************************************************
  14. *C* *
  15. *C* APPELES : Opérateur CLMI *
  16. *C* *
  17. *C***********************************************************************
  18. *C* *
  19. *C* *
  20. *C***********************************************************************
  21. *C* *
  22. *C* VERSION : 17/05/2000 *
  23. *C* CREATION : 18/02/2000 *
  24. *C* *
  25. *C***********************************************************************
  26.  
  27. 'OPTION' dime 2 elem seg2 ;
  28. 'OPTION' trace x ;
  29.  
  30. COMPLET=FAUX;
  31. GRAPH =FAUX;
  32.  
  33. *>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  34. *>>>>>>>>>>>>>Maillage et domaine>>>>>>>>>>>>>>>>>>>>>>>>>>>
  35. *>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  36. P1 = 0.3 0.;
  37. p2 = 10. 0. ;
  38. nb1 = 10;
  39. p1p2 = 'DROIT' p1 p2 'DINI' 0.00001 'DFIN' 1. ;
  40. *p1p2 = 'DROIT' p1 p2 20;
  41. mt = p1p2 ;
  42. * 'TRACER' mt ;
  43.  
  44. *Définition du modèle
  45. Mmt = 'CHANGER' mt 'QUAF' ;
  46. Mail = 'CHANGER' Mmt 'POI1';
  47. Pt0 = Mail 'ELEM' 1;
  48. $mt = 'MODELISER' Mmt 'NAVIER_STOKES' 'LINE' ;
  49.  
  50. *Données
  51. Ue0 = 0.001*(0.3**(1./6));
  52. NU = 1.d-6 ;
  53.  
  54. *valeurs initiales: valeurs données par Falkner-Skan
  55. D20 =0.50895*((0.3*(NU/Ue0))**(0.5));
  56. D30 = 1.60069*D20;
  57.  
  58.  
  59. *Pas de temps et nombre de pas
  60. DT = 0.1;
  61. NBIT = 30;
  62. Si complet;
  63. NBIT = 300;
  64. finsi;
  65.  
  66. *Champ de vitesse constant
  67. K=0.001;
  68. m=(1./6.);
  69. m1= 'DOMA' $mt 'SOMMET';
  70. X = 'COORDONNEE' 1 m1;
  71. X1 = (X**m);
  72. UEX = K*X1;
  73. UE = 'KCHT' $mt scal 'SOMMET' UEX;
  74. X2 = (X**(m-1));
  75. DUEX = K*m*X2 ;
  76. DUE = 'KCHT' $mt scal 'SOMMET' DUEX;
  77.  
  78. *X = 'COORDONNEE' 1 mt;
  79. *UE = 'KCHT' $mt scal 'SOMMET' Ue0;
  80. *DUE = 'KCHT' $mt scal 'SOMMET' 0.;
  81.  
  82. *Coefficients de l'équation
  83. A = 'KCHT' $mt scal sommet 1.;
  84. B = 'KCHT' $mt scal sommet 1.;
  85. SM = 'KCHT' $mt scal sommet 1. ;
  86.  
  87. *>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  88. *>>>>>>>>>>>>Création de la table RV et de la table RK>>>>>>
  89. *>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  90. * dY Cf >>>>>>>>>>>>>>>
  91. *CLMI résout A ---- + B = ---- = SM >>>>>>>>>>>>>>>>
  92. * dX 2 >>>>>>>>>>>>>>>>
  93. * Les coef A, B et SM sont calculés dans >>>>>>>>>>>>>>>>
  94. * CLMI suivant les cas >>>>>>>>>>>>>>>>
  95. *>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  96.  
  97. rv = 'EQEX' 'OMEGA' 1. 'NITER' 1 'ITMA' 0 'FIDT' 1
  98. 'OPTI' 'EF' 'IMPL' 'CENTREE' 'BDF2'
  99. 'ZONE' $mt
  100. 'OPER' 'DFDT' 1. 'D2NM' 'D2N2' DT 'INCO' 'D2' ;
  101. * 'OPER' 'DFDT' 1. 'D2NM' DT 'INCO' 'D2' ;
  102.  
  103. rv = 'EQEX' rv
  104. 'OPTI' 'EF' 'IMPL' 'SUPG'
  105. 'ZONE' $mt
  106. 'OPER' 'CLMI' 3 1 UE DUE 'D2NM' 'D3NM' 'INCO' 'D2';
  107.  
  108. rv = 'EQEX' rv
  109. 'OPTI' 'EF' 'IMPL' 'CENTREE' 'BDF2'
  110. 'ZONE' $mt
  111. * 'OPER' 'DFDT' 1. 'D3NM' DT 'INCO' 'D3' ;
  112. 'OPER' 'DFDT' 1. 'D3NM' 'D3N2' DT 'INCO' 'D3';
  113.  
  114. rv = 'EQEX' rv
  115. 'OPTI' 'EF' 'IMPL' 'SUPG'
  116. 'ZONE' $mt
  117. 'OPER' 'CLMI' 3 2 UE DUE 'D3NM' 'D2NM' 'INCO' 'D3';
  118.  
  119. rv = 'EQEX' rv
  120. 'CLIM' 'D2' 'TIMP' pt0 D20
  121. 'CLIM' 'D3' 'TIMP' pt0 D30;
  122.  
  123.  
  124. rv.inco = 'TABLE' inco ;
  125. rv.inco.'D2'= 'KCHT' $mt scal sommet D20;
  126. rv.inco.'D2NM'= 'KCHT' $mt scal sommet D20;
  127. rv.inco.'D2N2'= 'KCHT' $mt scal sommet D20;
  128. rv.inco.'D3'= 'KCHT' $mt scal sommet D30;
  129. rv.inco.'D3NM'= 'KCHT' $mt scal sommet D30;
  130. rv.inco.'D3NM'= 'KCHT' $mt scal sommet D30;
  131. rv.inco.'D3N2'= 'KCHT' $mt scal sommet D30;
  132.  
  133. ltps = 'PROG' 0. ;
  134. lteta = 'PROG' 0. ;
  135. TPS = 0. ;
  136. nupt = 0 ;
  137. mts1 = 'DOMA' $mt 'SOMMET' ;
  138. pt1 = 'POIN' mts1 2 ;
  139. 'LISTE' pt1 ;
  140.  
  141. *'OPTION' donn 5 ;
  142.  
  143. 'REPETER' BCLT nbit ;
  144. nupt=nupt+1;
  145. tps=tps+dt ;
  146. mess ' Pas de temps DT=' dt ' Temps = ' tps ;
  147. ltps=ltps et (prog tps) ;
  148. EXEC rv ;
  149. teta='EXTRAIRE' (rv.inco.'D2') 'SCAL' pt1 ;
  150. mess ' Teta=' teta ;
  151. lteta= lteta et ('PROG' teta);
  152.  
  153.  
  154. YNM = rv.'INCO'.'D2NM';
  155. ZNM = rv.'INCO'.'D3NM';
  156. rv.'INCO'.'D2N2' = rv.'INCO'.'D2NM';
  157. rv.'INCO'.'D2NM' = rv.'INCO'.'D2';
  158. rv.'INCO'.'D3N2' = rv.'INCO'.'D3NM';
  159. rv.'INCO'.'D3NM' = rv.'INCO'.'D3';
  160.  
  161. 'FIN' bclt ;
  162.  
  163. li4 = 'PROG' 'EXPO' 'A' -1. 'B' 0. ltps;
  164. ev2 = 'EVOL' 'ROUGE' manu ltps li4 ;
  165. evt= evol manu ltps lteta;
  166.  
  167.  
  168.  
  169. *>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  170. *>>>>>>>>>>>>>>>>>>>>>>> résultats>>>>>>>>>>>>>>>>>>>>>>>>>>
  171. *>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  172. absc = 'COORDONNEE' 1 mt;
  173. evx = 'EVOL' 'CHPO' absc mt;
  174. *quantité de mouvement
  175. d21 = (rv.inco.'D2');
  176. ev = 'EVOL' 'ROUGE' 'CHPO' d21 mt;
  177. RD2 = (UE*d21)*(1./NU);
  178. ev = 'EVOL' 'ROUGE' 'CHPO' RD2 mt;
  179. *épaisseur d'énergie cinétique
  180. d31= (rv.inco.'D3');
  181. ev10 = 'EVOL' 'ROUGE' 'CHPO' d31 mt;
  182. RD3 = UE*d31/NU;
  183. ev10 = 'EVOL' 'ROUGE' 'CHPO' RD3 mt;
  184. *Epaisseur de déplacement
  185. d11 = (rv.inco.'D1');
  186. RD1 = UE*d11/NU;
  187. evd1 = 'EVOL' 'ROUGE' 'CHPO' RD1 mt;
  188. *évolution de la vitesse extérieure et du gradient
  189. vit = 'EVOL' 'CHPO' UE mt;
  190. gvit = 'EVOL' 'ROUG' 'CHPO' DUE mt;
  191. *évolution du frottement à la paroi
  192. Cf=2*(0.22052D-6)*((YNM*UE)**(-1));
  193. f = 'EVOL' 'ROUGE' 'CHPO' Cf mt;
  194. *évolution du facteur de forme H final
  195. Hs = rv.inco.'H';
  196. hev = 'EVOL' 'ROUGE''CHPO' Hs mt;
  197. *évolution du facteur H32
  198. H32=d31*(d21**(-1));
  199. ev32 = 'EVOL' 'ROUGE' 'CHPO' H32 mt;
  200.  
  201. *>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  202. *solution théorique de FALKNER SKAN>>>>>>>>>>>>>>>>>>>>>>>>
  203. *>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  204. *caractéristique des solutions de FALKNER-SKAN
  205. cteta=0.50895;
  206. cd1 = 1.20511;
  207. ccf=0.58255;
  208. Hfs=2.5911;
  209. *coefficient de frottement
  210. RX = X*UE*(1./NU);
  211. Cfb = 2*ccf*(RX**(-0.5));
  212. ev3 = 'EVOL' 'BLEU' 'CHPO' Cfb mt;
  213. *quantité de mvt
  214. * Rteta = 0.664(Rx)^0.5
  215. RD2b = (cteta*(RX**0.5));
  216. ev4 = 'EVOL' 'BLEU' 'CHPO' RD2b mt;
  217. *facteur de forme
  218. Hb = 'KCHT' $mt scal sommet Hfs;
  219. ev5 = 'EVOL' 'BLEU' 'CHPO' Hb mt;
  220. *coef H32 théorique
  221. H32b='KCHT' $mt scal sommet 1.60069;
  222. ev11= 'EVOL' 'BLEU' 'CHPO' H32b mt;
  223. *épaisseur de'énergie cinétique
  224. RD3t=H32b*RD2b;
  225. ev12='EVOL' 'BLEU' 'CHPO' RD3t mt;
  226. *épaisseur de déplacement théorique
  227. RD1b = (cd1*(RX**0.5));
  228. evdb = 'EVOL' 'BLEU' 'CHPO' RD1b mt;
  229. *>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  230. *Courbes>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  231. *>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  232. Si Graph ;
  233.  
  234. 'DESSIN' (evt) 'TITR' 'Convergence de la valeur au dernier noeud'
  235. 'TITY' 'Valeurs de Y' 'TITX' 'Temps';
  236.  
  237. 'DESSIN' (vit 'ET' gvit)
  238. 'TITRE' 'Vitesse et gradient de vitesse extérieure';
  239.  
  240. TAB1 = 'TABLE' ;
  241. TAB1.'TITRE' = 'TABLE' ;
  242. TAB1.'TITRE' . 1 = MOT ' Simulation';
  243. TAB1.'TITRE' . 2 = MOT ' Falkner-Skan';
  244.  
  245. 'DESSIN' (f 'ET' ev3) 'TITRE' 'Coefficient de frottement à la paroi'
  246. 'TITX' 'Abscisses'
  247. 'TITY' 'Cf'
  248. 'GRIL'
  249. 'LEGE' TAB1;
  250.  
  251. 'DESSIN' (ev 'ET' ev4) 'TITRE' 'Epaisseur de quantité de mouvement'
  252. 'TITY' 'Rteta'
  253. 'TITX' 'X'
  254. 'GRIL'
  255. 'LEGE' TAB1;
  256.  
  257. 'DESSIN' (ev10 'ET' ev12) 'TITRE' 'Epaisseur d énergie cinétique'
  258. 'TITY' 'Rdelta3'
  259. 'TITX' 'X'
  260. 'GRIL'
  261. 'LEGE' TAB1;
  262.  
  263. 'DESSIN' (evd1 'ET' evdb) 'TITRE' 'Epaisseur de déplacement'
  264. 'TITY' 'Rdelta1'
  265. 'TITX' 'X'
  266. 'GRIL'
  267. 'LEGE' TAB1;
  268.  
  269. 'DESSIN' (hev 'ET' ev5) 'TITRE' 'Evolution du facteur de forme'
  270. 'TITX' 'Abscisses'
  271. 'TITY' 'H'
  272. 'LEGE' TAB1;
  273.  
  274. 'DESSIN' (ev32 'ET' ev11) 'TITRE' 'Evolution du facteur H32'
  275. 'TITX' 'Abscisses'
  276. 'TITY' 'H32'
  277. 'LEGE' TAB1;
  278. Finsi ;
  279.  
  280. *calcul de l'erreur au sens de la norme L2
  281. diag = 'DOMA' $mt 'XXDIAGSI';
  282. r = (RD2-RD2B)**2;
  283. erl2 = 'SOMT'(diag*r);
  284. 'MESSAGE' 'Erreur au sens de la norme L2=';
  285. 'LISTE' erl2;
  286. ************************************************************************
  287. ************************************************************************
  288. *Facteur de forme
  289. x = 'EXTRAIRE' evx 'ABSC';
  290. hs = 'EXTRAIRE' hev 'ORDO';
  291. ht = 'EXTRAIRE' ev5 'ORDO';
  292. nlist = 'DIME' x;
  293. *'OPTION' echo 0;
  294. *'OPTION' impr 'lam3_H.data';
  295. 'REPETER' BLIST nlist;
  296. xi = 'EXTRAIRE' x &BLIST;
  297. hsi = 'EXTRAIRE' hs &BLIST;
  298. hti = 'EXTRAIRE' ht &BLIST;
  299. * 'MESSAGE' ('CHAINE' xi ' ' hsi ' ' hti);
  300. 'FIN' BLIST;
  301. *'OPTION' impr 'Bidon';
  302. *Epaisseur de quantité de mouvement
  303. x = 'EXTRAIRE' evx 'ABSC';
  304. d2s = 'EXTRAIRE' ev 'ORDO';
  305. d2t = 'EXTRAIRE' ev4 'ORDO';
  306. nlist = 'DIME' x;
  307. *'OPTION' echo 0;
  308. *'OPTION' impr 'lam3_D2.data';
  309. 'REPETER' BLIST nlist;
  310. xi = 'EXTRAIRE' x &BLIST;
  311. d2si = 'EXTRAIRE' d2s &BLIST;
  312. d2ti = 'EXTRAIRE' d2t &BLIST;
  313. * 'MESSAGE' ('CHAINE' xi ' ' d2si ' ' d2ti);
  314. 'FIN' BLIST;
  315. *'OPTION' impr 'Bidon';
  316. *Epaisseur d'énergie cinétique
  317. x = 'EXTRAIRE' evx 'ABSC';
  318. d3s = 'EXTRAIRE' ev10 'ORDO';
  319. d3t = 'EXTRAIRE' ev12 'ORDO';
  320. nlist = 'DIME' x;
  321. *'OPTION' echo 0;
  322. *'OPTION' impr 'lam3_D3.data';
  323. 'REPETER' BLIST nlist;
  324. xi = 'EXTRAIRE' x &BLIST;
  325. d3si = 'EXTRAIRE' d3s &BLIST;
  326. d3ti = 'EXTRAIRE' d3t &BLIST;
  327. * 'MESSAGE' ('CHAINE' xi ' ' d3si ' ' d3ti);
  328. 'FIN' BLIST;
  329. *'OPTION' impr 'Bidon';
  330. *Epaisseur de déplacement
  331. x = 'EXTRAIRE' evx 'ABSC';
  332. d1s = 'EXTRAIRE' evd1 'ORDO';
  333. d1t = 'EXTRAIRE' evdb 'ORDO';
  334. nlist = 'DIME' x;
  335. *'OPTION' echo 0;
  336. *'OPTION' impr 'lam3_D1.data';
  337. 'REPETER' BLIST nlist;
  338. xi = 'EXTRAIRE' x &BLIST;
  339. d1si = 'EXTRAIRE' d1s &BLIST;
  340. d1ti = 'EXTRAIRE' d1t &BLIST;
  341. * 'MESSAGE' ('CHAINE' xi ' ' d1si ' ' d1ti);
  342. 'FIN' BLIST;
  343. *'OPTION' impr 'Bidon';
  344.  
  345. *Coeff de frottement
  346. x = 'EXTRAIRE' evx 'ABSC';
  347. cfs = 'EXTRAIRE' f 'ORDO';
  348. cft = 'EXTRAIRE' ev3 'ORDO';
  349. nlist = 'DIME' x;
  350. *'OPTION' echo 0;
  351. *'OPTION' impr 'lam3_CF.data';
  352. 'REPETER' BLIST nlist;
  353. xi = 'EXTRAIRE' x &BLIST;
  354. cfsi = 'EXTRAIRE' cfs &BLIST;
  355. cfti = 'EXTRAIRE' cft &BLIST;
  356. * 'MESSAGE' ('CHAINE' xi ' ' cfsi ' ' cfti);
  357. 'FIN' BLIST;
  358. *'OPTION' impr 'Bidon';
  359.  
  360. 'FIN' ;
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  

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