Télécharger konv_ther_cons3.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : konv_ther_cons3.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 PRET, KONV ****
  9. **** ****
  10. **** Cas gaz monoespece "calorically perfect" ****
  11. **** Modele "thermally perfect" ****
  12. **** Consistence ****
  13. **** ****
  14. **** Methodes: SS ****
  15. **** ****
  16. **** A. BECCANTINI DRN/DMT/SEMT/TTMF DECEMBRE 1998 ****
  17. ***********************************************************
  18.  
  19. 'OPTION' 'DIME' 2 ;
  20. 'OPTION' 'ELEM' QUA4 ;
  21. 'OPTION' 'ECHO' 0 ;
  22. 'OPTION' 'TRAC' 'X' ;
  23.  
  24. *
  25. *** GRAPH
  26. *
  27.  
  28.  
  29. GRAPH = FAUX ;
  30. * GRAPH = VRAI ;
  31.  
  32. **** Cas monoespece : la table proprieté de gaz
  33.  
  34. PGAZ = 'TABLE' ;
  35.  
  36. *
  37. **** Ordre des polynoms cv_i
  38. *
  39.  
  40. PGAZ . 'NORD' = 0 ;
  41.  
  42. *
  43. **** Especes qui sont dans les equations d'Euler (rien)
  44. *
  45.  
  46. *
  47. **** Espece qui n'y est pas
  48. *
  49.  
  50.  
  51. PGAZ . 'ESPNEULE' = 'H2 ';
  52.  
  53. *
  54.  
  55. PGAZ . 'H2 ' = 'TABLE' ;
  56.  
  57. *
  58. **** R (J/Kg/K)
  59. *
  60.  
  61. PGAZ . 'H2 ' . 'R' = 4130.0 ;
  62.  
  63. *
  64. **** Regressions polynomials
  65. *
  66.  
  67. PGAZ . 'H2 ' . 'A' = 'PROG' 9834.91866 ;
  68.  
  69. *
  70. **** "Enthalpies" (ou energies) de formations a OK (J/Kg)
  71. * Note: ce sont des entites numeriques
  72. *
  73.  
  74. PGAZ . 'H2 ' . 'H0K' = -4.195D6 ;
  75.  
  76.  
  77. ***************************
  78. ***** DOMAINE SPATIAL ****
  79. ***************************
  80.  
  81.  
  82. A1 = 0.0D0 0.0D0;
  83. A2 = 1.0D0 0.0D0;
  84. A3 = 2.0D0 0.0D0;
  85. A4 = 2.0D0 1.0D0;
  86. A5 = 1.0D0 1.0D0;
  87. A6 = 0.0D0 1.0D0;
  88.  
  89. L12 = A1 'DROIT' 1 A2;
  90. L23 = A2 'DROIT' 1 A3;
  91. L34 = A3 'DROIT' 1 A4;
  92. L45 = A4 'DROIT' 1 A5;
  93. L56 = A5 'DROIT' 1 A6;
  94. L61 = A6 'DROIT' 1 A1;
  95. L25 = A2 'DROIT' 1 A5;
  96.  
  97.  
  98. DOM10 = 'DALL' L12 L25 L56 L61
  99. 'PLANE';
  100. DOM20 = 'DALL' L23 L34 L45 ('INVERSE' L25)
  101. 'PLANE';
  102. *
  103. *** Point ou on controlle la consistence
  104. *
  105.  
  106. P10 = 1.0 0.5;
  107.  
  108. *
  109. *** Etats gauche et droite
  110. *
  111.  
  112. rogd = 1.412 ;
  113. pgd = 1.17D6 ;
  114. ungd = 8.34 ;
  115. utgd = 18.2 ;
  116.  
  117. *
  118. **** tg
  119. *
  120.  
  121. tgd = pgd '/' (rogd * (PGAZ . 'H2 ' . 'R')) ;
  122.  
  123.  
  124. *
  125. **** gamg, gamd , htg , htd
  126. *
  127. *
  128.  
  129. cvgd = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 1 ;
  130.  
  131. ETGd = cvgd * tgd ;
  132.  
  133. ecingd = 0.5D0 '*' ((ungd '*' ungd) '+' (utgd '*' utgd));
  134.  
  135. retgd = rogd '*' (ETGd '+' ecingd) ;
  136.  
  137. gamgd = (cvgd '+' (PGAZ . 'H2 ' . 'R')) '/' cvgd ;
  138.  
  139. *
  140. *** flux en (n,t)
  141. *
  142.  
  143. f1gd = ungd '*' rogd ;
  144. f2gd = (rogd '*' (ungd '*' ungd)) '+' pgd ;
  145. f3gd = rogd '*' ungd '*' utgd ;
  146. f4gd = ungd '*' (retgd '+' pgd);
  147.  
  148.  
  149.  
  150. ****************************************************
  151. ****************************************************
  152. ******** Boucle sur les angles *********
  153. ****************************************************
  154. ****************************************************
  155.  
  156. DANGLE = 360 '/' 7.15;
  157. ANGLE = 11.3 ;
  158.  
  159. 'REPETER' BLOC 8;
  160.  
  161. *
  162. *** Rotation
  163. *
  164.  
  165.  
  166. ANGLE = ANGLE '+' DANGLE;
  167. ORIG = 0.0D0 0.0D0;
  168.  
  169. MESSAGE;
  170. MESSAGE (CHAIN 'Angle de rotation= ' ANGLE);
  171. MESSAGE;
  172.  
  173. DOM1 = DOM10 'TOURNER' ANGLE ORIG;
  174. DOM2 = DOM20 'TOURNER' ANGLE ORIG;
  175. P1 = P10 'TOURNER' ANGLE ORIG;
  176.  
  177. 'ELIMINATION' (DOM1 ET DOM2) 1D-6;
  178. DOMTOT = DOM1 ET DOM2;
  179.  
  180. $DOMTOT = 'MODELISER' DOMTOT 'EULER';
  181. $DOM1 = 'MODELISER' DOM1 'EULER';
  182. $DOM2 = 'MODELISER' DOM2 'EULER';
  183. TDOMTOT = 'DOMA' $DOMTOT 'VF';
  184. TDOM1 = 'DOMA' $DOM1 'VF';
  185. TDOM2 = 'DOMA' $DOM2 'VF';
  186. MDOM1 = TDOM1 . 'QUAF' ;
  187. MDOM2 = TDOM2 . 'QUAF' ;
  188. MDOMTOT = TDOMTOT . 'QUAF' ;
  189.  
  190. 'ELIM' (MDOMTOT 'ET' MDOM1 'ET' MDOM2) 1.E-6 ;
  191.  
  192. 'SI' GRAPH;
  193. 'TRACER' (('DOMA' $DOMTOT 'MAILLAGE' ) 'ET'
  194. ('DOMA' $DOMTOT 'FACEL') 'ET' P1) 'TITRE' 'Domaine et FACEL';
  195. 'FINSI' ;
  196.  
  197. *
  198. **** Redefinition de P1 dans $DOMTOT 'FACE'
  199. *
  200.  
  201. P1 = ('DOMA' $DOMTOT 'FACE') 'POIN' 'PROC' P1;
  202.  
  203. ***********************
  204. **** Les CHPOINTs ****
  205. ***********************
  206.  
  207. uxgd = (ungd '*' ('COS' ANGLE)) '-' (utgd '*' ('SIN' ANGLE));
  208. uygd = (ungd '*' ('SIN' ANGLE)) '+' (utgd '*' ('COS' ANGLE));
  209.  
  210.  
  211. RN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' rogd;
  212. RN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' rogd;;
  213. RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (RN1 'ET' RN2);
  214.  
  215. VN1 = 'KCHT' $DOM1 'VECT' 'CENTRE' (uxgd uygd);
  216. VN2 = 'KCHT' $DOM2 'VECT' 'CENTRE' (uxgd uygd);
  217. VN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' (VN1 'ET' VN2);
  218.  
  219. PN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' pgd;
  220. PN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' pgd;
  221. PN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (PN1 'ET' PN2);
  222.  
  223.  
  224. ***************************
  225. **** L'operateur PRET****
  226. ***************************
  227.  
  228. ORDESP = 1;
  229. ORDTEM = 1;
  230.  
  231.  
  232. ROF VITF PF = 'PRET' 'PERFTEMP' ORDESP ORDTEM
  233. $DOMTOT PGAZ RN VN PN ;
  234.  
  235. GEOP1 = ('DOMA' $DOMTOT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT' P1;
  236. GEOP2 = ('DOMA' $DOMTOT 'FACE') 'ELEM' 'APPUYE' 'LARGEMENT' P1;
  237.  
  238.  
  239. REFGEOP1 = 'REDU' VITF GEOP2;
  240.  
  241. *
  242. **** Orientation de la normal n de castem par raport a la
  243. * notre; t est par consequence
  244. *
  245.  
  246. NCOS = 'EXTRAIRE' REFGEOP1 'NX' 1 1 1;
  247. NSIN = 'EXTRAIRE' REFGEOP1 'NY' 1 1 1;
  248.  
  249. 'SI' (('ABS' NCOS) > ('ABS' NSIN));
  250. ORIENT = ('COS' ANGLE) '/' NCOS;
  251. 'SINON';
  252. ORIENT = ('SIN' ANGLE) '/' NSIN;
  253. 'FINSI' ;
  254.  
  255. ORIENT = 'SIGN' ORIENT;
  256.  
  257. ********************************
  258. **** 'KONV', TEST SS ****
  259. ********************************
  260.  
  261. METO = 'SS' ;
  262.  
  263. LISTINCO = 'MOTS' 'RN' 'RUX' 'RUY' 'RETN' ;
  264.  
  265. TFLUX DELTAT = 'KONV' 'VF' 'PERFTEMP' 'FLUX' METO
  266. $DOMTOT PGAZ LISTINCO ROF VITF PF ;
  267.  
  268. *
  269. **** Les flux aux interfaces sont dans de
  270. * CHPOINT FACE
  271. *
  272.  
  273. FLUX1 = 'EXCO' 'RN' TFLUX ;
  274. FLUX2X = 'EXCO' 'RUX' TFLUX ;
  275. FLUX2Y = 'EXCO' 'RUY' TFLUX ;
  276. FLUX3 = 'EXCO' 'RETN' TFLUX ;
  277.  
  278. FLUX2N = (FLUX2X '*' ('COS' ANGLE)) '+' (FLUX2Y * ('SIN' ANGLE));
  279. FLUX2T = (FLUX2Y '*' ('COS' ANGLE)) '-' (FLUX2X * ('SIN' ANGLE));
  280.  
  281.  
  282. *
  283. **** Test 'KONV'
  284. *
  285.  
  286. f1 = 'EXTRAIRE' FLUX1 'SCAL' P1;
  287. ERRO = 'ABS' (1D-12 '*' f1gd);
  288. LOGI1 = ('ABS' ((f1 '*' ORIENT) '-' f1gd)) < ERRO;
  289.  
  290. f2 = 'EXTRAIRE' FLUX2N 'SCAL' P1;
  291. ERRO = 'ABS' (1D-12 '*' f2gd);
  292. LOGI2 = ('ABS' ((f2 '*' ORIENT) '-' f2gd)) < ERRO;
  293. LOGI1 = LOGI1 'ET' LOGI2;
  294.  
  295. f3 = 'EXTRAIRE' FLUX2T 'SCAL' P1;
  296. ERRO = 'ABS' (1D-11 '*' f3gd) ;
  297. LOGI2 = ('ABS' ((f3 '*' ORIENT) '-' f3gd)) < ERRO;
  298. LOGI1 = LOGI1 'ET' LOGI2;
  299.  
  300. f4 = 'EXTRAIRE' FLUX3 'SCAL' P1;
  301. ERRO = 'ABS' (1D-12 '*' f4gd) ;
  302. LOGI2 = ('ABS' ((f4 '*' ORIENT) '-' f4gd)) < ERRO;
  303. LOGI1 = LOGI1 'ET' LOGI2;
  304.  
  305. 'SI' ('NON' LOGI1);
  306. 'MESSAGE' ;
  307. 'MESSAGE' 'OPERATEUR KONV';
  308. 'MESSAGE' ('CHAINE' METO);
  309. 'MESSAGE' ;
  310. 'MESSAGE' ('CHAINE' 'df1 ' ('ABS' (f1gd '-' (ORIENT '*'f1)))
  311. ' f1 ' f1);
  312. 'MESSAGE' ('CHAINE' 'df2 ' ('ABS' (f2gd '-' (ORIENT '*'f2)))
  313. ' f2 ' f2);
  314. 'MESSAGE' ('CHAINE' 'df3 ' ('ABS' (f3gd '-' (ORIENT '*'f3)))
  315. ' f3 ' f3);
  316. 'MESSAGE' ('CHAINE' 'df4 ' ('ABS' (f4gd '-' (ORIENT '*'f4)))
  317. ' f4 ' f4);
  318. 'ERREUR' 5;
  319. 'FINSI' ;
  320.  
  321.  
  322. ****************************************************
  323. ****************************************************
  324. ******** Fin boucle sur les angles *********
  325. ****************************************************
  326. ****************************************************
  327.  
  328. 'FIN' BLOC;
  329.  
  330. MENAGE ;
  331.  
  332. 'FIN' ;
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  

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