Télécharger shearfmm.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : shearfmm.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *********************************************************************
  5. * *
  6. * Shear layer. *
  7. * *
  8. * Methode implicite sans matrice *
  9. * *
  10. * BECCANTINI A., SFME/LTMF, Juin 2006 *
  11. * *
  12. *********************************************************************
  13. *
  14. * This file is divided into several parts
  15. *
  16. * I) PROCEDURES
  17. * II) MESH
  18. * III) INITIAL CONDITIONS
  19. * IV) COMPUTATION OF THE SOLUTIONS
  20. * V) POST-TREATMENT
  21. * VI) COMPARISON WITH A NUMERICAL SOLUTION ON A FINER MESH
  22. * (AND WITH A LIKE-PRANDTL ANALYTICAL SOLUTION)
  23. *
  24.  
  25. 'OPTION' 'DIME' 2
  26. 'ECHO' 1
  27. 'ELEM' 'QUA4'
  28. 'ISOV' 'SULI'
  29. 'TRAC' 'X';
  30.  
  31. *************************************************************************
  32. *************************************************************************
  33. * I) PROCEDURES *********************************************************
  34. *************************************************************************
  35. *************************************************************************
  36.  
  37. *************************************************************************
  38. ******PROCEDURE PROCPT **************************************************
  39. *************************************************************************
  40. *
  41. *
  42. 'DEBPROC' PROCPT ;
  43. 'FINPROC' ;
  44.  
  45. *************************************************************************
  46. *********** PROCEDURE PNSSM : ********************
  47. *********** SOLUTION OF THE NAVIER-STOKES EQUATIONS ********************
  48. *********** FMM ********************
  49. *************************************************************************
  50. *
  51. * RVX . 'RESULTS' : table containing the results
  52. *
  53. * RVX . 'FREQI' : frequency of presenting the results
  54. *
  55. * RVX . 'MODEL' : model object
  56. * RVX . 'RN0' : density
  57. * RVX . 'GN0' : qdm
  58. * RVX . 'RET0' : total energy
  59. *
  60. * RVX . 'PGAS' : table containing the gas model
  61. * RVX . 'PGAS' . 'GAMN' : gamma
  62. * RVX . 'PGAS' . 'MU' : dynamic viscosity (kg/m^3 x m^2/s)
  63. * RVX . 'PGAS' . 'LAMBDA' : heat diffusion (W/K/m)
  64. *
  65. *
  66. * RVX . 'GRAVITY' : gravity
  67. *
  68. * RVX . 'LISTCONS' : name of the conservative variables
  69. * RVX . 'LISTPRIM' : name of the primitive variables
  70. *
  71. * RVX . 'LISTERR' : name of the error variables
  72. *
  73. * RVX . 'METHOD' : numerical scheme
  74. * RVX . 'CUTOFF' : cut off speed
  75. *
  76. * RVX . 'SPACEA' : space accuracy
  77. * RVX . 'LIMITER' : limiter type
  78. * RVX . 'TIMEA' : time accuracy
  79. *
  80. * RVX . 'T0' : initial time
  81. * RVX . 'TFINAL' : final time
  82. * RVX . 'DTPS' ('CFL') : time step or CFL number
  83. *
  84. * RVX . 'DCFL' : CFL number for dual time
  85. *
  86. * Error criteria for dual time loop:
  87. * RVX . 'NDTITER' : number of iterations
  88. * RVX . 'RELERR' : Logical (Relative error or absolute error)
  89. * RVX . 'EPSDT' : error at which dual time iterations are stopped
  90. *
  91. * RVX . 'NJAC' : Jacobi iterations
  92. *
  93. * RVX . 'PROLIM' : table called by the procedure PROLIM,
  94. * procedure to compute boundary conditions
  95. *
  96. * RVX . 'DIFTIMP' : boundary condition on temperature
  97. * RVX . 'DIFGTIMP' : boundary condition on gradient of temperature
  98. * RVX . 'MDIFCT' : mesh in which we impose the temperature
  99. * arising from the convective BC
  100. * RVX . 'DIFVIMP' : boundary condition on speed
  101. * RVX . 'DIFGVIMP' : boundary condition on gradient of speed
  102. * RVX . 'MDIFCV' : mesh in which we impose the velocity
  103. * arising from the convective BC
  104. * RVX . 'DIFTAUI' : boundary condition on constraint tensor
  105. * RVX . 'DIFQIMP' : boundary condition on heat flux
  106. *
  107. *
  108.  
  109. 'DEBPROC' PNSSM ;
  110. 'ARGUMENT' RVX*TABLE ;
  111. *
  112. *
  113. 'SI' ('EXISTE' RVX 'RESULTS') ;
  114. 'MESS' 'Table RESULTS already exists' ;
  115. 'SINON' ;
  116. RVX . 'RESULTS' = 'TABLE' ;
  117. RVX . 'RESULTS' . 'TPS' = RVX . 'T0' ;
  118. RVX . 'RESULTS' . 'RN' = 'COPIER' (RVX . 'RN0') ;
  119. RVX . 'RESULTS' . 'GN' = 'COPIER' (RVX . 'GN0') ;
  120. RVX . 'RESULTS' . 'RET' = 'COPIER' (RVX . 'RET0') ;
  121. RVX . 'RESULTS' . 'LISTLINF' = 'PROG' ;
  122. RVX . 'RESULTS' . 'LISTITDT' = 'LECT' ;
  123. RVX . 'RESULTS' . 'LISTITER' = 'LECT' ;
  124. RVX . 'RESULTS' . 'NITER' = 0 ;
  125. 'FINSI' ;
  126.  
  127. MDOMINT = RVX . 'MODEL' ;
  128. NELT = 'NBEL' ('DOMA' MDOMINT 'CENTRE') ;
  129. *
  130. ***** Physical properties
  131. *
  132. GAMN = RVX . 'PGAS' . 'GAMN' ;
  133. GAMSCA1 = 'MAXIMUM' GAMN ;
  134. GAMSCA2 = 'MINIMUM' GAMN ;
  135. 'SI' ('EGA' GAMSCA2 GAMSCA1 0.0001) ;
  136. GAMSCAL = GAMSCA1 ;
  137. 'SINON' ;
  138. 'MESSAGE' ;
  139. 'MESSAGE' 'Gamma is not constant' ;
  140. 'ERREUR' 21 ;
  141. 'FINSI' ;
  142. *
  143. MU = (RVX . 'PGAS' . 'MU') ;
  144. LAMBDA = (RVX . 'PGAS' . 'LAMBDA') ;
  145. R = (RVX . 'PGAS' . 'R') ;
  146. CV = R '/' (GAMSCAL '-' 1.) ;
  147.  
  148. *
  149. LISTINCO = RVX . 'LISTCONS' ;
  150. LISTPRIM = RVX . 'LISTPRIM' ;
  151. LISTERR = RVX . 'LISTERR' ;
  152. * Names of the gradient of temperature
  153. LMGTEMP = 'MOTS' 'P1DX' 'P1DY' ;
  154. * Names of the gradient of speed
  155. LMGVIT = 'MOTS' 'P1DX' 'P1DY' 'P2DX' 'P2DY' ;
  156.  
  157. *
  158. * Upwind scheme
  159. *
  160. METO = RVX . 'METHOD' ;
  161.  
  162. * Space accuracy (1 or 2) and limiter
  163. * Time accuracy (1 or 2)
  164.  
  165. ORDESP = RVX . 'SPACEA' ;
  166. TYPELIM = RVX . 'LIMITER' ;
  167. ORDTPS = RVX . 'TIMEA' ;
  168.  
  169. * Initial/final time
  170. * Deltat or CFL
  171. TPS = RVX . 'RESULTS' . 'TPS' ;
  172. TFINAL = RVX . 'TFINAL' ;
  173. 'SI' ('EXISTE' RVX 'DTPS') ;
  174. 'SI' ('EXISTE' RVX 'CFL') ;
  175. 'MESSAGE' 'DTPS or CFL ???' ;
  176. 'ERREUR' 21 ;
  177. 'FINSI' ;
  178. DTPS = RVX . 'DTPS' ;
  179. 'SINON' ;
  180. CFL = RVX . 'CFL' ;
  181. 'FINSI' ;
  182.  
  183. * Dual time iterations
  184. NDT = RVX . 'NDTITER' ;
  185. * Relative error
  186. EPSDT = RVX . 'EPSDT' ;
  187. * Jacobi iterations
  188. * NJAC = RVX . 'NJAC' ;
  189. * Cut off speed
  190. ICO = RVX . 'CUTOFF' ;
  191. * To compute the diffusive cut-off
  192. DELTAX = 'DOMA' MDOMINT 'XXDIEMIN' ;
  193. USDELTAX = 'INVERSE' DELTAX ;
  194. *
  195. **** Conservative variables
  196. *
  197. *
  198. MOT1 = 'EXTRAIRE' LISTINCO 1 ;
  199. 'SI' ('EGA' ('VALE' 'DIME') 2) ;
  200. NOMMOM = 'EXTRAIRE' LISTINCO
  201. ('LECT' 2 3 ) ;
  202. NOMVEL = 'MOTS' 'UX' 'UY' ;
  203. MOT2 = 'EXTRAIRE' LISTINCO 4 ;
  204. 'SINON' ;
  205. NOMMOM = 'EXTRAIRE' LISTINCO
  206. ('LECT' 2 3 4) ;
  207. NOMVEL = 'MOTS' 'UX' 'UY' 'UZ' ;
  208. MOT2 = 'EXTRAIRE' LISTINCO 5 ;
  209. 'FINSI' ;
  210.  
  211. RN0 = 'REDU' (RVX . 'RESULTS' . 'RN') ('DOMA' MDOMINT 'CENTRE') ;
  212. GN0 = 'REDU' (RVX . 'RESULTS' . 'GN') ('DOMA' MDOMINT 'CENTRE') ;
  213. RET0 = 'REDU' (RVX . 'RESULTS' . 'RET') ('DOMA' MDOMINT 'CENTRE') ;
  214. *
  215. **** Primitive variables
  216. *
  217. VN0 PN0 = 'PRIM' 'PERFMONO' RN0 GN0 RET0 GAMN ;
  218. TN0 = PN0 '/' (R '*' RN0) ;
  219.  
  220. MOTRN = 'EXTRAIRE' LISTPRIM 1 ;
  221. 'SI' ('EGA' ('VALE' 'DIME') 2) ;
  222. MOTVN = 'EXTRAIRE' LISTPRIM
  223. ('LECT' 2 3 ) ;
  224. MOTPN = 'EXTRAIRE' LISTPRIM 4 ;
  225. 'SINON' ;
  226. MOTVN = 'EXTRAIRE' LISTPRIM
  227. ('LECT' 2 3 4) ;
  228. MOTPN = 'EXTRAIRE' LISTPRIM 5 ;
  229. 'FINSI' ;
  230. *
  231. ********************************************************************
  232. **** Coeff to compute gradients for convective term (MCHSCA, MCHVEC)
  233. **** and for diffusive terms (MCHDIT, MCHVEC)
  234. ********************************************************************
  235. *
  236. * Boundary conditions have to be taken into account
  237. *
  238.  
  239. RCHLIM RESLIM = PROLIM (RVX . 'PROLIM') MDOMINT LISTINCO LISTPRIM
  240. RN0 VN0 PN0 GAMN ;
  241.  
  242. MAILLIM = 'EXTRAIRE' RCHLIM 'MAILLAGE' ;
  243.  
  244. *
  245. * If only wall conditions (Maillim is then empty)
  246. *
  247.  
  248. 'SI' (MAILLIM 'EGA' 0) ;
  249.  
  250. CHPVID PIPI = 'KOPS' 'MATRIK' ;
  251. MAILLIM = 'DIFF' ('DOMA' MDOMINT 'CENTRE')
  252. ('DOMA' MDOMINT 'CENTRE') ;
  253.  
  254. * Convective geometric coefficients
  255.  
  256. GRADRN ALRN MCHSCA = 'PENT' MDOMINT 'CENTRE' 'EULESCAL' 'NOLIMITE'
  257. ('MOTS' 'SCAL') RN0 ;
  258.  
  259. GRADVN ALVN MCHVEC = 'PENT' MDOMINT 'CENTRE' 'EULEVECT' 'NOLIMITE'
  260. NOMVEL GN0 'CLIM' (RVX . 'DIFVIMP') ;
  261.  
  262. * Diffusive geometric coefficients
  263.  
  264. GRADTN MCHDIT = 'PENT' MDOMINT 'FACE' 'DIAMAN2' ('MOTS' 'SCAL')
  265. LMGTEMP TN0 (RVX . 'DIFTIMP') (RVX . 'DIFGTIMP') ;
  266.  
  267. GRADVN MCHDIV = 'PENT' MDOMINT 'FACE' 'DIAMAN2' NOMVEL LMGVIT
  268. VN0 (RVX . 'DIFVIMP') (RVX . 'DIFGVIMP') ;
  269.  
  270. *
  271. * If other imposed Boudary conditions we create false Chpoints
  272. *
  273.  
  274. 'SINON' ;
  275.  
  276. * Convective false champoints
  277.  
  278. SCALBC = 'MANUEL' 'CHPO' MAILLIM 1 'SCAL' 1.0
  279. 'NATU' 'DISCRET' ;
  280.  
  281. 'SI' (('VALEUR' 'DIME') 'EGA' 2) ;
  282. VECTBC = 'MANUEL' 'CHPO' MAILLIM
  283. 2 'UX' 0.0 'UY' 0.0 'NATU' 'DISCRET' ;
  284. * Same name as NOMVEL
  285. 'SINON' ;
  286. VECTBC = 'MANUEL' 'CHPO' MAILLIM
  287. 3 'UX' 0.0 'UY' 0.0 'UZ' 0.0 'NATU' 'DISCRET' ;
  288. 'FINSI' ;
  289.  
  290. VECTBC = VECTBC '+' (RVX . 'DIFVIMP') ;
  291.  
  292. * Convective geometric coefficients
  293.  
  294. GRADRN ALRN MCHSCA = 'PENT' MDOMINT 'CENTRE' 'EULESCAL' 'NOLIMITE'
  295. ('MOTS' 'SCAL') RN0 'CLIM' SCALBC ;
  296.  
  297. GRADVN ALVN MCHVEC = 'PENT' MDOMINT 'CENTRE' 'EULEVECT' 'NOLIMITE'
  298. NOMVEL VN0 'CLIM' VECTBC ;
  299. 'FINSI' ;
  300.  
  301. *
  302. * Diffusive false champoints
  303. *
  304. * We have several possibility
  305. * We decide to impose the temperature given by the convective boundary
  306. * condition on (RVX . 'MDIFCT') and the velocity given by the
  307. * convective boundary condition on (RVX . 'MDIFCV')
  308. *
  309. * We check that (RVX . 'MDIFCT') belongs to MAILLIM
  310. *
  311. NN1 = 'NBEL' MAILLIM ;
  312. NN2 = 'NBEL' (RVX . 'MDIFCT') ;
  313. 'SI' (('NEG' NN1 0) 'ET' ('NEG' NN2 0)) ;
  314. *
  315. *** If both meshes contain at least one element NN1 is equal
  316. * to the number of elements belonging to the intersection.
  317. * Otherwise NN1 = 0
  318. *
  319. NN1 = 'NBEL' ('INTERSECTION' (RVX . 'MDIFCT') MAILLIM) ;
  320. 'FINSI' ;
  321. 'SI' ('NEG' NN1 NN2) ;
  322. 'MESSAGE' 'Problem in MDIFCT' ;
  323. 'ERREUR' 21 ;
  324. 'FINSI' ;
  325. SCALBC = 'MANUEL' 'CHPO' (RVX . 'MDIFCT') 1 'SCAL' 1.0
  326. 'NATU' 'DISCRET' ;
  327. SCALBC = SCALBC '+' (RVX . 'DIFTIMP') ;
  328.  
  329. NN2 = 'NBEL' (RVX . 'MDIFCV') ;
  330. 'SI' (('NEG' NN1 0) 'ET' ('NEG' NN2 0)) ;
  331. NN1 = 'NBEL' ('INTERSECTION' (RVX . 'MDIFCV') MAILLIM) ;
  332. 'FINSI' ;
  333. 'SI' ('NEG' NN1 NN2) ;
  334. 'MESSAGE' 'Problem in MDIFCV' ;
  335. 'ERREUR' 21 ;
  336. 'FINSI' ;
  337. 'SI' (('VALEUR' 'DIME') 'EGA' 2) ;
  338. VECTBC = 'MANUEL' 'CHPO' (RVX . 'MDIFCV')
  339. 2 'UX' 0.0 'UY' 0.0 'NATU' 'DISCRET' ;
  340. 'SINON' ;
  341. VECTBC = 'MANUEL' 'CHPO' (RVX . 'MDIFCV')
  342. 3 'UX' 0.0 'UY' 0.0 'UZ' 0.0 'NATU' 'DISCRET' ;
  343. 'FINSI' ;
  344. *
  345. VECTBC = VECTBC '+' (RVX . 'DIFVIMP') ;
  346. *
  347. * Diffusive geometric coefficients
  348.  
  349. GRADTN MCHDIT = 'PENT' MDOMINT 'FACE' 'DIAMAN2' ('MOTS' 'SCAL')
  350. LMGTEMP TN0 SCALBC (RVX . 'DIFGTIMP') ;
  351. *
  352. GRADVN MCHDIV = 'PENT' MDOMINT 'FACE' 'DIAMAN2' NOMVEL LMGVIT
  353. VN0 VECTBC (RVX . 'DIFGVIMP') ;
  354. *
  355. ***************************************************************
  356. *** After each dual time loop, we could display
  357. * the evolution of the error in the dual time loop
  358. * the evolution of the dual time step (the safety factor)
  359. ***************************************************************
  360. *
  361.  
  362. LISTLINF = RVX . 'RESULTS' . 'LISTLINF' ;
  363. LISTITDT = RVX . 'RESULTS' . 'LISTITDT' ;
  364. LISTITER = RVX . 'RESULTS' . 'LISTITER' ;
  365. *
  366. 'MESSAGE' ;
  367. 'MESSAGE' ('CHAINE' 'Methode = ' METO) ;
  368. 'MESSAGE' ;
  369. *
  370. 'TEMPS' 'ZERO' ;
  371. *
  372. ************************************************************************
  373. ************************************************************************
  374. **** Temporal loop *****************************************************
  375. ************************************************************************
  376. ************************************************************************
  377.  
  378. RN_N1M1 = 'COPIER' RN0 ;
  379. GN_N1M1 = 'COPIER' GN0 ;
  380. RET_N1M1 = 'COPIER' RET0 ;
  381.  
  382. AA = 'DIME' LISTITER ;
  383. 'SI' (AA > 0) ;
  384. PTITER = 'EXTRAIRE' LISTITER AA ;
  385. 'SINON' ;
  386. PTITER = 0 ;
  387. 'FINSI' ;
  388.  
  389. DUSDT = 0.0D0 ;
  390.  
  391. 'REPETER' BLITER (RVX . 'NITER') ;
  392.  
  393. PTITER = PTITER '+' 1 ;
  394. *
  395. **** Personal procedure
  396. *
  397. PROCPT RVX ;
  398. *
  399. *
  400. **** _N1M = (t^n,\tau^m)
  401. * _N1M1 = (t^n,\tau^{m+1})
  402. *
  403. *
  404. ************************************************************************
  405. ****** Loop on dual time***********************************************
  406. ************************************************************************
  407. *
  408. *
  409. *** DUSDT0 is the increment of DUSDT in the previous (physical) time
  410. * iteration.
  411. *
  412. DUSDT0 = DUSDT ;
  413. DUSDT = 0.0D0 ;
  414.  
  415. 'REPETER' BLDT NDT ;
  416.  
  417. RN_N1M = RN_N1M1 ;
  418. GN_N1M = GN_N1M1 ;
  419. RET_N1M = RET_N1M1 ;
  420. *
  421. **** Primitive variables
  422. *
  423.  
  424. VN_N1M PN_N1M = 'PRIM' 'PERFMONO' RN_N1M GN_N1M RET_N1M GAMN ;
  425. *
  426. *** Boundary conditions
  427. *
  428.  
  429. RCHLIM RESLIM = PROLIM (RVX . 'PROLIM') MDOMINT LISTINCO LISTPRIM
  430. RN_N1M VN_N1M PN_N1M GAMN ;
  431.  
  432. *
  433. ****** First/second order reconstruction
  434. *
  435. 'SI' (ORDESP 'EGA' 2) ;
  436. *
  437. NNLIM = 'NBNO' MAILLIM ;
  438. 'SI' (NNLIM 'EGA' 0) ;
  439. RNLIM = CHPVID ;
  440. PNLIM = CHPVID ;
  441. VNLIM = RVX . 'DIFVIMP' ;
  442. 'SINON' ;
  443. RNLIM = ('EXCO' MOTRN RCHLIM 'SCAL') ;
  444. PNLIM = ('EXCO' MOTPN RCHLIM 'SCAL') ;
  445. VNLIM = ('EXCO' MOTVN RCHLIM MOTVN)
  446. '+' (RVX . 'DIFVIMP') ;
  447. 'FINSI' ;
  448. GRADRN ALRN0 = 'PENT' MDOMINT 'CENTRE' 'EULESCAL' TYPELIM
  449. ('MOTS' 'SCAL') RN_N1M
  450. 'CLIM' RNLIM 'GRADGEO' MCHSCA ;
  451. GRADPN ALPN0 = 'PENT' MDOMINT 'CENTRE' 'EULESCAL' TYPELIM
  452. ('MOTS' 'SCAL') PN_N1M
  453. 'CLIM' PNLIM 'GRADGEO' MCHSCA ;
  454. GRADVN ALVN0 = 'PENT' MDOMINT 'CENTRE' 'EULEVECT' TYPELIM
  455. ('MOTS' 'UX' 'UY') VN_N1M
  456. 'CLIM' VNLIM 'GRADGEO' MCHVEC ;
  457.  
  458. * 'SI' (&BLDT < NLCB) ;
  459. * ALRN0 = 'COPIER' ALRN ;
  460. * ALPN0 = 'COPIER' ALPN ;
  461. * ALVN0 = 'COPIER' ALVN ;
  462. * 'SINON' ;
  463. * 'SI' (&BLDT 'EGA' NLCB) ;
  464. * 'MESSAGE' ;
  465. * 'MESSAGE' 'On gele les limiteurs!!!' ;
  466. * 'MESSAGE' ;
  467. * 'FINSI' ;
  468. * 'FINSI' ;
  469.  
  470. ROF VITF PF GAMF = 'PRET' 'PERFMONO' 2 1
  471. MDOMINT
  472. RN_N1M GRADRN ALRN0
  473. VN_N1M GRADVN ALVN0
  474. PN_N1M GRADPN ALPN0
  475. GAMN ;
  476. 'SINON' ;
  477. ROF VITF PF GAMF = 'PRET' 'PERFMONO' 1 1
  478. MDOMINT
  479. RN_N1M VN_N1M PN_N1M GAMN ;
  480. 'FINSI' ;
  481.  
  482. RESIDU DELTAT = 'KONV' 'VF' 'PERFMONO' 'RESI' METO
  483. MDOMINT LISTINCO ROF VITF PF GAMF MAILLIM
  484. * ICO (MU '*' ('INVERSE' RN_N1M) '*' USDELTAX) ;
  485. ICO ICO ;
  486. RESIDU = RESIDU '+' RESLIM ;
  487.  
  488. *
  489. **** La gravite
  490. *
  491.  
  492. RESGRA = 'FIMP' 'VF' 'GRAVMONO' 'RESI' LISTINCO
  493. RN_N1M GN_N1M1 (RVX . 'GRAVITY') ;
  494.  
  495. RESIDU = RESIDU '+' RESGRA ;
  496. *
  497. **************************************
  498. **** Diffusive terms *****************
  499. **************************************
  500. *
  501. TN_N1M = PN_N1M '/' (R '*' RN_N1M) ;
  502. *
  503. * Computation of the CHPOINTS at the boundary of the domain
  504. *
  505. NN1 = 'NBEL' MAILLIM ;
  506. 'SI' (NN1 > 0) ;
  507. RNLIM = 'EXCO' MOTRN RCHLIM 'SCAL' 'NATU' 'DISCRET' ;
  508. PNLIM = 'EXCO' MOTPN RCHLIM 'SCAL' 'NATU' 'DISCRET' ;
  509. VNLIM = ('EXCO' MOTVN RCHLIM MOTVN 'NATU' 'DISCRET') ;
  510. TNLIM = (PNLIM '/' (RNLIM '*' R) ) ;
  511. VNLIM = ('REDU' VNLIM (RVX . 'MDIFCV')) '+'
  512. (RVX . 'DIFVIMP') ;
  513. TNLIM = ('REDU' TNLIM (RVX . 'MDIFCV')) '+'
  514. (RVX . 'DIFTIMP') ;
  515. 'SINON' ;
  516. VNLIM = (RVX . 'DIFVIMP') ;
  517. TNLIM = (RVX . 'DIFVIMP') ;
  518. 'FINSI' ;
  519. *
  520. GRADTN = 'PENT' MDOMINT 'FACE' 'DIAMAN2' ('MOTS' 'SCAL')
  521. LMGTEMP TN_N1M TNLIM (RVX . 'DIFGTIMP')
  522. 'GRADGEO' MCHDIT ;
  523. *
  524. * 'LIST' (RVX . 'DIFGVIMP') ;
  525. GRADVN = 'PENT' MDOMINT 'FACE' 'DIAMAN2' NOMVEL
  526. LMGVIT VN_N1M VNLIM (RVX . 'DIFGVIMP')
  527. 'GRADGEO' MCHDIV ;
  528. *
  529. * NOMVEL = 'MOTS' 'UX' 'UY' ;
  530. *
  531. ICACCA RESIDI DTCACCA = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'EXPL'
  532. MDOMINT MU LAMBDA CV RN_N1M VN_N1M TN_N1M GRADVN GRADTN
  533. LISTINCO 'VIMP' VNLIM 'TAUI' (RVX . 'DIFTAUI')
  534. 'QIMP' (RVX . 'DIFQIMP') ;
  535.  
  536. RESIDU = RESIDU '+' RESIDI ;
  537. *
  538. ***** Spectral radious of the viscosity matrix
  539. *
  540. COEFV1 = (0.0 '*' RN_N1M) '+' 1.0 ;
  541. COEFV1 = COEFV1 '*' (lambda '*' (gamscal '-' 1.)) ;
  542. COEFV1 = COEFV1 '/' (R '*' RN_N1M) ;
  543. COEFV2 = (0.0 '*' RN_N1M) '+' ((4. '/' 3.) '*' MU) ;
  544. COEFV2 = COEFV2 '/' RN_N1M ;
  545. COEFV = 0.5 '*' (COEFV1 '+' COEFV2) ;
  546. COEFV = COEFV '+' (0.5 '*' ((COEFV1 '-' COEFV2) 'ABS')) ;
  547. * 'MESSAGE' ;
  548. * 'MESSAGE' 'Je fais n importe' ;
  549. * COEFV = COEFV '*' 0.25 ;
  550. *
  551. ****** Residuum for dual tims stepping also involved the
  552. * variation of the conserved variables with respect
  553. * to time
  554.  
  555. 'SI' ((&BLITER 'EGA' 1) 'OU' (ORDTPS 'EGA' 1)) ;
  556. RESIDU = RESIDU '-' DUSDT ;
  557. 'SINON' ;
  558. RESIDU = RESIDU '-' ((1.5 '*' DUSDT) '-' (0.5 '*' DUSDT0)) ;
  559. 'FINSI' ;
  560.  
  561. *
  562. *** Time step at the first iteration/jacobi iteration
  563. *
  564.  
  565. 'SI' (&BLDT 'EGA' 1) ;
  566. 'SI' ('EXISTE' RVX 'CFL') ;
  567. DTPS = (RVX . 'CFL') '*' 2.0D0 '*' DELTAT ;
  568. 'SINON' ;
  569. DTPS = RVX . 'DTPS' ;
  570. 'FINSI' ;
  571. DTPS = 'MINIMUM' ('PROG' DTPS ((TFINAL '-' TPS) '*' 1.001)) ;
  572. TPS = TPS '+' DTPS ;
  573. *
  574. NJAC = 'ENTIER' ('MINIMUM' (RVX . 'NJACITER')) ;
  575. NJAC0 = NJAC ;
  576. 'SINON' ;
  577. NJAC = 'IPOL' (('LOG' ERRINF) '/' ('LOG' 10))
  578. (RVX . 'NJACLERR') (RVX . 'NJACITER') ;
  579. NJAC = 'MAXIMUM' ('PROG' NJAC0 NJAC) ;
  580. NJAC = 'ENTIER' NJAC ;
  581. NJAC0 = NJAC ;
  582. 'FINSI' ;
  583.  
  584. *
  585. *** JACOBI
  586. *
  587.  
  588. *
  589. **** CFL dual
  590. *
  591. 'SI' (&BLDT 'EGA' 1) ;
  592. SAFFACD = ('MINIMUM' (RVX . 'DCFL')) '*' 2 ;
  593. 'SINON' ;
  594. SAFFACD = ('IPOL' (('LOG' ERRINF) '/' ('LOG' 10))
  595. (RVX . 'DCFLERR') (RVX . 'DCFL')) '*' 2 ;
  596. 'FINSI' ;
  597.  
  598. 'SI' ((&BLITER 'EGA' 1) 'OU' (ORDTPS 'EGA' 1)) ;
  599. * DUN IPRO = 'DETO' (RVX . 'TYPEJAC')
  600. DUN IPRO = 'KONV' 'VF' 'PMON1FMM' (RVX . 'TYPEJAC')
  601. LISTINCO MDOMINT RESIDU RN_N1M GN_N1M RET_N1M GAMN ICO
  602. DTPS SAFFACD
  603. NJAC 'CLIM' LISTPRIM RCHLIM COEFV ;
  604. 'SINON' ;
  605. * DUN IPRO = 'DETO' (RVX . 'TYPEJAC')
  606. DUN IPRO = 'KONV' 'VF' 'PMON1FMM' (RVX . 'TYPEJAC')
  607. LISTINCO MDOMINT RESIDU RN_N1M GN_N1M RET_N1M GAMN ICO
  608. (DTPS '/' 1.5)
  609. SAFFACD NJAC 'CLIM' LISTPRIM RCHLIM COEFV ;
  610. 'FINSI' ;
  611. * 'FINSI' ;
  612.  
  613. 'SI' (IPRO 'NEG' 0) ;
  614. 'MESSAGE' ;
  615. 'MESSAGE' 'Probleme dans FMM' ;
  616. 'MESSAGE' ;
  617. 'ERREUR' 21 ;
  618. 'FINSI' ;
  619.  
  620. *
  621. **** We compute DUSDT for the future loop
  622. *
  623.  
  624. DUSDT = DUSDT '+' (DUN '/' DTPS) ;
  625.  
  626. *
  627. **** We evaluate the conservative variables at t^{n+1}, \tau^{m+1}
  628. *
  629.  
  630. DRN = 'EXCO' MOT1 DUN 'SCAL' ;
  631. DGN = 'EXCO' NOMMOM DUN NOMVEL ;
  632. DRET = 'EXCO' MOT2 DUN 'SCAL' ;
  633.  
  634. RN_N1M1 = RN_N1M '+' DRN ;
  635. GN_N1M1 = GN_N1M '+' DGN ;
  636. RET_N1M1 = RET_N1M '+' DRET ;
  637.  
  638. ERRINF = 'MAXIMUM' DUN 'ABS' LISTERR ;
  639. LISTLINF = LISTLINF 'ET' ('PROG' ERRINF) ;
  640. LISTITDT = LISTITDT 'ET' ('LECT' &BLDT) ;
  641. LISTITER = LISTITER 'ET' ('LECT' PTITER) ;
  642.  
  643. 'SI' ((&BLDT 'EGA' 1) 'OU'
  644. (((&BLDT '/' (RVX . 'FREQI')) '*' (RVX . 'FREQI'))
  645. 'EGA' &BLDT)) ;
  646. 'MESSAGE' ;
  647. 'MESSAGE'
  648. ('CHAINE' 'ITER =' PTITER ' TPS =' TPS
  649. ' DTITER =' &BLDT ' LINF =' ERRINF
  650. ' DCFL =' SAFFACD ' NJAC =' NJAC) ;
  651. 'MESSAGE' ;
  652. 'FINSI' ;
  653. *
  654. *
  655. *** Update of RVX . 'RESULTS'
  656. *
  657. RVX . 'RESULTS' . 'RN' = RN_N1M1 ;
  658. RVX . 'RESULTS' . 'GN' = GN_N1M1 ;
  659. RVX . 'RESULTS' . 'RET' = RET_N1M1 ;
  660. RVX . 'RESULTS' . 'LISTITDT' = LISTITDT ;
  661. RVX . 'RESULTS' . 'LISTITER' = LISTITER ;
  662. RVX . 'RESULTS' . 'LISTLINF' = LISTLINF ;
  663. *
  664. 'SI' (RVX . 'RELERR') ;
  665. * Relative error
  666. 'SI' (&BLDT 'EGA' 1) ;
  667. ERRINF0 = ERRINF ;
  668. 'SINON' ;
  669. 'SI' (ERRINF < (EPSDT '*' ERRINF0)) ;
  670. 'QUITTER' BLDT ;
  671. 'FINSI' ;
  672. 'FINSI' ;
  673. 'SINON' ;
  674. 'SI' (ERRINF < EPSDT) ;
  675. 'QUITTER' BLDT ;
  676. 'FINSI' ;
  677. 'FINSI' ;
  678.  
  679.  
  680. 'FIN' BLDT ;
  681.  
  682. ************************************************************************
  683. ****** End of the loop on dual time*************************************
  684. ************************************************************************
  685. *
  686. *** Update of RVX . 'RESULTS'
  687. *
  688. RVX . 'RESULTS' . 'TPS' = TPS ;
  689. RVX . 'RESULTS' . 'NITER' = (RVX . 'RESULTS' . 'NITER') '+' 1 ;
  690. *
  691. 'SI' (TPS '>EG' TFINAL) ;
  692. 'QUITTER' BLITER ;
  693. 'FINSI' ;
  694.  
  695. 'FIN' BLITER ;
  696.  
  697. TCPU = 'TEMPS' 'NOEC' ;
  698. RVX . 'RESULTS' . 'TCPU' = TCPU ;
  699.  
  700. 'FINPROC' ;
  701.  
  702. *************************************************************************
  703. ****** FIN PROCEDURE PNSSM **********************************************
  704. *************************************************************************
  705.  
  706. *************************************************************************
  707. ******PROCEDURE PROLIM **************************************************
  708. *************************************************************************
  709. *
  710. 'DEBPROC' PROLIM ;
  711.  
  712. 'ARGUMENT' RVX*'TABLE' MDOMINT*'MMODEL' LISTINCO*'LISTMOTS'
  713. LISTPRIM*'LISTMOTS'
  714. RN*'CHPOINT' VN*'CHPOINT' PN*'CHPOINT' GAMN*'CHPOINT' ;
  715.  
  716. *
  717. * Récupération du nombres de CL imposées
  718. *
  719.  
  720. NCL = RVX . 'N' ;
  721.  
  722. *
  723. * Initialisation de RESLIM et de RCHLIM
  724. *
  725.  
  726. RESLIM VIDE = 'KOPS' MATRIK ;
  727. RCHLIM VIDE = 'KOPS' MATRIK ;
  728.  
  729. *
  730. * Boucle d'évaluation des résidus et des CHPOINTS aux limites
  731. *
  732.  
  733. 'REPETER' BCLIM NCL ;
  734.  
  735. MOTCLI = 'EXTRAIRE' (RVX . 'CLN' . &BCLIM) 1 ;
  736. MODELI = RVX . 'MODELN' . &BCLIM ;
  737. CHPOLI = RVX . 'CHPOLN' . &BCLIM ;
  738.  
  739. RCHLI RESLI = 'KONV' 'VF' 'PERFMONO' 'CLIM' 'RESI'
  740. MDOMINT MODELI LISTINCO LISTPRIM
  741. RN VN PN GAMN
  742. CHPOLI MOTCLI ;
  743.  
  744. RCHLIM = RCHLIM '+' RCHLI ;
  745. RESLIM = RESLIM '+' RESLI ;
  746.  
  747. 'FIN' BCLIM ;
  748.  
  749. 'RESPRO' RCHLIM RESLIM ;
  750. 'FINPROC' ;
  751.  
  752. *************************************************************************
  753. ****** FIN PROCEDURE PROLIM *********************************************
  754. *************************************************************************
  755.  
  756. *************************************************************************
  757. *************************************************************************
  758. ***************FIN PROCEDURES *******************************************
  759. *************************************************************************
  760. *************************************************************************
  761.  
  762. *************************************************************************
  763. *************************************************************************
  764. * II) MESH *************************************************************
  765. *************************************************************************
  766. *************************************************************************
  767.  
  768. GRAPH = FAUX ;
  769. NRAFF = 20 ;
  770.  
  771. L1 = 0.5 ;
  772. L2 = 2.;
  773. H1= 1.;
  774. H2 = 1. ;
  775.  
  776. DX1 = 2.0 '/' NRAFF ;
  777. DX2 = 0.5 '/' NRAFF ;
  778. DY1 = 0.5 '*' DX2 ;
  779. DY2 = 2.0 '*' DX1 ;
  780.  
  781. *
  782. * P6 P5 P4
  783. * DX1 DY2
  784. *
  785. * DOM1 DOM2
  786. *
  787. *
  788. * DX1 DY1 DX2 DX2 DX1
  789. * P1 ---------------------|
  790. * wall P2 P3
  791. * P1A---------------------|
  792. * DX1 DY1
  793. *
  794. *
  795. * DOM1A DOM2A
  796. *
  797. *
  798. * DX1 DY2
  799. * P6A P5A P4A
  800. *
  801. *
  802. P1 = (0.0 '-' L1) 0.0 ;
  803. P2 = (L1 '-' L1) 0.0 ;
  804. P3 = (L1 '+' L2 '-' L1) 0.0 ;
  805. P4 = (L1 '+' L2 '-' L1) H1 ;
  806. P5 = (L1 '-' L1) H1 ;
  807. P6 = (0.0 '-' L1) H1 ;
  808.  
  809. P1A = (0.0 '-' L1) 0.0 ;
  810. P4A = (L1 '+' L2 '-' L1) (-1 * H2) ;
  811. P5A = (L1 '-' L1) (-1 * H2) ;
  812. P6A = (0.0 '-' L1) (-1 * H2) ;
  813.  
  814. * Top
  815.  
  816. P1P2 = P1 'DROIT' P2 'DINI' DX1 'DFIN' DX2 ;
  817. P2P3 = P2 'DROIT' P3 'DINI' DX2 'DFIN' DX1 ;
  818. P6P5 = P6 'DROIT' P5 'DINI' DX1 'DFIN' DX2 ;
  819. P5P4 = P5 'DROIT' P4 'DINI' DX2 'DFIN' DX1 ;
  820. P6P4 = P6P5 'ET' P5P4 ;
  821.  
  822. DOM1 = 'REGLER' P1P2 P6P5 'DINI' DY1 'DFIN' DY2 ;
  823. DOM2 = 'REGLER' P2P3 P5P4 'DINI' DY1 'DFIN' DY2 ;
  824. 'ELIMINATION' DOM1 (DY1 '/' 100) DOM2 ;
  825.  
  826. CONT1 = 'CONTOUR' DOM1 ;
  827. P6P1 = 'ELEM' CONT1 'COMP' P6 P1 ;
  828. CONT2 = 'CONTOUR' DOM2 ;
  829. P3P4 = 'ELEM' CONT2 'COMP' P3 P4 ;
  830. * Bottom
  831.  
  832. P1AP2 = P1A 'DROIT' P2 'DINI' DX1 'DFIN' DX2 ;
  833. P6AP5A = P6A 'DROIT' P5A 'DINI' DX1 'DFIN' DX2 ;
  834. P5AP4A = P5A 'DROIT' P4A 'DINI' DX2 'DFIN' DX1 ;
  835. P6AP4A = P6AP5A 'ET' P5AP4A ;
  836.  
  837. DOM1A = 'REGLER' P1AP2 P6AP5A 'DINI' DY1 'DFIN' DY2 ;
  838. DOM2A = 'REGLER' P2P3 P5AP4A 'DINI' DY1 'DFIN' DY2 ;
  839. 'ELIMINATION' DOM1A (DY1 '/' 100) DOM2A ;
  840.  
  841. CONT1 = 'CONTOUR' DOM1A ;
  842. P1AP6A = 'ELEM' CONT1 'COMP' P6A P1A ;
  843. CONT2 = 'CONTOUR' DOM2A ;
  844. P3P4A = 'ELEM' CONT2 'COMP' P3 P4A ;
  845.  
  846. *
  847.  
  848. DOMINT = DOM1 'ET' DOM2 'ET' DOM1A 'ET' DOM2A ;
  849. 'SI' GRAPH ;
  850. 'TRACER' (DOMINT 'ET' (P6P1 'COULEUR' 'ROUG'))
  851. 'TITRE' 'P6P1' ;
  852. 'TRACER' (DOMINT 'ET' (P3P4 'COULEUR' 'ROUG'))
  853. 'TITRE' 'P3P4' ;
  854. 'TRACER' (DOMINT 'ET' (P1AP6A 'COULEUR' 'ROUG'))
  855. 'TITRE' 'P1AP6A' ;
  856. 'TRACER' (DOMINT 'ET' (P3P4A 'COULEUR' 'ROUG'))
  857. 'TITRE' 'P3P4A' ;
  858. aa = 'CONTOUR' DOMINT 'COULEUR' ROUG ;
  859. 'TRACER' (DOMINT 'ET' aa) 'TITRE'
  860. ('CHAINE' 'nbel = ' ('NBEL' DOMINT)) ;
  861. 'FINSI' ;
  862.  
  863. *
  864. **** Model objs
  865. *
  866.  
  867. MDOMINT = 'MODELISER' DOMINT 'EULER' ;
  868. MDOM1 = 'MODELISER' DOM1 'EULER' ;
  869. MDOM2 = 'MODELISER' DOM2 'EULER' ;
  870. MDOM1A = 'MODELISER' DOM1A 'EULER' ;
  871. MDOM2A = 'MODELISER' DOM2A 'EULER' ;
  872. *
  873. * P1P6, P1AP6A = inlet (on the left)
  874. * P1P2, P12P2 = separating (infinitely thin) slip wall
  875. * P3P4, P3P4A = outlet (on the left)
  876. * P6P4, P6AP4A = inlet/outlet (top/bottom)
  877. *
  878. MP1P6 = 'MODELISER' P6P1 'EULER' ;
  879. MP1P2 = 'MODELISER' P1P2 'EULER' ;
  880. MP3P4 = 'MODELISER' P3P4 'EULER' ;
  881. MP6P4 = 'MODELISER' P6P4 'EULER' ;
  882. *
  883. MP1AP6A = 'MODELISER' P1AP6A 'EULER' ;
  884. MP1AP2 = 'MODELISER' P1AP2 'EULER' ;
  885. MP3P4A = 'MODELISER' P3P4A 'EULER' ;
  886. MP6AP4A = 'MODELISER' P6AP4A 'EULER' ;
  887. *
  888. TDOMINT = 'DOMA' MDOMINT 'VF' ;
  889. TDOM1 = 'DOMA' MDOM1 'VF' ;
  890. TDOM2 = 'DOMA' MDOM2 'VF' ;
  891. TDOM1A = 'DOMA' MDOM1A 'VF' ;
  892. TDOM2A = 'DOMA' MDOM2A 'VF' ;
  893. *
  894. TP1P6 = 'DOMA' MP1P6 'VF' ;
  895. TP1P2 = 'DOMA' MP1P2 'VF' ;
  896. TP3P4 = 'DOMA' MP3P4 'VF' ;
  897. TP6P4 = 'DOMA' MP6P4 'VF' ;
  898.  
  899. TP1AP6A = 'DOMA' MP1AP6A 'VF' ;
  900. TP1AP2 = 'DOMA' MP1AP2 'VF' ;
  901. TP3P4A = 'DOMA' MP3P4A 'VF' ;
  902. TP6AP4A = 'DOMA' MP6AP4A 'VF' ;
  903. *
  904. QDOMINT = 'DOMA' MDOMINT 'QUAF' ;
  905. QDOM1 = 'DOMA' MDOM1 'QUAF' ;
  906. QDOM2 = 'DOMA' MDOM2 'QUAF' ;
  907. QDOM1A = 'DOMA' MDOM1A 'QUAF' ;
  908. QDOM2A = 'DOMA' MDOM2A 'QUAF' ;
  909. *
  910. QP1P6 = 'DOMA' MP1P6 'QUAF' ;
  911. QP1P2 = 'DOMA' MP1P2 'QUAF' ;
  912. QP3P4 = 'DOMA' MP3P4 'QUAF' ;
  913. QP6P4 = 'DOMA' MP6P4 'QUAF' ;
  914.  
  915. QP1AP6A = 'DOMA' MP1AP6A 'QUAF' ;
  916. QP1AP2 = 'DOMA' MP1AP2 'QUAF' ;
  917. QP3P4A = 'DOMA' MP3P4A 'QUAF' ;
  918. QP6AP4A = 'DOMA' MP6AP4A 'QUAF' ;
  919.  
  920. *
  921. **** Elimination of QUAF points slightly difficult
  922. *
  923. 'ELIMINATION' (TDOMINT . 'CENTRE') (DY1 '/' 100) (TDOM1 .'CENTRE') ;
  924. 'ELIMINATION' (TDOMINT . 'CENTRE') (DY1 '/' 100) (TDOM2 .'CENTRE') ;
  925. 'ELIMINATION' (TDOMINT . 'CENTRE') (DY1 '/' 100) (TDOM1A .'CENTRE') ;
  926. 'ELIMINATION' (TDOMINT . 'CENTRE') (DY1 '/' 100) (TDOM2A .'CENTRE') ;
  927. *
  928. QQDOM1 = QDOMINT 'INCL' QDOM1 'BARY' ;
  929. QQDOM1B = QDOMINT 'ELEM' 'APPU' 'LARG' (TDOM1 .'CENTRE') ;
  930. NEL = 'NBEL' ('DIFF' QQDOM1 QQDOM1B) ;
  931. 'SI' ((('NBEL' QDOM1) 'NEG' ('NBEL' QQDOM1)) 'OU' (NEL 'NEG' 0)) ;
  932. 'ERREUR' 21 ;
  933. 'FINSI' ;
  934. QQDOM2 = QDOMINT 'INCL' QDOM2 'BARY' ;
  935. QQDOM2B = QDOMINT 'ELEM' 'APPU' 'LARG' (TDOM2 .'CENTRE') ;
  936. NEL = 'NBEL' ('DIFF' QQDOM2 QQDOM2B) ;
  937. 'SI' ((('NBEL' QDOM2) 'NEG' ('NBEL' QQDOM2)) 'OU' (NEL 'NEG' 0)) ;
  938. 'ERREUR' 21 ;
  939. 'FINSI' ;
  940. QQDOM1A = QDOMINT 'INCL' QDOM1A 'BARY' ;
  941. QQDOM1AB = QDOMINT 'ELEM' 'APPU' 'LARG' (TDOM1A .'CENTRE') ;
  942. NEL = 'NBEL' ('DIFF' QQDOM1A QQDOM1AB) ;
  943. 'SI' ((('NBEL' QDOM1A) 'NEG' ('NBEL' QQDOM1A)) 'OU' (NEL 'NEG' 0)) ;
  944. 'ERREUR' 21 ;
  945. 'FINSI' ;
  946. QQDOM2A = QDOMINT 'INCL' QDOM2A 'BARY' ;
  947. QQDOM2AB = QDOMINT 'ELEM' 'APPU' 'LARG' (TDOM2A .'CENTRE') ;
  948. NEL = 'NBEL' ('DIFF' QQDOM2A QQDOM2AB) ;
  949. 'SI' ((('NBEL' QDOM2A) 'NEG' ('NBEL' QQDOM2A)) 'OU' (NEL 'NEG' 0)) ;
  950. 'ERREUR' 21 ;
  951. 'FINSI' ;
  952.  
  953. 'ELIMINATION' QQDOM1 (DY1 '/' 100) QDOM1 ;
  954. 'ELIMINATION' QQDOM2 (DY1 '/' 100) QDOM2 ;
  955. 'ELIMINATION' QQDOM1A (DY1 '/' 100) QDOM1A ;
  956. 'ELIMINATION' QQDOM2A (DY1 '/' 100) QDOM2A ;
  957. 'ELIMINATION' (QQDOM1 'ET' QQDOM2) (DY1 '/' 100)
  958. (QP1P6 'ET' QP6P4 'ET' QP3P4) ;
  959. 'ELIMINATION' (QQDOM1A 'ET' QQDOM2A) (DY1 '/' 100)
  960. (QP1AP6A 'ET' QP6AP4A 'ET' QP3P4A);
  961. 'ELIMINATION' QP1P2 (DY1 '/' 100) QDOM1 ;
  962. 'ELIMINATION' QP1AP2 (DY1 '/' 100) QDOM1A ;
  963.  
  964. * 'OPTION' 'SAUV' ('CHAINE' './Dsauv/mail' NRAFF '.sauv') ;
  965. * 'SAUVER' ;
  966. 'SI' VRAI ;
  967. *
  968. **** We check how the mesh of infinetely thin wall is
  969. *
  970. ELTCOM = 'MANUEL' 'POI1' P2 ;
  971. AA = QDOM1 'ELEM' 'APPU' 'LARG' (QP1P2 'ET' QP1AP2) ;
  972. BB = QDOM1A 'ELEM' 'APPU' 'LARG' (QP1P2 'ET' QP1AP2) ;
  973. EE = 'INTE' ('CHANGER' AA 'POI1') ('CHANGER' BB 'POI1') ;
  974. FF = 'DIFF' EE ELTCOM ;
  975. 'SI' (('NBEL' FF) 'NEG' 0) ;
  976. 'ERREUR' 21 ;
  977. 'FINSI' ;
  978. 'SI' GRAPH ;
  979. 'TRACER' ((QP1P2 'ET' QP1AP2) 'ET' (AA 'COULEUR' 'ROUG') 'ET'
  980. (BB 'COULEUR' 'VERT')) 'TITR' 'Wall' ;
  981. 'FINSI' ;
  982. EE = 'INTE' ('CHANGER' QP1P2 'POI1') ('CHANGER' QP1AP2 'POI1') ;
  983. FF = 'DIFF' EE ELTCOM ;
  984. 'SI' (('NBEL' FF) 'NEG' 0) ;
  985. 'ERREUR' 21 ;
  986. 'FINSI' ;
  987. 'FINS' ;
  988. *
  989. *************************************************************************
  990. *************************************************************************
  991. * III) INITIAL CONDITIONS **********************************************
  992. *************************************************************************
  993. *************************************************************************
  994. *
  995. * 'OPTION' 'RESTITUER' ('CHAINE' './Dsauv/mail' NRAFF '.sauv') ;
  996. * 'RESTITUER' ;
  997. *
  998. ******************************************
  999. **** Non-dimensional numbers *************
  1000. ******************************************
  1001. *
  1002. * 2
  1003. *
  1004. * ---------------------
  1005. *
  1006. * 1
  1007. *
  1008. * We take as reference scales
  1009. *
  1010. * l_{ref} = \frac{\nu_1}{u_1}
  1011. * u_{ref} = u_1
  1012. * \rho_{\ref} = \rho_1
  1013. * T_{ref} = T_1
  1014. *
  1015. * It can be shown that the non-dimensional solution depends on
  1016. *
  1017. * x^*,y^*,u_2/u_1,T_2/T_1,\gamma,Ma,Pr
  1018. *
  1019. * Note that, with this adimensional variables,
  1020. *
  1021. * x^* = Re_x
  1022. * y^* = Re_y
  1023. *
  1024. * and Re_x(max) = L2
  1025. * Re_y(max) = H1
  1026. *
  1027. *
  1028. gamscal = 1.4 ;
  1029. T2ST1 = 0.5 ;
  1030. MACH = 1.0D-3 ;
  1031. U2SU1 = 1.1 ;
  1032. Pr = 0.7 ;
  1033. *
  1034. * We fix 4 arbitrary physical quantities
  1035. *
  1036. RAIR = 288. ;
  1037. p12 = 1.0D5 ;
  1038. T1 = 600 ;
  1039. * and L1 = 2 already considered!
  1040. Remax = 200. ;
  1041. *
  1042. ro1 = P12 '/' (RAIR * T1) ;
  1043. T2 = T2ST1 * T1 ;
  1044. ro2 = P12 '/' (RAIR * T2) ;
  1045. c1 = (gamscal * P12 '/' ro1) '**' 0.5 ;
  1046. u1 = Mach * c1 ;
  1047. u2 = u2su1 * u1 ;
  1048. *
  1049. * Remax = ro1 * u1 * L1 '/' mu1 ;
  1050. *
  1051. mu = (ro1 * u1 * L1) '/' Remax ;
  1052. *
  1053. Pr = 0.72 ;
  1054. * lambda = mu * cp '/' pr ;
  1055. lambda = mu '*' (gamscal '*' RAIR '/' (gamscal '-' 1.0))
  1056. '/' Pr ;
  1057. * Names of conserved variables
  1058. MOTRN = 'RN' ;
  1059. MOTGNX = 'RUX' ;
  1060. MOTGNY = 'RUY' ;
  1061. MOTVNX = 'UX' ;
  1062. MOTVNY = 'UY' ;
  1063. MOTVN = 'MOTS' 'UX' 'UY' ;
  1064. NOMMOM = 'MOTS' MOTGNX MOTGNY ;
  1065. MOTRET = 'RETN' ;
  1066. MOTPN = 'PN' ;
  1067.  
  1068. LISTCONS = 'MOTS' MOTRN MOTGNX MOTGNY MOTRET ;
  1069. LISTP = 'MOTS' MOTRN MOTVNX MOTVNY MOTPN ;
  1070.  
  1071. *
  1072. * Non-dimensional
  1073. GAMN = 'MANU' 'CHPO' ('DOMA' MDOMINT 'CENTRE') 1 'SCAL' gamscal;
  1074. *
  1075. *
  1076. *
  1077. s1 = p12 '/' (ro1 '**' gamscal) ;
  1078. s2 = p12 '/' (ro2 '**' gamscal) ;
  1079. *
  1080. gsgm1 = gamscal '/' (gamscal '-' 1.0) ;
  1081. ht1 = (gsgm1 '*' (p12 '/' ro1)) '+' (0.5D0 '*' u1 '*' u1) ;
  1082. ht2 = (gsgm1 '*' (p12 '/' ro2)) '+' (0.5D0 '*' u2 '*' u2) ;
  1083. *
  1084. uco = 0.01 '*' ('MINIMUM' ('PROG' u1 u2)) ;
  1085. *
  1086. *** Gravity
  1087. *
  1088. GRAVITE = 'MANUEL' 'CHPO' ('DOMA' MDOMINT 'CENTRE') 2 'UX' 0.0
  1089. 'UY' 0.0 ;
  1090. *
  1091. PN0 = ('MANUEL' 'CHPO' ('DOMA' MDOM1 'CENTRE') 1 'SCAL' p12 'NATU'
  1092. 'DISCRET') 'ET'
  1093. ('MANUEL' 'CHPO' ('DOMA' MDOM2 'CENTRE') 1 'SCAL' p12 'NATU'
  1094. 'DISCRET') 'ET'
  1095. ('MANUEL' 'CHPO' ('DOMA' MDOM1A 'CENTRE') 1 'SCAL' p12 'NATU'
  1096. 'DISCRET') 'ET'
  1097. ('MANUEL' 'CHPO' ('DOMA' MDOM2A 'CENTRE') 1 'SCAL' p12 'NATU'
  1098. 'DISCRET') ;
  1099. RN0 = ('MANUEL' 'CHPO' ('DOMA' MDOM1 'CENTRE') 1 'SCAL' ro1 'NATU'
  1100. 'DISCRET') 'ET'
  1101. ('MANUEL' 'CHPO' ('DOMA' MDOM2 'CENTRE') 1 'SCAL' ro1 'NATU'
  1102. 'DISCRET') 'ET'
  1103. ('MANUEL' 'CHPO' ('DOMA' MDOM1A 'CENTRE') 1 'SCAL' ro2 'NATU'
  1104. 'DISCRET') 'ET'
  1105. ('MANUEL' 'CHPO' ('DOMA' MDOM2A 'CENTRE') 1 'SCAL' ro2 'NATU'
  1106. 'DISCRET') ;
  1107. TN0 = PN0 '/' (Rair * RN0) ;
  1108. VN0 = ('MANUEL' 'CHPO' ('DOMA' MDOM1 'CENTRE') 1 'UX' u1 'NATU'
  1109. 'DISCRET') 'ET'
  1110. ('MANUEL' 'CHPO' ('DOMA' MDOM2 'CENTRE') 1 'UX' u1 'NATU'
  1111. 'DISCRET') 'ET'
  1112. ('MANUEL' 'CHPO' ('DOMA' MDOM1A 'CENTRE') 1 'UX' u2 'NATU'
  1113. 'DISCRET') 'ET'
  1114. ('MANUEL' 'CHPO' ('DOMA' MDOM2A 'CENTRE') 1 'UX' u2 'NATU'
  1115. 'DISCRET') 'ET'
  1116. ('MANUEL' 'CHPO' ('DOMA' MDOMINT 'CENTRE') 1 'UY' 0.0 'NATU'
  1117. 'DISCRET') ;
  1118. *
  1119. RECIN = 0.5 '*' RN0 '*' ('PSCAL' VN0 VN0 MOTVN MOTVN) ;
  1120. GN0 = RN0 '*' VN0 ;
  1121. *
  1122. RET0 = ((1. '/' (gamscal '-' 1)) '*' PN0) '+' RECIN ;
  1123.  
  1124. UNCONS = ('NOMC' 'RN' RN0 'NATU' 'DISCRET') 'ET' ('NOMC'
  1125. ('MOTS' 'UX' 'UY') GN0 ('MOTS' 'RUX' 'RUY') 'NATU' 'DISCRET') 'ET'
  1126. ('NOMC' 'RETN' RET0 'NATU' 'DISCRET') ;
  1127. *
  1128. VN0 PN0 = 'PRIM' 'PERFMONO' RN0 GN0 RET0 GAMN ;
  1129. CN0 = (GAMN * PN0 '/' RN0) '**' 0.5 ;
  1130. MACHN0 = VN0 '/' CN0 ;
  1131. *
  1132. * We create an empty CHPOINT
  1133. CHPVID MATVID = 'KOPS' 'MATRIK' ;
  1134.  
  1135. * 'OPTION' 'SAUVER'
  1136. * ('CHAINE' './Dsauv/icns' NRAFF '.sauv') ;
  1137. * 'SAUV' ;
  1138. *
  1139.  
  1140. ********************************************************
  1141. *** IC plot *******************************************
  1142. ********************************************************
  1143.  
  1144. 'SI' GRAPH ;
  1145. * 'SI' FAUX ;
  1146. CHM_RN = 'KCHA' MDOMINT 'CHAM' RN0 ;
  1147. CHM_MN = 'KCHA' MDOMINT 'CHAM' MACHN0 ;
  1148. CHM_TN = 'KCHA' MDOMINT 'CHAM' TN0 ;
  1149. CHM_PN = 'KCHA' MDOMINT 'CHAM' PN0 ;
  1150. CHM_VN = 'KCHA' MDOMINT 'CHAM' VN0 ;
  1151. 'TRACER' CHM_RN MDOMINT
  1152. 'TITR' ('CHAINE' 'RN at t=' 0.0) ;
  1153. 'TRACER' CHM_MN MDOMINT
  1154. 'TITR' ('CHAINE' 'MN at t=' 0.0) ;
  1155. 'TRACER' CHM_TN MDOMINT
  1156. 'TITR' ('CHAINE' 'TN at t=' 0.0) ;
  1157. 'TRACER' CHM_PN MDOMINT
  1158. 'TITR' ('CHAINE' 'PN at t=' 0.0) ;
  1159. 'TRACER' CHM_VN MDOMINT
  1160. 'TITR' ('CHAINE' 'VN at t=' 0.0) ;
  1161. 'FINSI' ;
  1162.  
  1163. *************************************************************************
  1164. *************************************************************************
  1165. * IV) COMPUTATION OF THE SOLUTION ***************************************
  1166. *************************************************************************
  1167. *************************************************************************
  1168.  
  1169. * 'OPTION' 'RESTITUER' ('./Dsauv/icns150.sauv') ;
  1170. * 'RESTITUER' ;
  1171.  
  1172. RV = 'TABLE' ;
  1173. RV . 'FREQI' = 1 ;
  1174. RV . 'MODEL' = MDOMINT ;
  1175. *
  1176. **** Conservative variables / primitive variables
  1177. *
  1178. *
  1179. RV . 'LISTCONS' = LISTCONS ;
  1180. RV . 'LISTPRIM' = LISTP ;
  1181. *
  1182. RV . 'RN0' = RN0 ;
  1183. RV . 'GN0' = GN0 ;
  1184. RV . 'RET0' = RET0 ;
  1185. *
  1186. **** Gas property/gravity
  1187. *
  1188. RV . 'PGAS' = 'TABLE' ;
  1189. RV . 'PGAS' . 'GAMN' = GAMN ;
  1190. RV . 'PGAS' . 'MU' = mu ;
  1191. RV . 'PGAS' . 'R' = RAIR ;
  1192. RV . 'PGAS' . 'LAMBDA' = lambda ;
  1193. RV . 'GRAVITY' = GRAVITE ;
  1194. *
  1195. * Table for BC
  1196. *
  1197. RV . 'PROLIM' = 'TABLE' ;
  1198. RV . 'PROLIM' . 'N' = 6 ;
  1199. RV . 'PROLIM' . 'CLN' = 'TABLE' ;
  1200. RV . 'PROLIM' . 'CLN' . 1 = 'MOTS' INSU ;
  1201. RV . 'PROLIM' . 'CLN' . 2 = 'MOTS' INSU ;
  1202. RV . 'PROLIM' . 'CLN' . 3 = 'MOTS' OUTP ;
  1203. RV . 'PROLIM' . 'CLN' . 4 = 'MOTS' OUTP ;
  1204. RV . 'PROLIM' . 'CLN' . 5 = 'MOTS' OUTP ;
  1205. RV . 'PROLIM' . 'CLN' . 6 = 'MOTS' OUTP ;
  1206. RV . 'PROLIM' . 'MODELN' = 'TABLE' ;
  1207. RV . 'PROLIM' . 'MODELN' . 1 = MP1P6 ;
  1208. RV . 'PROLIM' . 'MODELN' . 2 = MP1AP6A ;
  1209. RV . 'PROLIM' . 'MODELN' . 3 = MP6P4 ;
  1210. RV . 'PROLIM' . 'MODELN' . 4 = MP6AP4A ;
  1211. RV . 'PROLIM' . 'MODELN' . 5 = MP3P4 ;
  1212. RV . 'PROLIM' . 'MODELN' . 6 = MP3P4A ;
  1213. RV . 'PROLIM' . 'CHPOLN' = 'TABLE' ;
  1214. RV . 'PROLIM' . 'CHPOLN' . 1 = 'MANUEL' 'CHPO' ('DOMA' MP1P6
  1215. 'CENTRE') 2 'HT' ht1 'S' s1 ; ;
  1216. RV . 'PROLIM' . 'CHPOLN' . 2 = 'MANUEL' 'CHPO' ('DOMA' MP1AP6A
  1217. 'CENTRE') 2 'HT' ht2 'S' s2 ;
  1218. RV . 'PROLIM' . 'CHPOLN' . 3 = 'MANUEL' 'CHPO' ('DOMA' MP6P4
  1219. 'CENTRE') 1 'PN' p12 ;
  1220. RV . 'PROLIM' . 'CHPOLN' . 4 = 'MANUEL' 'CHPO' ('DOMA' MP6AP4A
  1221. 'CENTRE') 1 'PN' p12 ;
  1222. RV . 'PROLIM' . 'CHPOLN' . 5 = 'MANUEL' 'CHPO' ('DOMA' MP3P4
  1223. 'CENTRE') 1 'PN' p12 ;
  1224. RV . 'PROLIM' . 'CHPOLN' . 6 = 'MANUEL' 'CHPO' ('DOMA' MP3P4A
  1225. 'CENTRE') 1 'PN' p12 ;
  1226. *
  1227. * Table for BC
  1228. *
  1229. * RVX . 'DIFTIMP' : boundary condition on temperature
  1230. * RVX . 'MDIFCT' : mesh in which we impose the temperature
  1231. * arising from the convective BC
  1232. * RVX . 'DIFGTIMP' : boundary condition on gradient of temperature
  1233. * RVX . 'DIFVIMP' : boundary condition on speed
  1234. * RVX . 'MDIFCV' : mesh in which we impose the velocity
  1235. * arising from the convective BC
  1236. * RVX . 'DIFGVIMP' : boundary condition on gradient of speed
  1237. * RVX . 'DIFTAUI' : boundary condition on constraint tensor
  1238. * RVX . 'DIFQIMP' : boundary condition on heat flux
  1239. *
  1240.  
  1241. CHPVID MATVID = 'KOPS' 'MATRIK' ;
  1242. MAILBC = ('DOMA' MP1P6 'CENTRE') 'ET' ('DOMA' MP1AP6A 'CENTRE') 'ET'
  1243. ('DOMA' MP6P4 'CENTRE') 'ET' ('DOMA' MP6AP4A 'CENTRE') 'ET'
  1244. ('DOMA' MP3P4 'CENTRE') 'ET' ('DOMA' MP3P4A 'CENTRE') ;
  1245. MAILG0 = ('DOMA' MP1P2 'CENTRE') 'ET' ('DOMA' MP1AP2 'CENTRE') ;
  1246. *
  1247. RV . 'DIFTIMP' = CHPVID ;
  1248. RV . 'MDIFCT' = MAILBC ;
  1249. RV . 'DIFGTIMP' = 'MANUEL' 'CHPO' MAILG0 2 'P1DX' 0.0 'P1DY' 0.0 ;
  1250. RV . 'DIFVIMP' = CHPVID ;
  1251. RV . 'MDIFCV' = MAILBC ;
  1252. RV . 'DIFGVIMP' = 'MANUEL' 'CHPO' MAILG0 4 'P1DX' 0.0 'P1DY' 0.0
  1253. 'P2DX' 0.0 'P2DY' 0.0 ;
  1254. RV . 'DIFTAUI' = 'MANUEL' 'CHPO' MAILBC 3 'TXX' 0.0 'TXY' 0.0
  1255. 'TYY' 0.0 ;
  1256. RV . 'DIFQIMP' = 'MANUEL' 'CHPO' MAILBC 2 'UX' 0.0 'UY' 0.0 ;
  1257. *
  1258. **** Numerical parameters
  1259. *
  1260. *
  1261. * Variable to compute Linf error
  1262. *
  1263. RV . 'LISTERR' = 'MOTS' MOTGNX MOTGNY ;
  1264. * RV . 'LISTERR' = 'MOTS' MOTRET ;
  1265. *
  1266. * Upwind scheme
  1267. *
  1268. * RV . 'METHOD' = 'RUSANOLM' ;
  1269. RV . 'METHOD' = 'ROELM' ;
  1270. *
  1271. * Low-Mach Cut off
  1272. *
  1273. CO = u1 '*' 10.D-1 ;
  1274. RV . 'CUTOFF' = 'MANU' 'CHPO' ('DOMA' MDOMINT 'CENTRE') 1 'SCAL' CO
  1275. 'NATURE' 'DISCRET' ;
  1276. *
  1277. * Reconstruction/limiter
  1278. * Time accuracy (1 or 2)
  1279. * Iterations
  1280. * Final time
  1281. RV . 'SPACEA' = 2 ;
  1282. RV . 'LIMITER' = 'NOLIMITE' ;
  1283. * RV . 'LIMITER' = 'LIMITEUR' ;
  1284. RV . 'TIMEA' = 1 ;
  1285. *
  1286. **** Physical time
  1287. *
  1288. RV . 'T0' = 0 ;
  1289. RV . 'TFINAL' = 20. '*' (L1 '/' u1) ;
  1290. RV . 'NITER' = -1 ;
  1291. RV . 'CFL' = (2. '/' MACH) ;
  1292. * RV . 'DTPS' = (L1 '/' u1) ;
  1293. *
  1294. **** Dual time
  1295. *
  1296. * Safety factor for the dual time step
  1297. * Max. Dual time iterations
  1298. * Relative error
  1299. *
  1300. RV . 'DCFLERR' = 'PROG' 16. -16. ;
  1301. RV . 'DCFL' = 'PROG' 1.d6 1.d6 ;
  1302. RV . 'NDTITER' = 1 ;
  1303. RV . 'RELERR' = FAUX ;
  1304. RV . 'EPSDT' = 1.0D-30 ;
  1305. *
  1306. **** Jacobi iterations
  1307. *
  1308. * RV . 'TYPEJAC' = 'PJACO' ;
  1309. * RV . 'TYPEJAC' = 'LJACOB' ;
  1310. * RV . 'TYPEJAC' = 'LJACOF' ;
  1311. RV . 'TYPEJAC' = 'LJACOFB' ;
  1312. RV . 'NJACLERR' = 'PROG' 16 -16 ;
  1313. RV . 'NJACITER' = 'PROG' 15 15 ;
  1314. *
  1315. **** Parameters for PROCPT
  1316. *
  1317. RV . 'PROCPT' = 'TABLE' ;
  1318. *
  1319. PNSSM RV ;
  1320.  
  1321. *************************************************************************
  1322. *************************************************************************
  1323. * V) POST TREATMENT ****************************************************
  1324. *************************************************************************
  1325. *************************************************************************
  1326. * 'OPTION' 'REST'
  1327. * ('CHAINE' './fmm_mono' 150 '.sauv') ;
  1328. * 'REST' ;
  1329. *
  1330. RN = RV . 'RESULTS' . 'RN' ;
  1331. GN = RV . 'RESULTS' . 'GN' ;
  1332. RET = RV . 'RESULTS' . 'RET' ;
  1333. GAMN = RV . 'PGAS' . 'GAMN' ;
  1334. *
  1335. *** Convergence evolution inside of each iteration
  1336. *
  1337. LISTITER = RV . 'RESULTS' . 'LISTITER' ;
  1338. LISTITDT = RV . 'RESULTS' . 'LISTITDT' ;
  1339. LISTLINF = RV . 'RESULTS' . 'LISTLINF' ;
  1340. *
  1341. TAB1 = 'TABLE' ;
  1342. TAB1 . 1 = 'MOT' 'MARQ CROI NOLI';
  1343. TAB1 . 'TITRE' = 'TABLE' ;
  1344. TAB1 . 'TITRE' . 1 = 'MOT' 'Convergence';
  1345. 'SI' GRAPH ;
  1346. NITERE = 'DIME' LISTITER ;
  1347. LISTTOT = 'PROG' 1.0 'PAS' 1.0 (NITERE '*' 1.00001) ;
  1348. everr = 'EVOL' 'MANU' 'niter' LISTTOT 'Log(Linf)'
  1349. (('LOG' (LISTLINF '+'
  1350. ('PROG' ('DIME' LISTLINF) '*' 1.0D-20)))
  1351. '/' ('LOG' 10.)) ;
  1352. 'DESSIN' everr 'TITRE' ('CHAINE' 'Convergence') 'MIMA'
  1353. 'LEGE' TAB1 ;
  1354. 'FINSI' ;
  1355. erfin = 'MINIMUM' (LISTLINF) ;
  1356. 'SI' (erfin > 1.0D-6) ;
  1357. 'ERREUR' 'Probleme de convergence' ;
  1358. 'FINSI' ;
  1359. *
  1360. **** The mesh
  1361. *
  1362. 'SI' GRAPH ;
  1363. 'TRACER' DOMINT 'TITR' 'Maillage' ;
  1364. 'FINSI' ;
  1365. *
  1366. **** Initial conditions
  1367. *
  1368. RN0 = RV . 'RN0' ;
  1369. GN0 = RV . 'GN0' ;
  1370. RET0 = RV . 'RET0' ;
  1371. VN PN0 = 'PRIM' 'PERFMONO'
  1372. RN0 GN0 RET0 GAMN 'TRICHE' ;
  1373. * 'SI' GRAPH ;
  1374. 'SI' FAUX ;
  1375. CHM_RN = 'KCHA' MDOMINT 'CHAM' RN0 ;
  1376. CHM_VN = 'KCHA' MDOMINT 'CHAM' VN ;
  1377. CHM_PN = 'KCHA' MDOMINT 'CHAM' PN0 ;
  1378. 'TRAC' CHM_RN MDOMINT ('CONTOUR' DOMINT)
  1379. 'TITR' ('CHAINE' 'rho at t=' 0.0) ;
  1380. 'TRAC' CHM_VN MDOMINT ('CONTOUR' DOMINT)
  1381. 'TITR' ('CHAINE' 'v at t= ' 0.0) ;
  1382. 'TRAC' CHM_PN MDOMINT ('CONTOUR' DOMINT)
  1383. 'TITR' ('CHAINE' 'p at t= ' 0.0) ;
  1384. 'FINSI' ;
  1385. *
  1386. **** The 2D graphics
  1387. *
  1388. NOMVEL = 'MOTS' 'UX' 'UY' ;
  1389. VN PN = 'PRIM' 'PERFMONO' RN GN RET GAMN 'TRICHE' ;
  1390. CN2 = GAMN '*' (PN '/' RN) ;
  1391. VN2 = 'PSCAL' VN VN NOMVEL NOMVEL ;
  1392. MACHN2 = VN2 '/' CN2 ;
  1393. MACHN = MACHN2 '**' 0.5 ;
  1394. *
  1395. HTN = (GAMN '/' (GAMN '-' 1.0)) '*' (PN '/' RN) ;
  1396. ECIN = 0.5 '*' ('PSCAL' VN VN NOMVEL NOMVEL) ;
  1397. HTN = HTN '+' ECIN ;
  1398. *
  1399. SN = PN '/' (RN '**' 1.4) ;
  1400. *
  1401. TPS = RV . 'RESULTS' . 'TPS' ;
  1402. CHM_RN = 'KCHA' MDOMINT 'CHAM' RN ;
  1403. CHM_VN = 'KCHA' MDOMINT 'CHAM' VN ;
  1404. CHM_PN = 'KCHA' MDOMINT 'CHAM' PN ;
  1405. CHM_MN = 'KCHA' MDOMINT 'CHAM' MACHN ;
  1406. CHM_HTN = 'KCHA' MDOMINT 'CHAM' HTN ;
  1407. CHM_SN = 'KCHA' MDOMINT 'CHAM' SN ;
  1408. *
  1409. 'SI' FAUX ;
  1410. 'TRAC' CHM_RN MDOMINT ('CONTOUR' DOMINT)
  1411. 'TITR' ('CHAINE' 'rho at t=' TPS) ;
  1412. 'TRAC' CHM_VN MDOMINT ('CONTOUR' DOMINT)
  1413. 'TITR' ('CHAINE' 'v at t= ' TPS) ;
  1414. 'TRAC' CHM_PN MDOMINT ('CONTOUR' DOMINT)
  1415. 'TITR' ('CHAINE' 'p at t= ' TPS) ;
  1416. 'TRAC' CHM_MN MDOMINT ('CONTOUR' DOMINT)
  1417. 'TITR' ('CHAINE' 'Mach at t= ' TPS) ;
  1418. 'TRAC' CHM_HTN MDOMINT ('CONTOUR' DOMINT)
  1419. 'TITR' ('CHAINE' 'ht at t= ' TPS ' hl =' HTL) ;
  1420. 'TRAC' CHM_SN MDOMINT ('CONTOUR' DOMINT)
  1421. 'TITR' ('CHAINE' 'sn at t= ' TPS ' hl =' SL) ;
  1422. VECN = 'VECTEUR' VN (1. '/' NRAFF) 'UX' 'UY' 'JAUNE' ;
  1423. 'TRACER' DOMINT VECN ('CONTOUR' DOMINT) 'TITR'
  1424. ('CHAINE' 'v at t= ' TPS) ;
  1425. 'FINSI' ;
  1426. *
  1427. GRADRN ALRN MCHSCA = 'PENT' MDOMINT 'CENTRE' 'EULESCAL' 'NOLIMITE'
  1428. ('MOTS' 'SCAL') RN ;
  1429. GRADPN ALPN MCHSCA = 'PENT' MDOMINT 'CENTRE' 'EULESCAL' 'NOLIMITE'
  1430. ('MOTS' 'SCAL') PN ;
  1431. RNV = 'ELNO' 'VF' TDOMINT RN GRADRN ALRN ;
  1432. PNV = 'ELNO' 'VF' TDOMINT PN GRADPN ALPN ;
  1433. TNV = PNV '/' (RAIR * RNV) ;
  1434. VNX = 'EXCO' VN 'UX' ;
  1435. VNY = 'EXCO' VN 'UY' ;
  1436. VNXV = 'ELNO' 'VF' TDOMINT VNX GRADRN (ALRN '*' 0.0) ;
  1437. VNYV = 'ELNO' 'VF' TDOMINT VNY GRADRN (ALRN '*' 0.0) ;
  1438. 'SI' GRAPH ;
  1439. 'TRACER' DOMINT RNV ('CONTOUR' DOMINT) 15 'TITRE' 'ro';
  1440. 'TRACER' DOMINT PNV ('CONTOUR' DOMINT) 15 'TITRE' 'p' ;
  1441. 'TRACER' DOMINT TNV ('CONTOUR' DOMINT) 15 'TITRE' 'T' ;
  1442. 'TRACER' DOMINT VNXV ('CONTOUR' DOMINT) 15 'TITRE' 'vx' ;
  1443. 'TRACER' DOMINT VNYV ('CONTOUR' DOMINT) 15 'TITRE' 'vy' ;
  1444. 'FINSI' ;
  1445. *
  1446. xl = (L2 * 0.8) ;
  1447. PL1 = xl -0.4 ;
  1448. PL2 = xl 0.0 ;
  1449. PL3 = xl 0.4 ;
  1450. LIGPOST = (PL1 'DROIT' PL2 'DINI' DY2 'DFIN' DY1) 'ET'
  1451. (PL2 'DROIT' PL3 'DINI' DY1 'DFIN' DY2) ;
  1452.  
  1453. CHM_RNV = 'CHANGER' 'CHAM' RNV DOMINT ;
  1454. CHLRN = PROI LIGPOST CHM_RNV ;
  1455. EVOLRN = 'EVOL' CHPO CHLRN LIGPOST ;
  1456. YY = 'COORDONNEE' 2 LIGPOST ;
  1457. EVOLYY = 'EVOL' 'CHPO' YY LIGPOST ;
  1458. LYY = 'EXTRAIRE' EVOLYY 'ORDO' ;
  1459. EVOLRN = 'EVOL' 'MANU' 'y' LYY 'SCAL' ('EXTRAIRE' EVOLRN 'ORDO') ;
  1460. 'SI' GRAPH ;
  1461. 'DESSIN' EVOLRN 'TITR' 'Rho' 'GRIL' 'MIMA' ;
  1462. 'FINSI' ;
  1463. *
  1464. CHM_TNV = 'CHANGER' 'CHAM' TNV DOMINT ;
  1465. CHLTN = PROI LIGPOST CHM_TNV ;
  1466. EVOLTN = 'EVOL' CHPO CHLTN LIGPOST ;
  1467. EVOLTN = 'EVOL' 'MANU' 'y' LYY 'SCAL' ('EXTRAIRE' EVOLTN 'ORDO') ;
  1468. 'SI' GRAPH ;
  1469. 'DESSIN' EVOLTN 'TITR' 'T' 'GRIL' 'MIMA' ;
  1470. 'FINSI' ;
  1471. *
  1472. CHM_PNV = 'CHANGER' 'CHAM' PNV DOMINT ;
  1473. CHLPN = PROI LIGPOST CHM_PNV ;
  1474. EVOLPN = 'EVOL' CHPO CHLPN LIGPOST ;
  1475. EVOLPN = 'EVOL' 'MANU' 'y' LYY 'SCAL' ('EXTRAIRE' EVOLPN 'ORDO') ;
  1476. 'SI' GRAPH ;
  1477. 'DESSIN' EVOLPN 'TITR' 'P' 'GRIL' 'MIMA' ;
  1478. 'FINSI' ;
  1479. *
  1480. CHM_VNXV = 'CHANGER' 'CHAM' VNXV DOMINT ;
  1481. CHLVNX = PROI LIGPOST CHM_VNXV ;
  1482. EVOLVNX = 'EVOL' CHPO CHLVNX LIGPOST ;
  1483. EVOLVNX = 'EVOL' 'MANU' 'y' LYY 'SCAL' ('EXTRAIRE' EVOLVNX 'ORDO') ;
  1484. 'SI' GRAPH ;
  1485. 'DESSIN' EVOLVNX 'TITR' 'vx' 'GRIL' 'MIMA' ;
  1486. 'FINSI' ;
  1487. *
  1488. CHM_VNYV = 'CHANGER' 'CHAM' VNYV DOMINT ;
  1489. CHLVNY = PROI LIGPOST CHM_VNYV ;
  1490. EVOLVNY = 'EVOL' CHPO CHLVNY LIGPOST ;
  1491. EVOLVNY = 'EVOL' 'MANU' 'y' LYY 'SCAL' ('EXTRAIRE' EVOLVNY 'ORDO') ;
  1492. 'SI' GRAPH ;
  1493. 'DESSIN' EVOLVNY 'TITR' 'vy' 'GRIL' 'MIMA' ;
  1494. 'FINSI' ;
  1495. *
  1496. 'SI' FAUX ;
  1497. *
  1498. * File for gnuplot
  1499. *
  1500. 'OPTION' 'ECHO' 0 'IMPR' 10 'IMPR' ('CHAINE' 'Ty' NRAFF '.txt') ;
  1501. aa = 'EXTRAIRE' EVOLTN 'ABSC' ;
  1502. bb = 'EXTRAIRE' EVOLTN 'ORDO' ;
  1503. *
  1504. nn = 'DIME' aa ;
  1505. 'REPETER' BL1 nn ;
  1506. xx = 'CHAINE' 'FORMAT' '(E12.6)' ('EXTRAIRE' aa &bl1) ;
  1507. yy = 'CHAINE' 'FORMAT' '(E12.6)' ('EXTRAIRE' bb &bl1) ;
  1508. 'MESSAGE' ('CHAINE' yy ' ' xx ) ;
  1509. 'FIN' BL1 ;
  1510. *
  1511. 'OPTION' IMPR 6 ;
  1512. 'OPTION' ECHO 1 ;
  1513. 'FINSI' ;
  1514.  
  1515. *************************************************************************
  1516. *************************************************************************
  1517. * VI) TEST **************************************************************
  1518. *************************************************************************
  1519. *************************************************************************
  1520.  
  1521. LISTY = 'PROG' -1.0 ;
  1522. LISTY = LISTY ET (PROG
  1523. -.2854E+00 -.2839E+00 -.2825E+00 -.2810E+00 -.2796E+00 -.2781E+00
  1524. -.2767E+00 -.2752E+00 -.2737E+00 -.2723E+00 -.2708E+00 -.2694E+00
  1525. -.2679E+00 -.2665E+00 -.2650E+00 -.2635E+00 -.2621E+00 -.2606E+00
  1526. -.2592E+00 -.2577E+00 -.2562E+00 -.2548E+00 -.2533E+00 -.2519E+00
  1527. -.2504E+00 -.2490E+00 -.2475E+00 -.2460E+00 -.2446E+00 -.2431E+00
  1528. ) ;
  1529. LISTY = LISTY ET (PROG
  1530. -.2417E+00 -.2402E+00 -.2387E+00 -.2373E+00 -.2358E+00 -.2344E+00
  1531. -.2329E+00 -.2315E+00 -.2300E+00 -.2285E+00 -.2271E+00 -.2256E+00
  1532. -.2242E+00 -.2227E+00 -.2212E+00 -.2198E+00 -.2183E+00 -.2169E+00
  1533. -.2154E+00 -.2139E+00 -.2125E+00 -.2110E+00 -.2096E+00 -.2081E+00
  1534. -.2066E+00 -.2052E+00 -.2037E+00 -.2023E+00 -.2008E+00 -.1993E+00
  1535. ) ;
  1536. LISTY = LISTY ET (PROG
  1537. -.1979E+00 -.1964E+00 -.1949E+00 -.1935E+00 -.1920E+00 -.1905E+00
  1538. -.1891E+00 -.1876E+00 -.1861E+00 -.1847E+00 -.1832E+00 -.1817E+00
  1539. -.1802E+00 -.1788E+00 -.1773E+00 -.1758E+00 -.1744E+00 -.1729E+00
  1540. -.1714E+00 -.1699E+00 -.1685E+00 -.1670E+00 -.1655E+00 -.1640E+00
  1541. -.1625E+00 -.1611E+00 -.1596E+00 -.1581E+00 -.1566E+00 -.1551E+00
  1542. ) ;
  1543. LISTY = LISTY ET (PROG
  1544. -.1536E+00 -.1521E+00 -.1506E+00 -.1492E+00 -.1477E+00 -.1462E+00
  1545. -.1447E+00 -.1431E+00 -.1416E+00 -.1401E+00 -.1386E+00 -.1371E+00
  1546. -.1356E+00 -.1341E+00 -.1326E+00 -.1311E+00 -.1295E+00 -.1280E+00
  1547. -.1265E+00 -.1250E+00 -.1234E+00 -.1219E+00 -.1203E+00 -.1188E+00
  1548. -.1172E+00 -.1157E+00 -.1141E+00 -.1126E+00 -.1110E+00 -.1095E+00
  1549. ) ;
  1550. LISTY = LISTY ET (PROG
  1551. -.1079E+00 -.1063E+00 -.1047E+00 -.1031E+00 -.1016E+00 -.9996E-01
  1552. -.9836E-01 -.9676E-01 -.9515E-01 -.9353E-01 -.9191E-01 -.9029E-01
  1553. -.8866E-01 -.8702E-01 -.8537E-01 -.8372E-01 -.8207E-01 -.8040E-01
  1554. -.7873E-01 -.7705E-01 -.7537E-01 -.7368E-01 -.7198E-01 -.7027E-01
  1555. -.6855E-01 -.6683E-01 -.6510E-01 -.6336E-01 -.6161E-01 -.5985E-01
  1556. ) ;
  1557. LISTY = LISTY ET (PROG
  1558. -.5809E-01 -.5631E-01 -.5453E-01 -.5273E-01 -.5093E-01 -.4911E-01
  1559. -.4729E-01 -.4545E-01 -.4361E-01 -.4175E-01 -.3988E-01 -.3801E-01
  1560. -.3612E-01 -.3422E-01 -.3230E-01 -.3038E-01 -.2845E-01 -.2650E-01
  1561. -.2454E-01 -.2256E-01 -.2058E-01 -.1858E-01 -.1657E-01 -.1455E-01
  1562. -.1251E-01 -.1046E-01 -.8394E-02 -.6316E-02 -.4225E-02 -.2119E-02
  1563. ) ;
  1564. LISTY = LISTY ET (PROG
  1565. .0000E+00 .2148E-02 .4309E-02 .6485E-02 .8676E-02 .1088E-01
  1566. .1310E-01 .1533E-01 .1758E-01 .1985E-01 .2212E-01 .2442E-01
  1567. .2672E-01 .2904E-01 .3138E-01 .3373E-01 .3610E-01 .3848E-01
  1568. .4087E-01 .4328E-01 .4570E-01 .4814E-01 .5059E-01 .5305E-01
  1569. .5553E-01 .5802E-01 .6052E-01 .6304E-01 .6557E-01 .6812E-01
  1570. ) ;
  1571. LISTY = LISTY ET (PROG
  1572. .7067E-01 .7324E-01 .7582E-01 .7842E-01 .8102E-01 .8364E-01
  1573. .8627E-01 .8890E-01 .9155E-01 .9421E-01 .9689E-01 .9957E-01
  1574. .1023E+00 .1050E+00 .1077E+00 .1104E+00 .1131E+00 .1158E+00
  1575. .1186E+00 .1213E+00 .1241E+00 .1269E+00 .1296E+00 .1324E+00
  1576. .1352E+00 .1380E+00 .1408E+00 .1436E+00 .1464E+00 .1492E+00
  1577. ) ;
  1578. LISTY = LISTY ET (PROG
  1579. .1521E+00 .1549E+00 .1577E+00 .1606E+00 .1634E+00 .1663E+00
  1580. .1691E+00 .1720E+00 .1748E+00 .1777E+00 .1805E+00 .1834E+00
  1581. .1863E+00 .1892E+00 .1920E+00 .1949E+00 .1978E+00 .2007E+00
  1582. .2036E+00 .2065E+00 .2093E+00 .2122E+00 .2151E+00 .2180E+00
  1583. .2209E+00 .2238E+00 .2267E+00 .2296E+00 .2325E+00 .2354E+00
  1584. ) ;
  1585. LISTY = LISTY ET (PROG
  1586. .2383E+00 .2412E+00 .2441E+00 .2470E+00 .2499E+00 .2528E+00
  1587. .2557E+00 .2586E+00 .2616E+00 .2645E+00 .2674E+00 .2703E+00
  1588. .2732E+00 .2761E+00 .2790E+00 .2819E+00 .2848E+00 .2878E+00
  1589. .2907E+00 .2936E+00 .2965E+00 .2994E+00 .3023E+00 .3052E+00
  1590. .3081E+00 .3110E+00 .3140E+00 .3169E+00 .3198E+00 .3227E+00
  1591. ) ;
  1592. LISTY = LISTY ET (PROG
  1593. .3256E+00 .3285E+00 .3315E+00 .3344E+00 .3373E+00 .3402E+00
  1594. .3431E+00 .3460E+00 .3489E+00 .3518E+00 .3548E+00 .3577E+00
  1595. .3606E+00 .3635E+00 .3664E+00 .3693E+00 .3722E+00 .3752E+00
  1596. .3781E+00 .3810E+00 .3839E+00 .3868E+00 .3897E+00 .3926E+00
  1597. .3956E+00 .3985E+00 .4014E+00 .4043E+00 .4072E+00 .4101E+00
  1598. ) ;
  1599. LISTY = LISTY ET ('PROG' 1.0) ;
  1600.  
  1601. LISTT = 'PROG' .3000E+03 ;
  1602. LISTT = LISTT 'ET' (PROG
  1603. .3000E+03 .3000E+03 .3000E+03 .3000E+03 .3000E+03 .3000E+03
  1604. .3000E+03 .3000E+03 .3001E+03 .3001E+03 .3001E+03 .3001E+03
  1605. .3001E+03 .3001E+03 .3001E+03 .3001E+03 .3001E+03 .3001E+03
  1606. .3001E+03 .3001E+03 .3001E+03 .3001E+03 .3001E+03 .3001E+03
  1607. .3001E+03 .3002E+03 .3002E+03 .3002E+03 .3002E+03 .3002E+03
  1608. ) ;
  1609. LISTT = LISTT ET (PROG
  1610. .3002E+03 .3002E+03 .3003E+03 .3003E+03 .3003E+03 .3003E+03
  1611. .3003E+03 .3004E+03 .3004E+03 .3004E+03 .3004E+03 .3005E+03
  1612. .3005E+03 .3005E+03 .3006E+03 .3006E+03 .3006E+03 .3007E+03
  1613. .3007E+03 .3008E+03 .3008E+03 .3009E+03 .3009E+03 .3010E+03
  1614. .3011E+03 .3011E+03 .3012E+03 .3012E+03 .3013E+03 .3014E+03
  1615. ) ;
  1616. LISTT = LISTT ET (PROG
  1617. .3015E+03 .3016E+03 .3017E+03 .3018E+03 .3019E+03 .3020E+03
  1618. .3021E+03 .3022E+03 .3023E+03 .3024E+03 .3026E+03 .3027E+03
  1619. .3029E+03 .3030E+03 .3032E+03 .3034E+03 .3035E+03 .3037E+03
  1620. .3039E+03 .3041E+03 .3043E+03 .3045E+03 .3048E+03 .3050E+03
  1621. .3052E+03 .3055E+03 .3058E+03 .3061E+03 .3064E+03 .3066E+03
  1622. ) ;
  1623. LISTT = LISTT ET (PROG
  1624. .3070E+03 .3073E+03 .3076E+03 .3080E+03 .3084E+03 .3088E+03
  1625. .3091E+03 .3096E+03 .3100E+03 .3104E+03 .3109E+03 .3114E+03
  1626. .3119E+03 .3124E+03 .3129E+03 .3135E+03 .3140E+03 .3146E+03
  1627. .3152E+03 .3159E+03 .3165E+03 .3172E+03 .3179E+03 .3186E+03
  1628. .3194E+03 .3201E+03 .3209E+03 .3217E+03 .3226E+03 .3234E+03
  1629. ) ;
  1630. LISTT = LISTT ET (PROG
  1631. .3243E+03 .3252E+03 .3262E+03 .3271E+03 .3281E+03 .3292E+03
  1632. .3302E+03 .3313E+03 .3324E+03 .3336E+03 .3348E+03 .3360E+03
  1633. .3372E+03 .3385E+03 .3398E+03 .3411E+03 .3425E+03 .3439E+03
  1634. .3454E+03 .3469E+03 .3484E+03 .3499E+03 .3515E+03 .3531E+03
  1635. .3548E+03 .3565E+03 .3583E+03 .3600E+03 .3619E+03 .3637E+03
  1636. ) ;
  1637. LISTT = LISTT ET (PROG
  1638. .3656E+03 .3675E+03 .3695E+03 .3715E+03 .3735E+03 .3756E+03
  1639. .3777E+03 .3799E+03 .3821E+03 .3843E+03 .3866E+03 .3889E+03
  1640. .3913E+03 .3937E+03 .3961E+03 .3985E+03 .4010E+03 .4036E+03
  1641. .4061E+03 .4087E+03 .4114E+03 .4140E+03 .4167E+03 .4194E+03
  1642. .4222E+03 .4250E+03 .4278E+03 .4306E+03 .4334E+03 .4363E+03
  1643. ) ;
  1644. LISTT = LISTT ET (PROG
  1645. .4392E+03 .4421E+03 .4451E+03 .4480E+03 .4510E+03 .4539E+03
  1646. .4569E+03 .4599E+03 .4629E+03 .4659E+03 .4689E+03 .4719E+03
  1647. .4749E+03 .4780E+03 .4809E+03 .4839E+03 .4869E+03 .4899E+03
  1648. .4928E+03 .4958E+03 .4987E+03 .5016E+03 .5044E+03 .5073E+03
  1649. .5101E+03 .5129E+03 .5156E+03 .5184E+03 .5210E+03 .5237E+03
  1650. ) ;
  1651. LISTT = LISTT ET (PROG
  1652. .5263E+03 .5289E+03 .5314E+03 .5339E+03 .5363E+03 .5387E+03
  1653. .5410E+03 .5433E+03 .5455E+03 .5477E+03 .5499E+03 .5519E+03
  1654. .5540E+03 .5559E+03 .5579E+03 .5597E+03 .5615E+03 .5633E+03
  1655. .5650E+03 .5666E+03 .5682E+03 .5698E+03 .5712E+03 .5727E+03
  1656. .5741E+03 .5754E+03 .5767E+03 .5779E+03 .5791E+03 .5802E+03
  1657. ) ;
  1658. LISTT = LISTT ET (PROG
  1659. .5813E+03 .5823E+03 .5833E+03 .5843E+03 .5852E+03 .5860E+03
  1660. .5869E+03 .5876E+03 .5884E+03 .5891E+03 .5898E+03 .5904E+03
  1661. .5910E+03 .5916E+03 .5921E+03 .5926E+03 .5931E+03 .5936E+03
  1662. .5940E+03 .5944E+03 .5948E+03 .5951E+03 .5955E+03 .5958E+03
  1663. .5961E+03 .5964E+03 .5966E+03 .5969E+03 .5971E+03 .5973E+03
  1664. ) ;
  1665. LISTT = LISTT ET (PROG
  1666. .5975E+03 .5977E+03 .5979E+03 .5981E+03 .5982E+03 .5984E+03
  1667. .5985E+03 .5986E+03 .5987E+03 .5988E+03 .5989E+03 .5990E+03
  1668. .5991E+03 .5992E+03 .5992E+03 .5993E+03 .5994E+03 .5994E+03
  1669. .5995E+03 .5995E+03 .5996E+03 .5996E+03 .5996E+03 .5997E+03
  1670. .5997E+03 .5997E+03 .5998E+03 .5998E+03 .5998E+03 .5998E+03
  1671. ) ;
  1672. LISTT = LISTT ET (PROG
  1673. .5998E+03 .5999E+03 .5999E+03 .5999E+03 .5999E+03 .5999E+03
  1674. .5999E+03 .5999E+03 .5999E+03 .5999E+03 .5999E+03 .6000E+03
  1675. .6000E+03 .6000E+03 .6000E+03 .6000E+03 .6000E+03 .6000E+03
  1676. .6000E+03 .6000E+03 .6000E+03 .6000E+03 .6000E+03 .6000E+03
  1677. .6000E+03 .6000E+03 .6000E+03 .6000E+03 .6000E+03 .6000E+03
  1678. ) ;
  1679. LISTT = LISTT 'ET' ('PROG' 0.600) ;
  1680.  
  1681. EVANA = 'EVOL' 'MANU' 'y' LISTY 'SCAL' LISTT ;
  1682.  
  1683. LYTN = 'PROG' -.40000 -.37411 -.34980 -.32695 -.30549 -.28533
  1684. -.26639 -.24859 -.23188 -.21618 -.20143 -.18757 -.17455
  1685. -.16232 -.15083 -.14004 -.12990 -.12038 -.11143 -.10302
  1686. -9.51266E-2 -8.77085E-2 -8.07397E-2 -7.41931E-2 -6.80431E-2
  1687. -6.22656E-2 -5.68381E-2 -5.17394E-2 -4.69495E-2 -4.24498E-2 ;
  1688. LYTN = LYTN 'ET' ('PROG' -3.82227E-2 -3.42517E-2 -3.05212E-2
  1689. -2.70167E-2 -2.37245E-2 -2.06317E-2 -1.77262E-2 -1.49968E-2
  1690. -1.24327E-2 -1.00240E-2 -7.76114E-3 -5.63538E-3 -3.63839E-3
  1691. -1.76237E-3 0.0000 1.76237E-3 3.63839E-3 5.63538E-3
  1692. 7.76114E-3 1.00240E-2) ;
  1693. LYTN = LYTN 'ET' ('PROG' 1.24327E-2 1.49968E-2 1.77262E-2
  1694. 2.06317E-2 2.37245E-2 2.70167E-2 3.05212E-2 3.42517E-2
  1695. 3.82227E-2 4.24498E-2 4.69495E-2 5.17394E-2 5.68381E-2
  1696. 6.22656E-2 6.80431E-2 7.41931E-2 8.07397E-2 8.77085E-2
  1697. 9.51266E-2 .10302 .11143 .12038 .12990 .14004 .15083 .16232) ;
  1698. LYTN = LYTN 'ET' ('PROG' .17455 .18757 .20143 .21618
  1699. .23188 .24859 .26639 .28533 .30549
  1700. .32695 .34980 .37411 .40000) ;
  1701.  
  1702. LTTN = 'PROG' 300.00 300.00 300.00 300.00
  1703. 300.01 300.03 300.08 300.19 300.39
  1704. 300.75 301.34 302.23 303.51 305.24
  1705. 307.48 310.26 313.57 317.40 321.71
  1706. 326.44 331.51 336.85 342.39 348.04
  1707. 353.77 359.49 365.15 370.71 376.15 ;
  1708. LTTN = LTTN 'ET' ('PROG' 381.42 386.51 391.41
  1709. 396.09 400.57 404.83 408.88 412.73
  1710. 416.36 419.79 423.04 426.10 428.98
  1711. 431.69 434.24 436.64 439.04 441.59
  1712. 444.31 447.20 450.27 453.54 457.00
  1713. 460.66 464.54 468.65 472.97 477.53 ) ;
  1714. LTTN = LTTN 'ET' ('PROG' 482.32 487.34 492.59
  1715. 498.05 503.73 509.59 515.62 521.79
  1716. 528.06 534.38 540.71 546.99 553.16
  1717. 559.15 564.90 570.32 575.36 579.96
  1718. 584.07 587.66 590.71 593.23
  1719. 595.24 596.79 597.92 598.72 599.26
  1720. 599.60 599.80 599.90 599.96 599.98) ;
  1721.  
  1722. EVREF = 'EVOL' 'MANU' 'y' LYTN 'SCAL' LTTN ;
  1723.  
  1724.  
  1725. 'SI' GRAPH ;
  1726. TAB1 = 'TABLE' ;
  1727. TAB1 . 1 = 'MOT' 'TIRR ';
  1728. TAB1 . 2 = 'MOT' 'TIRL';
  1729. TAB1 . 3 = 'MOT' 'TIRM';
  1730. TAB1 . 'TITRE' = 'TABLE' ;
  1731. TAB1 . 'TITRE' . 1 = 'MOT' 'Le resultat';
  1732. TAB1 . 'TITRE' . 2 = 'MOT' 'La reference' ;
  1733. TAB1 . 'TITRE' . 3 = 'MOT' 'L analytique' ;
  1734. 'DESS' (EVOLTN 'ET' EVREF ET EVANA) TITRE 'Temperature'
  1735. 'GRIL' 'MIMA' 'LEGE' TAB1 'XBOR' -0.3 0.3 ;
  1736. 'FINSI' ;
  1737.  
  1738. EVOLTN1 = 'IPOL' LYTN ('EXTRAIRE' EVOLTN 'ABSC')
  1739. ('EXTRAIRE' EVOLTN 'ORDO') ;
  1740. EVOLTN1 = 'EVOL' 'MANU' 'y' LYTN 'SCAL' EVOLTN1 ;
  1741. ERRO = ('EXTRAIRE' EVOLTN1 'ORDO') '-' ('EXTRAIRE' EVREF 'ORDO') ;
  1742. ERRO = 'ABS' ERRO ;
  1743. EVERRO = 'EVOL' 'MANU' 'y' LYTN 'SCAL' ERRO ;
  1744. 'SI' GRAPH ;
  1745. 'DESSIN' EVERRO 'TITR' 'Error on temperature' ;
  1746. 'FINSI' ;
  1747. *
  1748. ERRL1 = 'MAXIMUM' ('EXTRAIRE' ('PRIM' EVERRO) 'ORDO') ;
  1749. CAC = 'EVOL' 'MANU' 'y' LYTN 'SCAL' ('PROG' ('DIME' LYTN) '*' 1) ;
  1750. CAC = 'MAXIMUM' ('EXTRAIRE' ('PRIM' CAC) 'ORDO') ;
  1751. ERRL1 = ERRL1 '/' CAC ;
  1752. *
  1753. * ERRL1 in degree
  1754. *
  1755. 'SI' (ERRL1 > 10) ;
  1756. 'ERREUR' 5 ;
  1757. 'FINSI' ;
  1758. *
  1759. 'FIN' ;
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  

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