Télécharger consistence1_VLH.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : consistence1_VLH.dgibi
  2. ***********************************************************
  3. **** APPROCHE VF "Cell-Centred Formulation" pour la ****
  4. **** solution des ****
  5. **** Equations d'Euler pour un gaz parfait ****
  6. **** ****
  7. **** Gaz monoespece "calorically perfect" ****
  8. **** Consistence, methode VLH ****
  9. **** ****
  10. **** A. BECCANTINI DRN/DMT/SEMT/TTMF NOVEMBRE 1998 ****
  11. ***********************************************************
  12.  
  13. 'OPTION' 'DIME' 2 ;
  14. 'OPTION' 'ELEM' 'QUA4' ;
  15. 'OPTION' 'ISOV' 'SULI' ;
  16. 'OPTION' 'ECHO' 0 ;
  17. 'OPTION' 'TRAC' 'X';
  18.  
  19.  
  20. GRAPH = FAUX ;
  21. * GRAPH = VRAI ;
  22.  
  23.  
  24. *
  25. *** Methodes possibles :
  26. *
  27. * 'GODUNOV'
  28. * 'VANLEER'
  29. * 'VLH'
  30. * 'HUSVL'
  31. * 'HUSVLH'
  32. *
  33.  
  34. METO = 'VLH' ;
  35.  
  36. ************
  37. * MAILLAGE *
  38. ************
  39.  
  40. NX = 5 ;
  41.  
  42. NY = 1 ;
  43.  
  44. L = 1.0D0 ;
  45. DX = L/NX/2.0D0 ;
  46. H = DX ;
  47.  
  48. xD = 0.5D0*L ;
  49. xG = -1.0D0*xD ;
  50. yH = 0.5D0*H ;
  51. yB = -1.0D0*yH ;
  52.  
  53. A1 = xG yB ;
  54. A2 = 0.0D0 yB ;
  55. A3 = xD yB ;
  56. A4 = xD yH ;
  57. A5 = 0.0D0 yH ;
  58. A6 = xG yH ;
  59. VECTG = XG 0.0D0 ;
  60. VECTD = XD 0.0D0 ;
  61.  
  62. xBG = xG-DX ;
  63. XBD = xD+DX ;
  64.  
  65. B1 = xBG yB ;
  66. B2 = xBG yH ;
  67. B3 = xBD yB ;
  68. B4 = xBD yH ;
  69.  
  70. BAS1 = A1 'DROI' NX A2 ;
  71. BAS2 = A2 'DROI' NX A3 ;
  72. HAU2 = A4 'DROI' NX A5 ;
  73. HAU1 = A5 'DROI' NX A6 ;
  74. LATG = B1 'DROI' NY B2 ;
  75. LAT1 = A1 'DROI' NY A6 ;
  76. LAT12 = A2 'DROI' NY A5 ;
  77. LAT2 = A3 'DROI' NY A4 ;
  78. LATD = B3 'DROI' NY B4 ;
  79.  
  80.  
  81. DOM1 = LAT12 'TRANSLATION' NX VECTG ;
  82.  
  83. DOM2 = LAT12 'TRANSLATION' NX VECTD ;
  84.  
  85. VECTFG = (-1.0D0*DX) 0.0D0;
  86. VECTFD = DX 0.0D0;
  87. VECTBH = 0.0D0 (yH '-' yB);
  88. VECTHB = 0.0D0 (yB '-' yH);
  89.  
  90. FRONTG1 = LAT1 'TRANSLATION' 1 VECTFG ;
  91. DCEL1 = FRONTG1 'ET' DOM1;
  92. FRONTG2 = DCEL1 'PLUS' VECTBH;
  93. FRONTG3 = DCEL1 'PLUS' VECTHB;
  94. FRONTG = (FRONTG1 'ET' FRONTG2 'ET' FRONTG3) 'COULEUR' 'ROUG';
  95. 'ELIMINATION' 0.0001 FRONTG ;
  96.  
  97.  
  98.  
  99. FRONTD1 = LAT2 'TRANSLATION' 1 VECTFD;
  100. DCEL2 = FRONTD1 'ET' DOM2;
  101. FRONTD2 = DCEL2 'PLUS' VECTBH;
  102. FRONTD3 = DCEL2 'PLUS' VECTHB;
  103. FRONTD = (FRONTD1 'ET' FRONTD2 'ET' FRONTD3) 'COULEUR' 'VERT';
  104. 'ELIMINATION' 0.0001 FRONTD ;
  105.  
  106.  
  107. *
  108. *** Rotation
  109. *
  110.  
  111. ANGLE = 30.0D0;
  112. ORIG = 0.0D0 0.0D0;
  113.  
  114. 'MESSAGE' ;
  115. 'MESSAGE' ('CHAINE' 'ANGLE = ' ANGLE);
  116. 'MESSAGE' ;
  117.  
  118. DOM1 = DOM1 'TOURNER' ANGLE ORIG;
  119. DOM2 = DOM2 'TOURNER' ANGLE ORIG;
  120. FRONTG = FRONTG 'TOURNER' ANGLE ORIG;
  121. FRONTD = FRONTD 'TOURNER' ANGLE ORIG;
  122.  
  123. DOMINT = DOM1 'ET' DOM2 ;
  124. 'ELIMINATION' DOMINT 1D-6 ;
  125.  
  126. FRONT = FRONTG ET FRONTD ;
  127. 'ELIMINATION' FRONT 1D-6 ;
  128.  
  129. DOMTOT = DOMINT ET FRONT ;
  130. 'ELIMINATION' DOMTOT 1D-6 ;
  131.  
  132. 'SI' GRAPH;
  133. 'TRACER' DOMTOT 'TITRE' 'Maillage' ;
  134. 'FINSI' ;
  135. $DOMTOT = 'MODE' DOMTOT 'EULER' ;
  136. $DOMINT = 'MODE' DOMINT 'EULER' ;
  137. $DOM1 = 'MODE' DOM1 'EULER' ;
  138. $DOM2 = 'MODE' DOM2 'EULER' ;
  139. $FRONTG = 'MODE' FRONTG 'EULER' ;
  140. $FRONTD = 'MODE' FRONTD 'EULER' ;
  141. $FRONT = 'MODE' FRONT 'EULER' ;
  142.  
  143. TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
  144. TDOMINT = 'DOMA' $DOMINT 'VF' ;
  145. TDOM1 = 'DOMA' $DOM1 'VF' ;
  146. TDOM2 = 'DOMA' $DOM2 'VF' ;
  147. TFRONTG = 'DOMA' $FRONTG 'VF' ;
  148. TFRONTD = 'DOMA' $FRONTD 'VF' ;
  149. TFRONT = 'DOMA' $FRONT 'VF' ;
  150.  
  151. MDOMTOT = TDOMTOT . 'QUAF' ;
  152. MDOM1 = TDOM1 . 'QUAF' ;
  153. MDOM2 = TDOM2 . 'QUAF' ;
  154. MDOMINT = TDOMINT . 'QUAF' ;
  155. MFRONTG = TFRONTG . 'QUAF' ;
  156. MFRONTD = TFRONTD . 'QUAF' ;
  157. MFRONT = TFRONT . 'QUAF' ;
  158. 'ELIM' (MDOMTOT 'ET' MDOM1 'ET' MDOM2 'ET' MDOMINT 'ET' MFRONTG
  159. 'ET' MFRONTD 'ET' MFRONT) 1.E-5 ;
  160.  
  161. ************************************************************
  162. * CONDITIONS INITIALES ET LIMITES. *
  163. ************************************************************
  164.  
  165. gamgd = 1.4D0;
  166.  
  167. *
  168. *** Etat gauche
  169. *
  170.  
  171. rog = 1.11;
  172. ung = 21.3;
  173. utg = 11.0;
  174. pg = 1234.7;
  175.  
  176.  
  177. rouxg = ((ung '*' ('COS' ANGLE)) '-'
  178. (utg '*' ('SIN' ANGLE))) '*' rog ;
  179. rouyg = ((ung '*' ('SIN' ANGLE)) '+'
  180. (utg '*' ('COS' ANGLE))) '*' rog;
  181.  
  182. recing = 0.5D0 '*' rog '*' ((ung '*' ung) '+' (utg '*' utg));
  183. retg = (pg '/' (gamgd '-' 1.0)) '+' recing;
  184.  
  185. *
  186. *** Etat droite
  187. *
  188.  
  189. rod = 1.11;
  190. und = 21.3;
  191. utd = 11.0;
  192. pd = 1234.7;
  193.  
  194.  
  195. rouxd = ((und '*' ('COS' ANGLE)) '-'
  196. (utd '*' ('SIN' ANGLE))) '*' rod;
  197. rouyd = ((und '*' ('SIN' ANGLE)) '+'
  198. (utd '*' ('COS' ANGLE))) '*' rod;
  199.  
  200. recind = 0.5D0 '*' rod '*' ((und '*' und) '+' (utd '*' utd));
  201. retd = (pd '/' (gamgd '-' 1.0)) '+' recind;
  202.  
  203. *
  204. *** gamma
  205. *
  206.  
  207. GAMMA = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' gamgd;
  208.  
  209. *
  210. *** ro
  211. *
  212.  
  213. RO_f1 = 'KCHT' $FRONTG 'SCAL' 'CENTRE' rog ;
  214. RO_f2 = 'KCHT' $FRONTD 'SCAL' 'CENTRE' rod ;
  215. RO_f = 'KCHT' $FRONT 'SCAL' 'CENTRE' (RO_f1 'ET' RO_f2) ;
  216.  
  217. RO_i1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' rog;
  218. RO_i2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' rod;
  219. RO_i = 'KCHT' $DOMINT 'SCAL' 'CENTRE' (RO_i1 'ET' RO_i2);
  220.  
  221. RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (RO_i 'ET' RO_f) ;
  222.  
  223.  
  224. *
  225. *** ro u, ro v
  226. *
  227.  
  228. GN_f1 = 'KCHT' $FRONTG 'VECT' 'CENTRE' (rouxg rouyg);
  229. GN_f2 = 'KCHT' $FRONTD 'VECT' 'CENTRE' (rouxd rouyd);
  230. GN_f = 'KCHT' $FRONT 'VECT' 'CENTRE' (GN_f1 'ET' GN_f2);
  231.  
  232. GN_i1 = 'KCHT' $DOM1 'VECT' 'CENTRE' (rouxg rouyg);
  233. GN_i2 = 'KCHT' $DOM2 'VECT' 'CENTRE' (rouxd rouyd);
  234. GN_i = 'KCHT' $DOMINT 'VECT' 'CENTRE' (GN_i1 'ET' GN_i2);
  235.  
  236. GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' (GN_i 'ET' GN_f) ;
  237.  
  238.  
  239. *
  240. *** ro e
  241. *
  242.  
  243. RE_f1 = 'KCHT' $FRONTG 'SCAL' 'CENTRE' retg ;
  244. RE_f2 = 'KCHT' $FRONTD 'SCAL' 'CENTRE' retd ;
  245. RE_f = 'KCHT' $FRONT 'SCAL' 'CENTRE' (RE_f1 'ET' RE_f2) ;
  246.  
  247. RE_i1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' retg ;
  248. RE_i2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' retd ;
  249. RE_i = 'KCHT' $DOMINT 'SCAL' 'CENTRE' (RE_i1 'ET' RE_i2);
  250.  
  251. RETN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (RE_i ET RE_f) ;
  252.  
  253. ********************************************************
  254. *** CREATION DE 'MODE' POUR GRAPHIQUER LE CHAMELEM ***
  255. ********************************************************
  256.  
  257. MOD1 = 'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE') 'THERMIQUE';
  258.  
  259. *
  260. *** GRAPHIQUE DES C.I.
  261. *
  262.  
  263. 'SI' GRAPH;
  264. *
  265. *** CREATION DE CHAMELEM
  266. *
  267. CHM_RN = 'KCHA' $DOMTOT 'CHAM' RN;
  268. CHM_GN = 'KCHA' $DOMTOT 'CHAM' GN ;
  269. CHM_RETN = 'KCHA' $DOMTOT 'CHAM' RETN;
  270. TRAC CHM_RN MOD1 'TITR' ('CHAINE' 'RHO at t=' 0.0);
  271. TRAC CHM_RETN MOD1 'TITR' ('CHAINE' 'RHOET at t=' 0.0);
  272. TRAC CHM_GN MOD1 'TITR' ('CHAINE' 'RHOU at t=' 0.0);
  273. 'FINSI' ;
  274.  
  275. ZERO =1.0D-12 ;
  276. TFINAL = 100. ;
  277. NITER = 50 ;
  278. SAFFAC = 0.5 ;
  279. *
  280. RN0 = 'COPIER' RN ;
  281. GN0 = 'COPIER' GN ;
  282. RETN0 = 'COPIER' RETN ;
  283. *
  284. TPS = 0. ;
  285. 'REPETER' BL1 NITER ;
  286. *
  287. **** Primitive variables
  288. *
  289. VN PN = 'PRIM' 'PERFMONO' RN GN RETN GAMMA ;
  290. ROF VITF PF GAMF = 'PRET' 'PERFMONO' 1 1
  291. $DOMTOT RN VN PN GAMMA;
  292. RESIDU DELTAT = 'KONV' 'VF' 'PERFMONO' 'RESI' METO
  293. $DOMTOT ('MOTS' 'RN' 'RUX' 'RUY' 'RETN')
  294. ROF VITF PF GAMF ;
  295. DT_CON = SAFFAC '*' DELTAT ;
  296. *
  297. **** The time step linked to tps
  298. *
  299. DTTPS = (TFINAL '-' TPS) * (1. '+' ZERO) ;
  300. *
  301. **** Total time step
  302. *
  303. DTMIN = 'MINIMUM' ('PROG' DT_CON DTTPS) ;
  304. *
  305. **** Increment of the variables (convection)
  306. *
  307. RESIDU = DTMIN '*' RESIDU ;
  308. *
  309. DRN = 'REDU' ('EXCO' 'RN' RESIDU 'SCAL') ('DOMA' $DOMINT 'CENTRE');
  310. DGN = 'REDU' ('EXCO' ('MOTS' 'RUX' 'RUY') RESIDU ('MOTS' 'UX' 'UY'))
  311. ('DOMA' $DOMINT 'CENTRE') ;
  312. DRETN = 'REDU' ('EXCO' 'RETN' RESIDU 'SCAL')
  313. ('DOMA' $DOMINT 'CENTRE') ;
  314. *
  315. TPS = TPS '+' DTMIN ;
  316. RN = RN '+' DRN ;
  317. GN = GN '+' DGN ;
  318. RETN = RETN '+' DRETN ;
  319. *
  320. 'SI' (((&BL1 '/' 20) '*' 20) 'EGA' &BL1) ;
  321. 'MESSAGE' ('CHAINE' 'ITER =' &BL1 ' TPS =' TPS) ;
  322. 'FINSI' ;
  323.  
  324. 'SI' (TPS > TFINAL) ;
  325. 'QUITTER' BL1 ;
  326. 'FINSI' ;
  327. 'FIN' BL1 ;
  328.  
  329. *
  330. *** GRAPHIQUE DES SOLUTIONS
  331. *
  332.  
  333. 'SI' (GRAPH);
  334. *
  335. *** CREATION DE CHAMELEM
  336. *
  337. CHM_RN = 'KCHA' $DOMTOT 'CHAM' RN ;
  338. CHM_GN = 'KCHA' $DOMTOT 'CHAM' GN ;
  339. CHM_RETN = 'KCHA' $DOMTOT 'CHAM' RETN ;
  340. TRAC CHM_RN MOD1 'TITR' ('CHAINE' 'RHO at t=' TPS);
  341. TRAC CHM_RETN MOD1 'TITR' ('CHAINE' 'RHOET at t=' TPS);
  342. TRAC CHM_GN MOD1 'TITR' ('CHAINE' 'RHOU at t=' TPS);
  343. 'FINSI' ;
  344. *
  345. *** Critere de control
  346. *
  347. ERRO = 'MAXIMUM' (RN '-' RN0) 'ABS' ;
  348. 'SI' (ERRO '>' 1.0D-6) ;
  349. 'ERREUR' 5 ;
  350. 'FINSI' ;
  351.  
  352. 'FIN' ;
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  

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