Télécharger comp_perfmult_perftemp.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : comp_perfmult_perftemp.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. **********************************************************
  5. **** APPROCHE VF "Cell-Centred Formulation" pour la ****
  6. **** solution des ****
  7. **** Equations d'Euler pour un gaz parfait ****
  8. **** OPERATEURS PRIM, PRET, KONV ****
  9. **** ****
  10. **** Cas gaz multi-especes: ****
  11. **** Comparaison calorically perfect et thermally ****
  12. **** perfect ****
  13. **** ****
  14. **** Methodes: VLH ****
  15. **** ****
  16. **** A. BECCANTINI DRN/DMT/SEMT/TTMF DECEMBRE 1998 ****
  17. **********************************************************
  18. *MGOU : modif gounand 16/2/99
  19. *MGOU : augmentation légère des tolérances suite à
  20. *MGOU : l'évolution de redlec.eso (lecture des réels à
  21. *MGOU : partir de Gibiane...
  22.  
  23. 'OPTION' 'DIME' 2 ;
  24. 'OPTION' 'ELEM' QUA4 ;
  25. 'OPTION' 'ECHO' 0 ;
  26. 'OPTION' 'TRAC' 'X' ;
  27.  
  28. *
  29. *** GRAPH
  30. *
  31.  
  32. GRAPH = FAUX ;
  33. * GRAPH = VRAI ;
  34.  
  35. ***********************
  36. **** LA TABLE PGAZ ****
  37. ***********************
  38.  
  39. * Modele gaz "thermally perfect"
  40.  
  41. PGAZ = 'TABLE' ;
  42.  
  43. *
  44. **** Ordre des polynoms cv_i
  45. *
  46.  
  47. PGAZ . 'NORD' = 0 ;
  48.  
  49. *
  50. **** Especes qui sont dans les equations d'Euler
  51. *
  52.  
  53. PGAZ . 'ESPEULE' = 'MOTS' 'H2 ' 'O2 ' 'H2O ' ;
  54.  
  55. *
  56. **** Espece qui n'y est pas
  57. *
  58.  
  59.  
  60. PGAZ . 'ESPNEULE' = 'N2 ';
  61.  
  62. *
  63.  
  64. PGAZ . 'H2 ' = 'TABLE' ;
  65. PGAZ . 'H2O ' = 'TABLE' ;
  66. PGAZ . 'N2 ' = 'TABLE' ;
  67. PGAZ . 'O2 ' = 'TABLE' ;
  68.  
  69. *
  70. **** R (J/Kg/K)
  71. *
  72.  
  73. PGAZ . 'H2 ' . 'R' = 4130.0 ;
  74. PGAZ . 'H2O ' . 'R' = 461.4 ;
  75. PGAZ . 'N2 ' . 'R' = 296.8 ;
  76. PGAZ . 'O2 ' . 'R' = 259.8 ;
  77.  
  78.  
  79. *
  80. **** Regressions polynomials
  81. *
  82.  
  83. PGAZ . 'H2 ' . 'A' = 'PROG' .14571861D+05 ;
  84. PGAZ . 'H2O ' . 'A' = 'PROG' .26589930D+04 ;
  85. PGAZ . 'N2 ' . 'A' = 'PROG' .10024563D+04 ;
  86. PGAZ . 'O2 ' . 'A' = 'PROG' .92885670D+03 ;
  87.  
  88. *
  89. **** "Enthalpies" (ou energies) de formations a OK (J/Kg)
  90. * Note: ce sont des entites numeriques
  91.  
  92. PGAZ . 'H2 ' . 'H0K' = -4.195D6 ;
  93. PGAZ . 'H2O ' . 'H0K' = -1.395D7 ;
  94. PGAZ . 'N2 ' . 'H0K' = -2.953D5 ;
  95. PGAZ . 'O2 ' . 'H0K' = -2.634D5 ;
  96.  
  97.  
  98. * Modele gaz "calorically perfect"
  99.  
  100. PGAZ2 = 'TABLE' ;
  101.  
  102.  
  103. PGAZ2 . 'CV' = 'TABLE' ;
  104. PGAZ2 . 'CV' . 'H2 ' = .14571861D+05 ;
  105. PGAZ2 . 'CV' . 'O2 ' = .92885670D+03 ;
  106. PGAZ2 . 'CV' . 'H2O ' = .26589930D+04 ;
  107. PGAZ2 . 'CV' . 'N2 ' = .10024563D+04;
  108.  
  109. PGAZ2 . 'CP' = 'TABLE' ;
  110. PGAZ2 . 'CP' . 'H2 ' = (PGAZ2 . 'CV' . 'H2 ')
  111. '+' (PGAZ . 'H2 ' . 'R') ;
  112. PGAZ2 . 'CP' . 'N2 ' = (PGAZ2 . 'CV' . 'N2 ')
  113. '+' (PGAZ . 'N2 ' . 'R') ;
  114. PGAZ2 . 'CP' . 'O2 ' = (PGAZ2 . 'CV' . 'O2 ')
  115. '+' (PGAZ . 'O2 ' . 'R') ;
  116. PGAZ2 . 'CP' . 'H2O ' = (PGAZ2 . 'CV' . 'H2O ')
  117. '+' (PGAZ . 'H2O ' . 'R') ;
  118.  
  119. *
  120. **** Especes qui sont dans les equations d'Euler
  121. *
  122.  
  123. PGAZ2 . 'ESPEULE' = 'MOTS' 'H2 ' 'O2 ' 'H2O ' ;
  124.  
  125. *
  126. **** Espece qui n'y est pas
  127. *
  128.  
  129. PGAZ2 . 'ESPNEULE' = 'N2 ';
  130.  
  131. ***************************
  132. ***** DOMAINE SPATIAL ****
  133. ***************************
  134.  
  135.  
  136. A1 = 0.0D0 0.0D0;
  137. A2 = 1.0D0 0.0D0;
  138. A3 = 2.0D0 0.0D0;
  139. A4 = 2.0D0 1.0D0;
  140. A5 = 1.0D0 1.0D0;
  141. A6 = 0.0D0 1.0D0;
  142.  
  143. L12 = A1 'DROIT' 1 A2;
  144. L23 = A2 'DROIT' 1 A3;
  145. L34 = A3 'DROIT' 1 A4;
  146. L45 = A4 'DROIT' 1 A5;
  147. L56 = A5 'DROIT' 1 A6;
  148. L61 = A6 'DROIT' 1 A1;
  149. L25 = A2 'DROIT' 1 A5;
  150.  
  151.  
  152. DOM10 = 'DALL' L12 L25 L56 L61
  153. 'PLANE';
  154. DOM20 = 'DALL' L23 L34 L45 ('INVERSE' L25)
  155. 'PLANE';
  156. *
  157. *** Point ou on controlle la consistence
  158. *
  159.  
  160. P10 = 1.0 0.5;
  161.  
  162. *
  163. *** Etats gauche et droite (on controlle que avec XLDB on a le bon truc)
  164. *
  165.  
  166. rog = 11.412 ;
  167. pg = 11.17D6 ;
  168. ung = 18.34 ;
  169. utg = 118.2 ;
  170. yh2g = 0.11 ;
  171. yh2Og = 0.12 ;
  172. yN2g = 0.115 ;
  173. yO2g = 1 '-' (yh2g '+' yh2Og '+' yn2g) ;
  174.  
  175. rod = 1.412 ;
  176. pd = 1.17D6 ;
  177. und = 8.34 ;
  178. utd = 18.2 ;
  179. yh2d = 0.1 ;
  180. yh2Od = 0.2 ;
  181. yN2d = 0.15 ;
  182. yO2d = 1 '-' (yh2d '+' yh2Od '+' yn2d) ;
  183.  
  184.  
  185. *
  186. *** Calcul du gamg, gamd, retg, retd
  187. *
  188.  
  189. rcvg = (yh2g * ('EXTRAIRE' 1 (PGAZ . 'H2 ' . 'A'))) '+'
  190. (yH2Og * ('EXTRAIRE' 1 (PGAZ . 'H2O ' . 'A'))) '+'
  191. (yO2g * ('EXTRAIRE' 1 (PGAZ . 'O2 ' . 'A'))) '+'
  192. (yN2g * ('EXTRAIRE' 1 (PGAZ . 'N2 ' . 'A'))) ;
  193.  
  194. rtotg = (yh2g * (PGAZ . 'H2 ' . 'R')) +
  195. (yH2Og * (PGAZ . 'H2O ' . 'R')) '+'
  196. (yO2g * (PGAZ . 'O2 ' . 'R')) '+'
  197. (yN2g * (PGAZ . 'N2 ' . 'R')) ;
  198.  
  199. gamg = (rcvg '+' rtotg) '/' rcvg ;
  200.  
  201. tg = pg '/' (rtotg '*' rog) ;
  202.  
  203. etherg = rtotg '*' tg '/' (gamg '-' 1.0) ;
  204.  
  205. ecin = 0.5 '*' ((ung '*' ung) '+' (utg '*' utg)) ;
  206.  
  207. retg = rog '*' (etherg '+' ecin) ;
  208.  
  209. rcvd = (yh2d * ('EXTRAIRE' 1 (PGAZ . 'H2 ' . 'A'))) +
  210. (yH2Od * ('EXTRAIRE' 1 (PGAZ . 'H2O ' . 'A'))) '+'
  211. (yO2d * ('EXTRAIRE' 1 (PGAZ . 'O2 ' . 'A'))) '+'
  212. (yN2d * ('EXTRAIRE' 1 (PGAZ . 'N2 ' . 'A'))) ;
  213.  
  214. rtotd = (yh2d * (PGAZ . 'H2 ' . 'R')) +
  215. (yH2Od * (PGAZ . 'H2O ' . 'R')) '+'
  216. (yO2d * (PGAZ . 'O2 ' . 'R')) '+'
  217. (yN2d * (PGAZ . 'N2 ' . 'R')) ;
  218.  
  219. gamd = (rcvd '+' rtotd) '/' rcvd ;
  220.  
  221. td = pd '/' (rtotd '*' rod) ;
  222.  
  223. etherd = rtotd '*' td '/' (gamd '-' 1.0) ;
  224.  
  225. ecin = 0.5 '*' ((und '*' und) '+' (utd '*' utd)) ;
  226.  
  227. retd = rod '*' (etherd '+' ecin) ;
  228.  
  229.  
  230. ****************************************************
  231. ****************************************************
  232. ******** Boucle sur les angles *********
  233. ****************************************************
  234. ****************************************************
  235.  
  236. ANGLE = 11.3 ;
  237.  
  238. *
  239. *** Rotation
  240. *
  241.  
  242.  
  243. ORIG = 0.0D0 0.0D0;
  244.  
  245. MESSAGE;
  246. MESSAGE (CHAIN 'Angle de rotation= ' ANGLE);
  247. MESSAGE;
  248.  
  249. DOM1 = DOM10 'TOURNER' ANGLE ORIG;
  250. DOM2 = DOM20 'TOURNER' ANGLE ORIG;
  251. P1 = P10 'TOURNER' ANGLE ORIG;
  252.  
  253. 'ELIMINATION' (DOM1 ET DOM2) 1D-6;
  254. DOMTOT = DOM1 ET DOM2;
  255.  
  256. $DOMTOT = 'MODE' DOMTOT 'EULER' ;
  257. $DOM1 = 'MODE' DOM1 'EULER' ;
  258. $DOM2 = 'MODE' DOM2 'EULER' ;
  259.  
  260. TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
  261. TDOM1 = 'DOMA' $DOM1 'VF' ;
  262. TDOM2 = 'DOMA' $DOM2 'VF' ;
  263.  
  264. MDOMTOT = TDOMTOT . 'QUAF' ;
  265. MDOM1 = TDOM1 . 'QUAF' ;
  266. MDOM2 = TDOM2 . 'QUAF' ;
  267. 'ELIM' (MDOMTOT 'ET' MDOM1 'ET' MDOM2) 1.E-5 ;
  268.  
  269. 'SI' GRAPH;
  270. 'TRACER' (('DOMA' $DOMTOT 'MAILLAGE') 'ET' ('DOMA' $DOMTOT 'FACEL')
  271. 'ET' P1) 'TITRE' 'Domaine et FACEL';
  272. 'FINSI' ;
  273.  
  274. *
  275. **** Redefinition de P1 dans $DOMTOT . 'FACE'
  276. *
  277.  
  278. P1 = ('DOMA' $DOMTOT 'FACE') 'POIN' 'PROC' P1;
  279.  
  280. ***********************
  281. **** Les CHPOINTs ****
  282. ***********************
  283.  
  284. ruxg = ((ung '*' ('COS' ANGLE)) '-' (utg '*' ('SIN' ANGLE))) '*' rog ;
  285. ruyg = ((ung '*' ('SIN' ANGLE)) '+' (utg '*' ('COS' ANGLE))) '*' rog ;
  286.  
  287. ruxd = ((und '*' ('COS' ANGLE)) '-' (utd '*' ('SIN' ANGLE))) '*' rod ;
  288. ruyd = ((und '*' ('SIN' ANGLE)) '+' (utd '*' ('COS' ANGLE))) '*' rod ;
  289.  
  290. RN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' rog ;
  291. RN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' rod ;
  292. RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (RN1 'ET' RN2);
  293.  
  294. GN1 = 'KCHT' $DOM1 'VECT' 'CENTRE' (ruxg ruyg);
  295. GN2 = 'KCHT' $DOM2 'VECT' 'CENTRE' (ruxd ruyd);
  296. GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' (GN1 'ET' GN2);
  297.  
  298. TN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' tg ;
  299. TN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' td ;
  300. TN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (TN1 'ET' TN2);
  301.  
  302. PN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' pg ;
  303. PN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' pd ;
  304. PN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (PN1 'ET' PN2);
  305.  
  306. EN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' retg ;
  307. EN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' retd ;
  308. RET = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (EN1 'ET' EN2);
  309.  
  310. GAMN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' gamg ;
  311. GAMN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' gamd ;
  312. GAMN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (GAMN1 'ET' GAMN2);
  313.  
  314. * attention: PGAZ . 'ESPEULE' = 'MOTS' 'H2 ' 'O2 ' 'H2O ' ;
  315.  
  316. RYH2 = ('KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'H2 ' (rog '*' yh2g))
  317. 'ET'
  318. ('KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'H2 ' (rod '*' yh2d)) ;
  319.  
  320. RYO2 = ('KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'O2 ' (rog '*' yo2g))
  321. 'ET'
  322. ('KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'O2 ' (rod '*' yo2d)) ;
  323.  
  324. RYH2O = ('KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'H2O ' (rog '*' yh2og))
  325. 'ET'
  326. ('KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'H2O ' (rod '*' yh2od));
  327.  
  328. RYN = RYH2 'ET' RYO2 'ET' RYH2O ;
  329.  
  330.  
  331. ***************************
  332. **** L'operateur PRIM****
  333. ***************************
  334.  
  335. VN1 PN1 TN1 YN1 GAMNEW1 = 'PRIM' 'PERFTEMP' PGAZ RN GN RET RYN ;
  336.  
  337. VN2 PN2 TN2 YN2 GAMNEW2 = 'PRIM' 'PERFMULT' PGAZ2 RN GN RET RYN ;
  338.  
  339. IMAX = 'MAXIMUM' ('PROG'
  340. ('MAXIMUM' (VN1 '-' VN2) 'ABS' )
  341. ('MAXIMUM' (PN '-' PN1) 'ABS' )
  342. ('MAXIMUM' (PN '-' PN2) 'ABS' )
  343. ('MAXIMUM' (TN '-' TN1) 'ABS' )
  344. ('MAXIMUM' (TN '-' TN2) 'ABS' )
  345. ('MAXIMUM' (YN1 '-' YN2) 'ABS' )
  346. ('MAXIMUM' (GAMNEW1 '-' GAMN) 'ABS' )
  347. ('MAXIMUM' (GAMNEW2 '-' GAMN) 'ABS' )) ;
  348.  
  349. *MGOU : 'SI' (IMAX > 1.0D-8) ;
  350. 'SI' (IMAX > 1.5D-8) ;
  351. 'ERREUR' 5 ;
  352. 'FINSI' ;
  353.  
  354. ***************************
  355. **** L'operateur PRET****
  356. ***************************
  357.  
  358. ORDESP = 1;
  359. ORDTEM = 1;
  360.  
  361. ROF VITF PF YF = 'PRET' 'PERFTEMP' ORDESP ORDTEM
  362. $DOMTOT PGAZ RN VN1 PN1 YN1 ;
  363.  
  364. ROF2 VITF2 PF2 YF2 GAMF = 'PRET' 'PERFMULT' ORDESP ORDTEM
  365. $DOMTOT RN VN2 PN2 YN2 GAMNEW2 ;
  366.  
  367. IMAX = 'MAXIMUM' ('PROG'
  368. ('MAXIMUM' (ROF '-' ROF2) 'ABS' )
  369. ('MAXIMUM' (VITF2 '-' VITF) 'ABS' )
  370. ('MAXIMUM' (PF2 '-' PF) 'ABS' )
  371. ('MAXIMUM' (YF '-' YF2) 'ABS' )
  372. ) ;
  373.  
  374. 'SI' (IMAX > 1.0D-7) ;
  375. 'MESSAGE' ('CHAINE' 'Modele PERFMULT, ERRMAX =' IMAX ) ;
  376. 'ERREUR' 5 ;
  377. 'FINSI' ;
  378.  
  379.  
  380. ****************
  381. **** 'KONV' ****
  382. ****************
  383.  
  384. LISTINCO = 'MOTS' 'RN' 'RUX' 'RUY' 'RETN' 'H2' 'O2' 'H2O' ;
  385.  
  386. METO = 'VLH' ;
  387.  
  388. TFLUX2 DELTAT = 'KONV' 'VF' 'PERFTEMP' 'FLUX' METO
  389. $DOMTOT PGAZ LISTINCO ROF2 VITF2 PF2 YF2 ;
  390.  
  391. TFLUX DELTAT = 'KONV' 'VF' 'PERFMULT' 'FLUX' METO
  392. $DOMTOT LISTINCO ROF VITF PF GAMF YF PGAZ2 ;
  393.  
  394. IMAX = 'MAXIMUM' (TFLUX '-' TFLUX2) 'ABS' ;
  395.  
  396. 'SI' (IMAX > 1.0D-4) ;
  397. 'MESSAGE' ('CHAINE' 'Modele PERFTEMP, ERRMAX =' IMAX ) ;
  398. 'ERREUR' 5 ;
  399. 'FINSI' ;
  400.  
  401. 'FIN' ;
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  

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