Télécharger sinebum_fmm.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : sinebum_fmm.dgibi
  2. *********************************************************************
  3. * *
  4. * SINE-SHAPED BUMP *
  5. * *
  6. * CALCUL DE L ECOULEMENT SUBSONIQUE ISENTROPIQUE STATIONNAIRE DANS *
  7. * UN CANAL *
  8. * *
  9. * Methode implicite sans matrice *
  10. * Boundary conditions imposed via ghost cells *
  11. * *
  12. * BECCANTINI A., SFME/LTMF, MAI 2002 *
  13. * *
  14. *********************************************************************
  15.  
  16. TYEL = 'QUA4' ;
  17.  
  18. 'OPTION' 'DIME' 2 'ELEM' TYEL 'ISOV' 'SULI'
  19. 'ECHO' 0 'TRAC' 'X' ;
  20.  
  21.  
  22. GRAPH = VRAI ;
  23. GRAPH = FAUX ;
  24.  
  25. ******************
  26. ******************
  27. ******************
  28. **** MAILLAGE ****
  29. ******************
  30. ******************
  31. ******************
  32. ******************
  33. *
  34. *
  35. *
  36.  
  37. RAF = 2 ;
  38.  
  39. NY = 5 '*' RAF ;
  40. NX1 = 4 '*' RAF ;
  41. NX2 = 2 '*' NX1 ;
  42. NX3 = NX1 ;
  43. NX = (NX1 '+' NX2 '+' NX3) ;
  44. DX = (4.0 '/' NX) ;
  45.  
  46. A0 = -2.0 0.0 ;
  47. A1 = -1.0 0.0 ;
  48. A2 = 1.0 0.0 ;
  49. A3 = 2.0 0.0 ;
  50. A4 = 2.0 1.0 ;
  51. A5 = -2.0 1.0 ;
  52.  
  53. *
  54. **** LIGB
  55. *
  56.  
  57. LIGB1 = A0 'DROIT' NX1 A1 ;
  58.  
  59. * LIGB2 (On utilise un propriete de 'ET' ; si 'ET' change ?)
  60.  
  61. xcel = ('COORDONNEE' 1 A1) '+' DX ;
  62. ycel = 0.1 '*' ( 1.0 '+' ('COS' (180 '*' xcel)));
  63. ACEL = xcel ycel ;
  64. LIGB2 = A1 'DROIT' 1 ACEL ;
  65. 'REPETER' BL1 (NX2 '-' 2) ;
  66. ACEL0 = ACEL ;
  67. xcel = xcel '+' DX ;
  68. ycel = 0.1 '*' ( 1.0 '+' ('COS' (180 '*' xcel)));
  69. ACEL = xcel ycel ;
  70. LIGB2 = LIGB2 'ET' (ACEL0 'DROIT' 1 ACEL) ;
  71. 'FIN' BL1;
  72. LIGB2 = LIGB2 'ET' (ACEL 'DROIT' 1 A2) ;
  73.  
  74.  
  75. LIGB3 = A2 'DROIT' NX3 A3 ;
  76.  
  77. LIGB = LIGB1 'ET' LIGB2 'ET' LIGB3 ;
  78.  
  79. *
  80. **** LIGH
  81. *
  82.  
  83. LIGH = A4 'DROIT' NX A5 ;
  84.  
  85. *
  86. **** DOMINT
  87. *
  88.  
  89. DOMINT = LIGH 'REGLER' NY ('INVERSE' LIGB) ;
  90. LIGCON = 'CONTOUR' DOMINT ;
  91.  
  92. *
  93. *** LIGG
  94. *
  95.  
  96. LIGG = LIGCON 'ELEM' 'COMP' A5 A0 ;
  97.  
  98. *
  99. **** LIGD
  100. *
  101.  
  102. LIGD = LIGCON 'ELEM' 'COMP' A3 A4 ;
  103.  
  104. FROD = LIGD 'TRANSLATION' 1 (DX 0.0) ;
  105. FROG = LIGG 'TRANSLATION' 1 ((-1.0 '*' DX) 0.0) ;
  106.  
  107.  
  108. * DOMTOT = total region
  109.  
  110. DOMTOT = DOMINT 'ET' FROD 'ET' FROG ;
  111. 'ELIMINATION' (1.0D-3 '/' RAF) DOMTOT ;
  112.  
  113. MDOMTOT = 'MODELISER' DOMTOT 'EULER' ;
  114. MDOMINT = 'MODELISER' DOMINT 'EULER' ;
  115. MFROD = 'MODELISER' FROD 'EULER' ;
  116. MFROG = 'MODELISER' FROG 'EULER' ;
  117. MLIGG = 'MODELISER' LIGG 'EULER' ;
  118. MLIGD = 'MODELISER' LIGD 'EULER' ;
  119.  
  120. *
  121. **** Creation of DOMAINE tables via the MODEL object
  122. *
  123.  
  124. TDOMTOT = 'DOMA' MDOMTOT 'VF' ;
  125. TDOMINT = 'DOMA' MDOMINT 'VF' ;
  126. TFROD = 'DOMA' MFROD 'VF' ;
  127. TFROG = 'DOMA' MFROG 'VF' ;
  128. TLIGG = 'DOMA' MLIGG 'VF' ;
  129. TLIGD = 'DOMA' MLIGD 'VF' ;
  130.  
  131. QDOMTOT = TDOMTOT . 'QUAF' ;
  132. QDOMINT = TDOMINT . 'QUAF' ;
  133. QFROD = TFROD . 'QUAF' 'COULEUR' 'ROUG' ;
  134. QFROG = TFROG . 'QUAF' 'COULEUR' 'ROUG' ;
  135. QLIGD = TLIGD . 'QUAF' ;
  136. QLIGG = TLIGG . 'QUAF' ;
  137.  
  138. 'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QDOMINT ;
  139. 'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QFROG ;
  140. 'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QFROD ;
  141. 'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QLIGG ;
  142. 'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QLIGD ;
  143.  
  144. *
  145. **** SEG2 mesh for BC
  146. *
  147.  
  148. ELP1 = 'MANUEL' 'POI1' ('POIN' 1 ('DOMA' MLIGD 'CENTRE')) ;
  149. ELTINT = ('DOMA' MDOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
  150. ELP1 ;
  151. ELTFRO = 'ELEM' ('DOMA' MFROD 'FACEL') 'APPUYE' 'LARGEMENT'
  152. ELP1 ;
  153. P1 = 'POIN' 1 ELTINT ;
  154. P2 = 'POIN' 1 ELTFRO ;
  155. COND = 'MANUEL' 'SEG2' P1 P2 ;
  156.  
  157. NBL1 = ('NBNO' ('DOMA' MLIGD 'CENTRE')) '-' 1 ;
  158. 'REPETER' BL1 NBL1 ;
  159. ELP1 = 'MANUEL' 'POI1' ('POIN' (&BL1 '+' 1)
  160. ('DOMA' MLIGD 'CENTRE')) ;
  161. ELTINT = ('DOMA' MDOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
  162. ELP1 ;
  163. ELTFRO = 'ELEM' ('DOMA' MFROD 'FACEL') 'APPUYE' 'LARGEMENT'
  164. ELP1 ;
  165. P1 = 'POIN' 1 ELTINT ;
  166. P2 = 'POIN' 1 ELTFRO ;
  167. COND = COND 'ET' ('MANUEL' 'SEG2' P1 P2) ;
  168. 'FIN' BL1 ;
  169.  
  170. COND = COND 'COULEUR' 'ROUG' ;
  171.  
  172. ELP1 = 'MANUEL' 'POI1' ('POIN' 1 ('DOMA' MLIGG 'CENTRE')) ;
  173. ELTINT = ('DOMA' MDOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
  174. ELP1 ;
  175. ELTFRO = 'ELEM' ('DOMA' MFROG 'FACEL') 'APPUYE' 'LARGEMENT'
  176. ELP1 ;
  177. P1 = 'POIN' 1 ELTINT ;
  178. P2 = 'POIN' 1 ELTFRO ;
  179. CONG = 'MANUEL' 'SEG2' P1 P2 ;
  180.  
  181. NBL1 = ('NBNO' ('DOMA' MLIGG 'CENTRE')) '-' 1 ;
  182. 'REPETER' BL1 NBL1 ;
  183. ELP1 = 'MANUEL' 'POI1' ('POIN' (&BL1 '+' 1)
  184. ('DOMA' MLIGG 'CENTRE')) ;
  185. ELTINT = ('DOMA' MDOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
  186. ELP1 ;
  187. ELTFRO = 'ELEM' ('DOMA' MFROG 'FACEL') 'APPUYE' 'LARGEMENT'
  188. ELP1 ;
  189. P1 = 'POIN' 1 ELTINT ;
  190. P2 = 'POIN' 1 ELTFRO ;
  191. CONG = CONG 'ET' ('MANUEL' 'SEG2' P1 P2) ;
  192. 'FIN' BL1 ;
  193.  
  194. CONG = CONG 'COULEUR' 'ROUG' ;
  195.  
  196. 'SI' FAUX ;
  197. 'TRACER' (DOMTOT 'ET' COND 'ET' CONG) 'TITRE'
  198. 'Domaine total' ;
  199. 'FINSI' ;
  200.  
  201. ***************************************************************
  202. ***************************************************************
  203. ***************************************************************
  204. ************** Initial conditions *****************************
  205. ***************************************************************
  206. ***************************************************************
  207. ***************************************************************
  208.  
  209. GAMAIR = 1.4 ;
  210. ro = 1.4 ;
  211. p = 1.0 ;
  212. u = 0.5;
  213.  
  214. ***************************************************************
  215. ***** PROCEDURE POUR CALCULER LES VARIABLES CONSERVATIVES *****
  216. ***************************************************************
  217.  
  218. 'DEBPROC' CONS ;
  219. 'ARGUMENT' RN*'CHPOINT' VN*'CHPOINT' PN*'CHPOINT' GAMN*'CHPOINT' ;
  220.  
  221. RVN = RN '*' VN ('MOTS' 'SCAL' 'SCAL') ('MOTS' 'UX' 'UY')
  222. ('MOTS' 'UX' 'UY') ;
  223. CELL = 'PSCAL' RVN VN ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY') ;
  224. RECIN = 0.5 '*' CELL ;
  225. REIN = PN '/' (GAMN '-' 1.0) ;
  226. RETN = RECIN '+' REIN ;
  227.  
  228. DETR CELL ;
  229. DETR RECIN ;
  230. DETR REIN ;
  231. 'RESPRO' RVN RETN ;
  232.  
  233. 'FINPROC' ;
  234.  
  235. ***************************************************************
  236. ***************************************************************
  237. ***************************************************************
  238.  
  239. RN0 = 'MANU' 'CHPO' ('DOMA' MDOMTOT 'CENTRE') 1 'SCAL' ro
  240. 'NATURE' 'DISCRET' ;
  241.  
  242. VN0 = ('MANU' 'CHPO' ('DOMA' MDOMTOT 'CENTRE') 2 'UX' u
  243. 'UY' 0.0 'NATURE' 'DISCRET') ;
  244.  
  245. PN0 = 'MANU' 'CHPO' ('DOMA' MDOMTOT 'CENTRE') 1 'SCAL' p
  246. 'NATURE' 'DISCRET' ;
  247.  
  248. GAMN = 'MANU' 'CHPO' ('DOMA' MDOMTOT 'CENTRE') 1 'SCAL' GAMAIR
  249. 'NATURE' 'DISCRET' ;
  250.  
  251. GN0 RETN0 = CONS RN0 VN0 PN0 GAMN ;
  252.  
  253. VN1 PN1 = 'PRIM' 'PERFMONO' RN0 GN0 RETN0 GAMN ;
  254.  
  255. ERRO = 'MAXIMUM' (PN1 '-' PN0) 'ABS' ;
  256.  
  257. 'SI' (ERRO > 1.0D-6) ;
  258. 'MESSAGE' 'Problem in the ic file!!!'
  259. 'ERREUR' 5 ;
  260. 'FINSI' ;
  261.  
  262. *
  263. **** Plot of IC
  264. *
  265.  
  266. MOD1 = 'MODELISER' ('DOMA' MDOMTOT 'MAILLAGE' ) 'THERMIQUE';
  267.  
  268. 'SI' FAUX ;
  269.  
  270. CHM_RN = 'KCHA' MDOMTOT 'CHAM' RN0 ;
  271. CHM_PN = 'KCHA' MDOMTOT 'CHAM' PN0 ;
  272. CHM_VN = 'KCHA' MDOMTOT 'CHAM' VN0 ;
  273.  
  274. 'TRACER' CHM_RN MOD1
  275. 'TITR' ('CHAINE' 'RN at t=' 0.0);
  276. 'TRACER' CHM_PN MOD1
  277. 'TITR' ('CHAINE' 'PN at t=' 0.0);
  278. 'TRACER' CHM_VN MOD1
  279. 'TITR' ('CHAINE' 'MACHN at t=' 0.0);
  280.  
  281. 'FINSI' ;
  282.  
  283. MOTRN = 'RN' ;
  284. MOTRNX = 'RUX' ;
  285. MOTRNY = 'RUY' ;
  286. MOTRETN = 'RETN' ;
  287. LISTINCO = 'MOTS' MOTRN MOTRNX MOTRNY MOTRETN ;
  288.  
  289. **********************************************************
  290. **********************************************************
  291. **********************************************************
  292. ************** COMPUTATION OF THE SOLUTION ***************
  293. **********************************************************
  294. **********************************************************
  295. **********************************************************
  296. **********************************************************
  297.  
  298. ZERO = 1.0D-8 ;
  299.  
  300. *
  301. **** Parameter for the computations
  302. *
  303. *
  304.  
  305. * Upwind scheme
  306. * METO = 'VLH' ;
  307. * METO = 'SS' ;
  308. * METO = 'GODUNOV' ;
  309. METO = 'AUSMPLUS' ;
  310.  
  311. * Reconstruction
  312. * Iterations
  313. * Final time
  314.  
  315. LOGREC = VRAI ;
  316. NITER = 1000 ;
  317. TFINAL = 10000.0D0 ;
  318.  
  319. * Overcoming of LCB (freezing of limiters)
  320. NLCB = 1000 ;
  321. TYPELIM = 'NOLIMITE' ;
  322. * TYPELIM = 'LIMITEUR' ;
  323. *
  324. * Safety Factor fot the time step
  325. * If SAFFAC < SAFFACM, then each FSAF-th iteration we compute
  326. * SAFFAC = SAFFAC * 2 ;
  327. *
  328. SAFFAC = 10. ;
  329. SAFFACM = 40. ;
  330. FSAF = 400 ;
  331.  
  332. * Jacobi iterations
  333.  
  334. NJAC = 15 ;
  335. EPSJAC = 1.0D-16 ;
  336.  
  337.  
  338. RN = 'COPIER' RN0 ;
  339. GN = 'COPIER' GN0 ;
  340. RETN = 'COPIER' RETN0 ;
  341.  
  342. *
  343. **** Coeff to compute gradients
  344. *
  345.  
  346. VN PN = 'PRIM' 'PERFMONO' RN GN RETN GAMN ;
  347. GRADRN ALRN MCHRNC = 'PENT' MDOMTOT 'CENTRE' 'EULESCAL' TYPELIM
  348. ('MOTS' 'SCAL') RN ;
  349. GRADPN ALPN MCHPNC = 'PENT' MDOMTOT 'CENTRE' 'EULESCAL' TYPELIM
  350. ('MOTS' 'SCAL') PN ;
  351. GRADVN ALVN MCHVNC = 'PENT' MDOMTOT 'CENTRE' 'EULEVECT' TYPELIM
  352. ('MOTS' 'UX' 'UY') VN ;
  353.  
  354. * Limiters zero into ghost cells
  355.  
  356. LIMZER = ('MANUEL' 'CHPO' ('DOMA' MDOMINT 'CENTRE') 1 'SCAL' 1.0
  357. 'NATU' 'DISCRET') 'ET'
  358. ('MANUEL' 'CHPO' ('DOMA' MFROG 'CENTRE') 1 'SCAL' 0.0
  359. 'NATU' 'DISCRET') 'ET'
  360. ('MANUEL' 'CHPO' ('DOMA' MFROD 'CENTRE') 1 'SCAL' 0.0
  361. 'NATU' 'DISCRET') ;
  362.  
  363. * Names of the residuum components
  364.  
  365. LISTINCO = 'MOTS' 'RN' 'RUX' 'RUY' 'RETN' ;
  366.  
  367. TPS = 0.0 ;
  368.  
  369. *
  370. **** Temporal loop
  371. *
  372.  
  373. 'MESSAGE' ;
  374. 'MESSAGE' ('CHAINE' 'Methode = ' METO) ;
  375. 'MESSAGE' ('CHAINE' 'SAFFAC = ' SAFFAC) ;
  376. 'MESSAGE' ;
  377.  
  378. LISTLINF = 'PROG' ;
  379. LISTTPS = 'PROG' ;
  380. LISTITER = 'PROG' ;
  381.  
  382. 'TEMPS' ;
  383.  
  384. 'REPETER' BL1 NITER ;
  385.  
  386. *
  387. **** Primitive variables
  388. *
  389.  
  390. VN PN = 'PRIM' 'PERFMONO' RN GN RETN GAMN ;
  391.  
  392. 'SI' LOGREC ;
  393. GRADRN ALRN = 'PENT' MDOMTOT 'CENTRE' 'EULESCAL' TYPELIM
  394. ('MOTS' 'SCAL') RN 'GRADGEO' MCHRNC ;
  395. GRADPN ALPN = 'PENT' MDOMTOT 'CENTRE' 'EULESCAL' TYPELIM
  396. ('MOTS' 'SCAL') PN 'GRADGEO' MCHPNC ;
  397. GRADVN ALVN = 'PENT' MDOMTOT 'CENTRE' 'EULEVECT' TYPELIM
  398. ('MOTS' 'UX' 'UY') VN 'GRADGEO' MCHVNC ;
  399.  
  400. 'SI' (&BL1 < NLCB) ;
  401. * Limiters zero on ghost cells
  402. ALRN0 = ALRN '*' LIMZER ;
  403. ALPN0 = ALPN '*' LIMZER ;
  404. ALVN0 = ALVN '*' LIMZER ;
  405. 'SINON' ;
  406. 'SI' (&BL1 'EGA' NLCB) ;
  407. 'MESSAGE' ;
  408. 'MESSAGE' 'On gele les limiteurs!!!' ;
  409. 'MESSAGE' ;
  410. 'FINSI' ;
  411. 'FINSI' ;
  412. ROF VITF PF GAMF = 'PRET' 'PERFMONO' 2 1
  413. MDOMTOT
  414. RN GRADRN ALRN0
  415. VN GRADVN ALVN0
  416. PN GRADPN ALPN0
  417. GAMN ;
  418. 'SINON' ;
  419. ROF VITF PF GAMF = 'PRET' 'PERFMONO' 1 1
  420. MDOMTOT
  421. RN VN PN GAMN ;
  422. 'FINSI' ;
  423.  
  424. RESIDU DELTAT = 'KONV' 'VF' 'PERFMONO' 'RESI' METO
  425. MDOMTOT LISTINCO ROF VITF PF GAMF ;
  426.  
  427. *
  428. *** Time step
  429. *
  430.  
  431. DTPS = DELTAT '*' SAFFAC ;
  432. DTPS = 'MINIMUM' ('PROG' DTPS ((TFINAL '-' TPS) '*' 1.0001)) ;
  433. TPS = TPS '+' DTPS ;
  434.  
  435. *
  436. *** JACOBI
  437. *
  438.  
  439. RNL0 = 'COPIER' RN ;
  440. GNL0 = 'COPIER' GN ;
  441. RETNL0 = 'COPIER' RETN ;
  442.  
  443. ANI = 'KONV' 'VF' 'PMONOFMM' 'AN' LISTINCO
  444. MDOMTOT RN GN RETN GAMN SAFFAC ;
  445.  
  446. BNI = 'KONV' 'VF' 'PMONOFMM' 'BN' LISTINCO
  447. MDOMTOT RN GN RETN GAMN ;
  448.  
  449. UNSANI = ('INVERSE' ANI) ;
  450.  
  451. DUN = UNSANI '*' RESIDU ;
  452.  
  453. 'SI' VRAI ;
  454. * On the ghost cells we impose DUN = 0
  455. DUN = DUN '*' LIMZER ;
  456. 'FINSI' ;
  457.  
  458. DRN = 'EXCO' 'RN' DUN 'SCAL' ;
  459. DGN = 'EXCO' ('MOTS' 'RUX' 'RUY') DUN ('MOTS' 'UX' 'UY') ;
  460. DRETN = 'EXCO' 'RETN' DUN 'SCAL' ;
  461.  
  462. RN = RNL0 '+' DRN ;
  463. GN = GNL0 '+' DGN ;
  464. RETN = RETNL0 '+' DRETN ;
  465.  
  466. 'REPETER' BLJAC NJAC ;
  467.  
  468. DUN0 = DUN ;
  469.  
  470. BNP1 = 'KONV' 'VF' 'PMONOFMM' 'BN' LISTINCO
  471. MDOMTOT RN GN RETN GAMN ;
  472.  
  473. RESP1 = RESIDU '+' (BNI '-' BNP1) ;
  474.  
  475. DUN = UNSANI '*' RESP1 ;
  476.  
  477. 'SI' VRAI ;
  478. * On the ghost cells we impose DUN = 0
  479. DUN = DUN '*' LIMZER ;
  480. 'FINSI' ;
  481.  
  482. DRN = 'EXCO' 'RN' DUN 'SCAL' ;
  483. DGN = 'EXCO' ('MOTS' 'RUX' 'RUY') DUN ('MOTS' 'UX' 'UY') ;
  484. DRETN = 'EXCO' 'RETN' DUN 'SCAL' ;
  485.  
  486. RN = RNL0 '+' DRN ;
  487. GN = GNL0 '+' DGN ;
  488. RETN = RETNL0 '+' DRETN ;
  489.  
  490. ERRINF = 'MAXIMUM' (DUN '-' DUN0) 'ABS' ;
  491.  
  492. 'SI' (ERRINF < EPSJAC) ;
  493. 'MESSAGE'
  494. ('CHAINE' 'ITER =' &BL1 ' IJAC =' &BLJAC ' LINF =' ERRINF) ;
  495. 'QUITTER' BLJAC ;
  496. 'SINON' ;
  497. 'SI' (&BLJAC 'EGA' NJAC) ;
  498. 'MESSAGE' ('CHAINE' 'ITER =' &BL1
  499. ' IJAC =' &BLJAC ' LINF =' ERRINF) ;
  500. 'FINSI' ;
  501. 'FINSI' ;
  502.  
  503. 'FIN' BLJAC ;
  504.  
  505. 'SI' (((&BL1 '/' 20) '*' 20) 'EGA' &BL1) ;
  506. ERRINF = 'MAXIMUM' DUN 'ABS' ;
  507. LISTLINF = LISTLINF 'ET' ('PROG' ERRINF) ;
  508. LISTITER = LISTITER 'ET' ('PROG' &BL1) ;
  509. LISTTPS = LISTTPS 'ET' ('PROG' TPS) ;
  510. 'MESSAGE' ;
  511. 'MESSAGE'
  512. ('CHAINE' 'ITER =' &BL1 ' TPS =' TPS ' LINF =' ERRINF) ;
  513. 'MESSAGE' ;
  514. 'FINSI' ;
  515.  
  516. 'SI' (((&BL1 '/' FSAF) '*' FSAF) 'EGA' &BL1) ;
  517. 'SI' (SAFFAC < SAFFACM) ;
  518. SAFFAC = SAFFAC '*' 2 ;
  519. 'MESSAGE' ;
  520. 'MESSAGE' ('CHAINE' 'SAFFAC = ' SAFFAC) ;
  521. 'MESSAGE' ;
  522. 'FINSI' ;
  523. 'FINSI' ;
  524.  
  525. 'SI' (TPS '>EG' TFINAL) ;
  526. 'QUITTER' BL1 ;
  527. 'FINSI' ;
  528.  
  529. 'FIN' BL1 ;
  530.  
  531. 'TEMPS' ;
  532.  
  533. SI GRAPH ;
  534.  
  535. **********************************************************
  536. **********************************************************
  537. **********************************************************
  538. ************** PLOTS *************************************
  539. **********************************************************
  540. **********************************************************
  541. **********************************************************
  542. **********************************************************
  543.  
  544. *
  545. **** The mesh
  546. *
  547.  
  548. 'TRACER' DOMTOT 'TITR' 'Maillage' ;
  549.  
  550. *
  551. **** Initial conditions
  552. *
  553.  
  554. MOD1 = 'MODELISER' ('DOMA' MDOMTOT 'MAILLAGE') 'THERMIQUE' ;
  555.  
  556. 'SI' VRAI ;
  557.  
  558. VN PN0 = 'PRIM' 'PERFMONO'
  559. RN0 GN0 RETN0 GAMN 'TRICHE' ;
  560.  
  561. CHM_RN = 'KCHA' MDOMTOT 'CHAM' RN0 ;
  562. CHM_VN = 'KCHA' MDOMTOT 'CHAM' VN ;
  563. CHM_PN = 'KCHA' MDOMTOT 'CHAM' PN0 ;
  564.  
  565. 'TRAC' CHM_RN MOD1 ('CONTOUR' DOMTOT)
  566. 'TITR' ('CHAINE' 'rho at t=' 0.0) ;
  567. 'TRAC' CHM_VN MOD1 ('CONTOUR' DOMTOT)
  568. 'TITR' ('CHAINE' 'v at t= ' 0.0) ;
  569. 'TRAC' CHM_PN MOD1 ('CONTOUR' DOMTOT)
  570. 'TITR' ('CHAINE' 'p at t= ' 0.0) ;
  571.  
  572. 'FINSI' ;
  573.  
  574. *
  575. **** The 2D graphics
  576. *
  577.  
  578. VN PN = 'PRIM' 'PERFMONO' RN GN RETN GAMN 'TRICHE' ;
  579.  
  580. 'SI' ('EGA' ('TYPE' TPS) 'CHPOINT') ;
  581. tps = 'MINIMUM' TPS ;
  582. 'FINSI' ;
  583.  
  584. 'SI' VRAI ;
  585.  
  586.  
  587. CHM_RN = 'KCHA' MDOMTOT 'CHAM' RN ;
  588. CHM_VN = 'KCHA' MDOMTOT 'CHAM' VN ;
  589. CHM_PN = 'KCHA' MDOMTOT 'CHAM' PN ;
  590.  
  591. 'TRAC' CHM_RN MOD1 ('CONTOUR' DOMTOT)
  592. 'TITR' ('CHAINE' 'rho at t=' TPS) ;
  593. 'TRAC' CHM_VN MOD1 ('CONTOUR' DOMTOT)
  594. 'TITR' ('CHAINE' 'v at t= ' TPS) ;
  595. 'TRAC' CHM_PN MOD1 ('CONTOUR' DOMTOT)
  596. 'TITR' ('CHAINE' 'p at t= ' TPS) ;
  597.  
  598. 'FINSI' ;
  599.  
  600. everr = 'EVOL' 'MANU' 'niter' LISTITER 'Log(Linf)'
  601. (('LOG' LISTLINF) '/' ('LOG' 10.)) ;
  602. 'DESSIN' everr 'TITRE' ('CHAINE' 'Convergence at ' tps) ;
  603.  
  604. 'FINSI' ;
  605.  
  606. *
  607. **** Test de convergence
  608. *
  609.  
  610. AA = 'EXTRAIRE' LISTLINF ('DIME' LISTLINF) ;
  611.  
  612. 'SI' (AA > 1.0D-8) ;
  613. 'MESSAGE' 'Probleme en KONV' ;
  614. 'ERREUR' 5 ;
  615. 'FINSI' ;
  616.  
  617. *
  618. *** Production d'entropie
  619. *
  620.  
  621. SN0 = ('LOG' PN0) '-' (GAMN * ('LOG' RN0)) ;
  622. SN0 = 'EXP' SN0 ;
  623.  
  624. SN = ('LOG' PN) '-' (GAMN * ('LOG' RN)) ;
  625. SN = 'EXP' SN ;
  626.  
  627. ERR = SN '-' SN0 ;
  628. CH_ERR = 'KCHA' MDOMTOT 'CHAM' ERR ;
  629.  
  630. 'SI' GRAPH ;
  631. 'TRAC' CH_ERR MOD1 ('CONTOUR' DOMTOT)
  632. 'TITR' ('CHAINE' 'Delta s at t=' TPS) ;
  633. 'FINSI' ;
  634.  
  635. AA = 'MAXIMUM' ERR 'ABS' ;
  636.  
  637. 'SI' (AA > 1.0d-2) ;
  638. 'MESSAGE' 'Probleme en KONV' ;
  639. 'ERREUR' 5 ;
  640. 'FINSI' ;
  641.  
  642. 'FIN' ;
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  

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