Télécharger tube_scalpass_multi.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : tube_scalpass_multi.dgibi
  2. ******************************************************************
  3. * Calcul du tube a choc; CAS MULTIESPECE *
  4. * GAZ multi-especes "calorically perfect", *
  5. * avec le modele "thermally perfect" *
  6. * *
  7. * FORMULATION VF COMPRESSIBLE EXPLICITE *
  8. * SOLVEURS: Van Leer - Hanel, Colella-Glaz *
  9. * *
  10. * Splitting de scalaires passifs *
  11. * *
  12. * A. BECCANTINI TTMF FEVRIER 2000 *
  13. ******************************************************************
  14.  
  15. 'MESSAGE' 'A mettre à jour' ;
  16. 'FIN' ;
  17.  
  18. 'OPTION' 'DIME' 2 ;
  19. 'OPTION' 'ELEM' 'QUA4' ;
  20. 'OPTION' 'ISOV' 'SULI' ;
  21. 'OPTION' 'ECHO' 0 ;
  22. 'OPTION' 'TRAC' 'X';
  23.  
  24. GRAPH = FAUX ;
  25. * GRAPH = VRAI ;
  26.  
  27. *
  28. *** Methodes possibles :
  29. *
  30. * 'VLH'
  31. * 'CG'
  32.  
  33. METO = 'CG' ;
  34.  
  35.  
  36. *******************************************************
  37. *******************************************************
  38. ** PROCEDURE EXEXSP POUR FORMULATION VF COMPRESSIBLE **
  39. ** CAS MULTIESPECES "THERMALLY PERFECT" **
  40. ** TRANSPORT DE SCALAIRES PASSIFS **
  41. *******************************************************
  42. *******************************************************
  43.  
  44. 'DEBPROC' EXEXSP ;
  45. 'ARGUMENT' RV*TABLE ;
  46.  
  47. *******************************************
  48. **** Recherche de RV . *KONV . IDEUL ****
  49. *******************************************
  50.  
  51. *
  52. **** Nom de la table RV . *'KONV' -> NOMT
  53. *
  54.  
  55. NBOP = 'DIME' (RV . 'LISTOPER' ) ;
  56.  
  57. 'REPETER' BL1 NBOP;
  58. MCEL = 'EXTRAIRE' &BL1 RV . 'LISTOPER';
  59. 'SI' ( 'EGA' MCEL 'KONV ');
  60. NOMT = 'MOT' ('TEXTE' ('CHAINE' &BL1 MCEL));
  61. 'QUITTER' BL1;
  62. 'FINSI' ;
  63. 'FIN' BL1;
  64.  
  65. IEUL = RV . NOMT . 'KOPT' . 'IDEUL';
  66. 'SI' ('NON' (IEUL 'EGA' 3));
  67. 'MESSAGE' 'EULERMST ???';
  68. 'ERREUR' 21;
  69. 'FINSI' ;
  70.  
  71. * Mono-espece ou multi-especes
  72.  
  73. 'SI' ('EXISTE' (RV . INCO . IPGAZ) 'ESPEULE') ;
  74. LOGMUL = VRAI ;
  75. 'SINON' ;
  76. LOGMUL = FAUX ;
  77. 'FINSI' ;
  78.  
  79. *
  80. **** CL
  81. *
  82.  
  83.  
  84. LOGLIM = RV . 'INCO' . 'CLIM' ;
  85.  
  86.  
  87. ******************************************
  88. **** Ordre en espace, ordre en temps ****
  89. ******************************************
  90.  
  91. ORD_ESP = RV . 'ORDREESP' ;
  92. ORD_TPS = RV . 'ORDRETPS' ;
  93.  
  94. 'MESSAGE' '--------------------------';
  95. 'MESSAGE' 'Ordre en Espace :' ord_esp;
  96. 'MESSAGE' 'Ordre en Temps :' ord_tps;
  97. 'MESSAGE' '--------------------------';
  98.  
  99. 'SI' ((ORD_ESP 'EGA' 1) 'ET' (ORD_TPS 'EGA' 2));
  100. 'MESSAGE' ;
  101. 'MESSAGE' (CHAINE 'Ordre en Espace doit etre 2');
  102. 'MESSAGE' (CHAINE 'On impose ça.');
  103. 'MESSAGE' ;
  104. RV . 'ORDREESP' = 2 ;
  105. 'MESSAGE' ;
  106. 'MESSAGE' '--------------------------';
  107. 'MESSAGE' 'Ordre en Espace :' ord_esp;
  108. 'MESSAGE' 'Ordre en Temps :' ord_tps;
  109. 'MESSAGE' '--------------------------';
  110. 'FINSI' ;
  111.  
  112.  
  113. ******************************
  114. **** La table 'PASDETPS' ****
  115. ******************************
  116.  
  117. TPSI = RV . 'TPSI' ;
  118. TFIN = RV . 'TFINAL';
  119. RV . 'PASDETPS' . 'TPS' = TPSI;
  120.  
  121. *
  122. **** DELTAT-1 est un argument de PRET (prediction)
  123. * Donc on doit l'initialiser.
  124. *
  125.  
  126. RV . 'PASDETPS' . 'DELTAT-1' = 0.0D0;
  127. CFL = rv.'ALFA' ;
  128.  
  129.  
  130. *********************
  131. **** Les TABLES *****
  132. *********************
  133.  
  134. *
  135. **** RV . 'INCO'
  136. * RV . 'DOMAINE'
  137. * RV . 'KIZD'
  138. * RV . 'KIZG'
  139.  
  140.  
  141. *
  142. **** RV . 'INCO' -> KINCO
  143. *
  144.  
  145. KINCO = (RV . 'INCO') ;
  146.  
  147.  
  148. *
  149. **** RV . 'DOMAINE' -> KDOMA
  150. *
  151.  
  152. *KDOMA = (RV . 'DOMAINE') ;
  153. KDOMA = (RV . 'MODTOT') ;
  154. KDOMA2 = (RV . 'DOMAINE') ;
  155.  
  156. *
  157. **** RV . 'KIZD' contient les volumes des ELTs
  158. *
  159.  
  160. 'SI' ('NON' ('EXISTE' RV 'KIZD')) ;
  161. 'KDIA' RV ;
  162. 'FINSI' ;
  163.  
  164. *
  165. ***** RV . 'KIZG' contient les flux aux interfaces.
  166. *
  167.  
  168. 'SI' ('NON' ('EXISTE' RV 'KIZG')) ;
  169. RV . 'KIZG' = 'TABLE' 'KIZG' ;
  170. 'FINSI' ;
  171.  
  172. 'SI' LOGMUL ;
  173.  
  174. *********************************************************
  175. **** Multi-especes, boucle Sur les Pas de Temps ****
  176. *********************************************************
  177.  
  178. *
  179. **** Evaluation de coeff pour le calcule des pentes
  180. *
  181.  
  182. KINCO . 'V' KINCO . 'P' KINCO . 'T' KINCO . 'Y'
  183. KINCO . 'S' KINCO . 'GAMMA' = 'PRIM' 'PERFTEMP'
  184. (KINCO . 'IPGAZ') (KINCO . 'RNI') (KINCO . 'GNI')
  185. (KINCO . 'ENI') (KINCO. 'RYNI') (KINCO. 'RSNI') ;
  186.  
  187. GRADR ALR COEFR = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR'
  188. (KINCO . 'RNI');
  189.  
  190. GRADP ALP COEFP = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR'
  191. (KINCO . 'P');
  192.  
  193. GRADV ALV COEFV = 'PENT' KDOMA 'CENTRE' 'EULEVECT' 'LIMITEUR'
  194. (KINCO . 'V');
  195.  
  196. GRADY ALY COEFY = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR'
  197. (KINCO . 'Y');
  198.  
  199. GRADS ALS COEFS = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR'
  200. (KINCO . 'S');
  201.  
  202.  
  203.  
  204. I = 0 ;
  205.  
  206. 'REPETER' BLOC1 (RV . 'ITMA') ;
  207.  
  208. I = I + 1 ;
  209.  
  210. *
  211. ***** Les variables primitives
  212. *
  213. KINCO . 'V' KINCO . 'P' KINCO . 'T' KINCO . 'Y'
  214. KINCO . 'S' KINCO . 'GAMMA' = 'PRIM' 'PERFTEMP'
  215. (KINCO . 'IPGAZ') (KINCO . 'RNI') (KINCO . 'GNI')
  216. (KINCO . 'ENI') (KINCO. 'RYNI') (KINCO. 'RSNI') ;
  217.  
  218. *
  219. ***** Les valeurs aux interfaces
  220. *
  221.  
  222. 'SI' (ORD_ESP 'EGA' 1) ;
  223.  
  224. ROF VITF PF YF SF = 'PRET' 'PERFTEMP' ORD_ESP ORD_TPS
  225. KDOMA (KINCO . 'IPGAZ') (KINCO . 'RNI') (KINCO . 'V')
  226. (KINCO . 'P') (KINCO . 'Y') ( KINCO . 'S' );
  227.  
  228. 'SINON';
  229.  
  230. *
  231. ***** Ordre 2 en espace => calcul des pentes
  232. *
  233.  
  234. GRADR ALR = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR'
  235. (KINCO . 'RNI') 'GRADGEO' COEFR ;
  236.  
  237. GRADP ALP = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR'
  238. (KINCO . 'P') 'GRADGEO' COEFP ;
  239.  
  240. GRADV ALV = 'PENT' KDOMA 'CENTRE' 'EULEVECT' 'LIMITEUR'
  241. (KINCO . 'V') 'GRADGEO' COEFV ;
  242.  
  243. GRADY ALY = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR'
  244. (KINCO . 'Y') 'GRADGEO' COEFY ;
  245.  
  246. GRADS ALS = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR'
  247. (KINCO . 'S') 'GRADGEO' COEFS ;
  248.  
  249.  
  250. 'SI' (ORD_TPS 'EGA' 1);
  251.  
  252. ROF VITF PF YF SF = 'PRET' 'PERFTEMP' ORD_ESP ORD_TPS
  253. KDOMA (KINCO . 'IPGAZ')
  254. (KINCO . 'RNI') GRADR ALR
  255. (KINCO . 'V') GRADV ALV
  256. (KINCO . 'P') GRADP ALP
  257. (KINCO . 'Y') GRADY ALY
  258. (KINCO . 'S') GRADS ALS ;
  259.  
  260.  
  261. 'SINON' ;
  262. *
  263. ********* Ordre 2 en temps
  264. *
  265. ROF VITF PF YF SF = 'PRET' 'PERFTEMP' ORD_ESP ORD_TPS
  266. KDOMA (KINCO . 'IPGAZ')
  267. (KINCO . 'RNI') GRADR ALR
  268. (KINCO . 'V') GRADV ALV
  269. (KINCO . 'P') GRADP ALP
  270. (KINCO . 'Y') GRADY ALY
  271. (KINCO . 'S') GRADS ALS
  272. (KINCO . 'GAMMA')
  273. ((RV . 'PASDETPS' . 'DELTAT-1')/2.0);
  274. 'FINSI' ;
  275.  
  276. 'FINSI' ;
  277.  
  278. *
  279. *********** Creation de MCHAML de type 'FACEL' pour les
  280. * calcul de flux aux interfaces
  281.  
  282.  
  283.  
  284. KINCO . 'RNF' = ROF ;
  285. KINCO . 'VITNF' = VITF ;
  286. KINCO . 'PNF' = PF ;
  287. KINCO . 'YF' = YF ;
  288. KINCO . 'SF' = SF ;
  289.  
  290. *
  291. ********* Boucle sur les operateurs
  292. *
  293.  
  294. 'REPETER' BLOC2 NBOP ;
  295. NOMPER = 'EXTRAIRE' &BLOC2 (RV . 'LISTOPER');
  296. NOTABLE = 'MOT' ('TEXTE' ('CHAINE' &BLOC2 NOMPER) ) ;
  297. ('TEXTE' NOMPER) (RV . NOTABLE) ;
  298. 'FIN' BLOC2 ;
  299.  
  300. *
  301. ********* Mise a jour de la table RV . 'PASDETPS'
  302. *
  303.  
  304. 'SI' ('EXISTE' RV 'DTI');
  305. DTI = 'MINIMUM'
  306. ('PROG' ((RV . 'DTI') '/' CFL)
  307. (RV . 'PASDETPS' . 'DTCONV') );
  308. 'SINON';
  309. DTI = (RV . 'PASDETPS' . 'DTCONV');
  310. 'FINSI';
  311.  
  312. RV . 'PASDETPS' . 'DELTAT' = DTI ;
  313.  
  314. TMPS = RV . 'PASDETPS' . 'TPS';
  315. DTI0 = TFIN '-' TMPS;
  316. DTI0 = DTI0 '/' CFL;
  317.  
  318. 'SI' (DTI0 '<EG' DTI);
  319. DTI = DTI0;
  320. RV . 'PASDETPS' . 'DELTAT' = DTI ;
  321. LOGQUIT = VRAI;
  322. 'SINON' ;
  323. LOGQUIT = FAUX ;
  324. 'FINSI' ;
  325.  
  326.  
  327. *
  328. ******** On avance au pas de temps suivant
  329. *
  330. * N.B. Tn+1 = Tn + (CFL * RV . 'PASDETPS' . 'DELTAT');
  331. *
  332.  
  333. 'AVCT' RV CFL 'IMPR' (RV.'FIDT') ;
  334.  
  335. *
  336. ******** On detrui les choses qui ne servent plus
  337. *
  338. *
  339. * Les variables primitives
  340. *
  341. 'DETR' ( KINCO . 'V');
  342. 'DETR' ( KINCO . 'P');
  343. 'DETR' ( KINCO . 'T');
  344. 'DETR' ( KINCO . 'Y');
  345. 'DETR' ( KINCO . 'S');
  346. 'DETR' ( KINCO . 'GAMMA');
  347. 'OUBL' KINCO 'V';
  348. 'OUBL' KINCO 'P';
  349. 'OUBL' KINCO 'T';
  350. 'OUBL' KINCO 'Y';
  351. 'OUBL' KINCO 'S';
  352. 'OUBL' KINCO 'GAMMA';
  353. *
  354. * Les MCHAML faces
  355. *
  356. 'DETR' ROF ;
  357. 'DETR' VITF ;
  358. 'DETR' PF ;
  359. 'DETR' YF;
  360. 'OUBL' KINCO 'RNF';
  361. 'OUBL' KINCO 'VITNF';
  362. 'OUBL' KINCO 'PNF';
  363. 'OUBL' KINCO 'YF';
  364. 'OUBL' KINCO 'SF';
  365.  
  366. *
  367. * Les pentes 'ET' les limiteurs
  368. *
  369. 'SI' (ORD_ESP 'EGA' 2);
  370. 'DETR' GRADR;
  371. 'DETR' GRADP;
  372. 'DETR' GRADV;
  373. 'DETR' GRADY;
  374. 'DETR' GRADS;
  375. 'DETR' ALR;
  376. 'DETR' ALP;
  377. 'DETR' ALV;
  378. 'DETR' ALY;
  379. 'DETR' ALS;
  380. 'FINSI' ;
  381.  
  382.  
  383. *
  384. ******** On impose le CL
  385. *
  386. *
  387. 'SI' LOGLIM;
  388. PROLIM RV ;
  389. 'FINSI' ;
  390.  
  391.  
  392. 'SI' LOGQUIT;
  393. 'QUITTER' BLOC1;
  394. 'FINSI';
  395.  
  396.  
  397. 'FIN' BLOC1 ;
  398.  
  399. ********************************************
  400. **** FIN de Boucle Sur les Pas de Temps ***
  401. ********************************************
  402.  
  403. 'SINON' ;
  404.  
  405.  
  406. *********************************************************
  407. **** Mono-espece, boucle sur les pas de temps ****
  408. *********************************************************
  409.  
  410.  
  411. KINCO . 'V' KINCO . 'P' KINCO . 'T' KINCO . 'S'
  412. KINCO . 'GAMMA' = 'PRIM' 'PERFTEMP' (KINCO . 'IPGAZ')
  413. (KINCO . 'RNI') (KINCO . 'GNI') (KINCO . 'ENI') (KINCO . 'RSNI');
  414.  
  415. GRADR ALR COEFR = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR'
  416. (KINCO . 'RNI');
  417.  
  418. GRADP ALP COEFP = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR'
  419. (KINCO . 'P');
  420.  
  421. GRADV ALV COEFV = 'PENT' KDOMA 'CENTRE' 'EULEVECT' 'LIMITEUR'
  422. (KINCO . 'V');
  423.  
  424.  
  425. GRADS ALS COEFS = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR'
  426. (KINCO . 'S');
  427.  
  428.  
  429.  
  430. I = 0 ;
  431.  
  432. 'REPETER' BLOC1 (RV . 'ITMA') ;
  433.  
  434. I = I + 1 ;
  435.  
  436. *
  437. ***** Les variables primitives
  438. *
  439.  
  440. KINCO . 'V' KINCO . 'P' KINCO . 'T' KINCO . 'S'
  441. KINCO . 'GAMMA' = 'PRIM' 'PERFTEMP' (KINCO . 'IPGAZ')
  442. (KINCO . 'RNI') (KINCO . 'GNI') (KINCO . 'ENI') (KINCO . 'RSNI');
  443.  
  444. *
  445. ***** Les valeurs aux interfaces
  446. *
  447.  
  448.  
  449. 'SI' (ORD_ESP 'EGA' 1) ;
  450.  
  451. ROF VITF PF SF = 'PRET' 'PERFTEMP' ORD_ESP ORD_TPS
  452. KDOMA (KINCO . 'IPGAZ') (KINCO . 'RNI') (KINCO . 'V')
  453. (KINCO . 'P') (KINCO . 'S') ;
  454.  
  455. 'SINON';
  456.  
  457. *
  458. ***** Ordre 2 en espace => calcul des pentes
  459. *
  460.  
  461.  
  462. GRADR ALR = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR'
  463. (KINCO . 'RNI') 'GRADGEO' COEFR ;
  464.  
  465. GRADP ALP = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR'
  466. (KINCO . 'P') 'GRADGEO' COEFP ;
  467.  
  468. GRADV ALV = 'PENT' KDOMA 'CENTRE' 'EULEVECT' 'LIMITEUR'
  469. (KINCO . 'V') 'GRADGEO' COEFV ;
  470.  
  471. GRADS ALS = 'PENT' KDOMA 'CENTRE' 'EULESCAL' 'LIMITEUR'
  472. (KINCO . 'S') 'GRADGEO' COEFS ;
  473.  
  474.  
  475. 'SI' (ORD_TPS 'EGA' 1);
  476.  
  477. ROF VITF PF SF = 'PRET' 'PERFTEMP' ORD_ESP ORD_TPS
  478. KDOMA (KINCO . 'IPGAZ')
  479. (KINCO . 'RNI') GRADR ALR
  480. (KINCO . 'V') GRADV ALV
  481. (KINCO . 'P') GRADP ALP ;
  482.  
  483. 'SINON' ;
  484. *
  485. ********* Ordre 2 en temps
  486. *
  487. ROF VITF PF SF = 'PRET' 'PERFTEMP' ORD_ESP ORD_TPS
  488. KDOMA (KINCO . 'IPGAZ')
  489. (KINCO . 'RNI') GRADR ALR
  490. (KINCO . 'V') GRADV ALV
  491. (KINCO . 'P') GRADP ALP
  492. (KINCO . 'S') GRADS ALS
  493. (KINCO . 'GAMMA')
  494. ((RV . 'PASDETPS' . 'DELTAT-1')/2.0);
  495. 'FINSI' ;
  496.  
  497. 'FINSI' ;
  498.  
  499.  
  500. *
  501. *********** Creation de MCHAML de type 'FACEL' pour les
  502. * calcul de flux aux interfaces
  503.  
  504.  
  505. KINCO . 'RNF' = ROF ;
  506. KINCO . 'VITNF' = VITF ;
  507. KINCO . 'PNF' = PF ;
  508. KINCO . 'SF' = SF ;
  509.  
  510. *
  511. ********* Boucle sur les operateurs
  512. *
  513.  
  514. 'REPETER' BLOC2 NBOP ;
  515. NOMPER = 'EXTRAIRE' &BLOC2 (RV . 'LISTOPER');
  516. NOTABLE = 'MOT' ('TEXTE' ('CHAINE' &BLOC2 NOMPER) ) ;
  517. ('TEXTE' NOMPER) (RV . NOTABLE) ;
  518. 'FIN' BLOC2 ;
  519.  
  520. *
  521. ********* Mise a jour de la table RV . 'PASDETPS'
  522. *
  523.  
  524. 'SI' ('EXISTE' RV 'DTI');
  525. DTI = 'MINIMUM'
  526. ('PROG' ((RV . 'DTI') '/' CFL)
  527. (RV . 'PASDETPS' . 'DTCONV') );
  528. 'SINON';
  529. DTI = (RV . 'PASDETPS' . 'DTCONV');
  530. 'FINSI';
  531.  
  532. RV . 'PASDETPS' . 'DELTAT' = DTI ;
  533.  
  534. TMPS = RV . 'PASDETPS' . 'TPS';
  535. DTI0 = TFIN '-' TMPS;
  536. DTI0 = DTI0 '/' CFL;
  537.  
  538. 'SI' (DTI0 '<EG' DTI);
  539. DTI = DTI0;
  540. RV . 'PASDETPS' . 'DELTAT' = DTI ;
  541. LOGQUIT = VRAI;
  542. 'SINON' ;
  543. LOGQUIT = FAUX ;
  544. 'FINSI' ;
  545.  
  546.  
  547. *
  548. ******** On avance au pas de temps suivant
  549. *
  550. * N.B. Tn+1 = Tn + (CFL * RV . 'PASDETPS' . 'DELTAT');
  551. *
  552.  
  553. 'AVCT' RV CFL 'IMPR' (RV.'FIDT') ;
  554.  
  555. *
  556. ******** On detrui les choses qui ne servent plus
  557. *
  558. *
  559. * Les variables primitives
  560. *
  561. 'DETR' ( KINCO . 'V');
  562. 'DETR' ( KINCO . 'P');
  563. 'DETR' ( KINCO . 'T');
  564. 'DETR' ( KINCO . 'S');
  565. 'DETR' ( KINCO . 'GAMMA');
  566. 'OUBL' KINCO 'V';
  567. 'OUBL' KINCO 'P';
  568. 'OUBL' KINCO 'T';
  569. 'OUBL' KINCO 'S';
  570. 'OUBL' KINCO 'GAMMA';
  571. *
  572. * Les MCHAML faces
  573. *
  574. 'DETR' ROF ;
  575. 'DETR' VITF ;
  576. 'DETR' PF ;
  577. 'DETR' SF ;
  578. 'OUBL' KINCO 'RNF';
  579. 'OUBL' KINCO 'VITNF';
  580. 'OUBL' KINCO 'PNF';
  581. 'OUBL' KINCO 'SF';
  582. *
  583. * Les pentes 'ET' les limiteurs
  584. *
  585. 'SI' (ORD_ESP 'EGA' 2) ;
  586. 'DETR' GRADR ;
  587. 'DETR' GRADP ;
  588. 'DETR' GRADV ;
  589. 'DETR' GRADS ;
  590. 'DETR' ALR ;
  591. 'DETR' ALP ;
  592. 'DETR' ALV ;
  593. 'DETR' ALS ;
  594. 'FINSI' ;
  595.  
  596.  
  597. *
  598. ******** On impose le CL
  599. *
  600. *
  601. 'SI' LOGLIM;
  602. PROLIM RV ;
  603. 'FINSI' ;
  604.  
  605.  
  606. 'SI' LOGQUIT;
  607. 'QUITTER' BLOC1;
  608. 'FINSI';
  609.  
  610.  
  611. 'MENAGE' ;
  612.  
  613. 'FIN' BLOC1 ;
  614.  
  615. ********************************************
  616. **** FIN de Boucle Sur les Pas de Temps ***
  617. ********************************************
  618.  
  619. 'FINSI' ;
  620.  
  621. 'FINPROC' ;
  622.  
  623. *****************************************************
  624. *****************************************************
  625. ** FIN PROCEDURE EXEXSP **
  626. *****************************************************
  627. *****************************************************
  628. *****************************************************
  629. *****************************************************
  630. ***** PROCEDURE PROLIM *****
  631. *****************************************************
  632. *****************************************************
  633.  
  634.  
  635. *****************************************************
  636. *****************************************************
  637. ***** FIN PROCEDURE PROLIM *****
  638. *****************************************************
  639. *****************************************************
  640.  
  641.  
  642. ************
  643. * MAILLAGE *
  644. ************
  645.  
  646. RAF = 4 ;
  647. NY = RAF ;
  648. NX = 12 '*' RAF ;
  649.  
  650. L = 1.0D0 ;
  651. DX = L '/' NX '/' 2.0D0;
  652. H = NY '*' DX ;
  653.  
  654. xD = 0.5D0 '*' L ;
  655. xG = -1.0D0 '*' xD ;
  656. yH = 0.5D0 '*' H ;
  657. yB = -1.0D0 '*' yH ;
  658.  
  659. A1 = xG yB ;
  660. A2 = 0.0D0 yB ;
  661. A3 = xD yB ;
  662. A4 = xD yH ;
  663. A5 = 0.0D0 yH ;
  664. A6 = xG yH ;
  665. VECTG = XG 0.0D0 ;
  666. VECTD = XD 0.0D0 ;
  667.  
  668. xBG = xG '-' DX;
  669. XBD = xD '+' DX;
  670.  
  671. B1 = xBG yB;
  672. B2 = xBG yH;
  673. B3 = xBD yB;
  674. B4 = xBD yH;
  675.  
  676. BAS1 = A1 'DROI' NX A2 ;
  677. BAS2 = A2 'DROI' NX A3 ;
  678. HAU2 = A4 'DROI' NX A5 ;
  679. HAU1 = A5 'DROI' NX A6 ;
  680. LATG = B1 'DROI' NY B2 ;
  681. LAT1 = A1 'DROI' NY A6 ;
  682. LAT12 = A2 'DROI' NY A5 ;
  683. LAT2 = A3 'DROI' NY A4 ;
  684. LATD = B3 'DROI' NY B4 ;
  685.  
  686.  
  687. DOM1 = LAT12 'TRANSLATION' NX VECTG ;
  688.  
  689. DOM2 = LAT12 'TRANSLATION' NX VECTD ;
  690.  
  691. VECTFG = (-1.0D0 '*' DX) 0.0D0;
  692. VECTFD = DX 0.0D0;
  693.  
  694. FRONTG = LAT1 'TRANSLATION' 1 VECTFG;
  695. FRONTG = FRONTG 'COUL' ROUG ;
  696.  
  697. FRONTD = LAT2 'TRANSLATION' 1 VECTFD;
  698. FRONTD = FRONTD 'COUL' VERT ;
  699.  
  700. *
  701. *** Rotation
  702. *
  703.  
  704. ANGLE = 30.0D0;
  705. ORIG = 0.0D0 0.0D0;
  706.  
  707. 'MESSAGE';
  708. 'MESSAGE' (CHAIN 'ANGLE = ' ANGLE);
  709. 'MESSAGE';
  710.  
  711. DOM1 = DOM1 'TOURNER' ANGLE ORIG;
  712. DOM2 = DOM2 'TOURNER' ANGLE ORIG;
  713. FRONTG = FRONTG 'TOURNER' ANGLE ORIG;
  714. FRONTD = FRONTD 'TOURNER' ANGLE ORIG;
  715.  
  716. DOMINT = DOM1 'ET' DOM2 ;
  717. 'ELIMINATION' DOMINT 1D-6;
  718.  
  719. FRONT = FRONTG 'ET' FRONTD ;
  720. 'ELIMINATION' FRONT 1D-6;
  721.  
  722. DOMTOT = DOMINT 'ET' FRONT;
  723. 'ELIMINATION' DOMTOT 1D-6;
  724.  
  725. **********************
  726. *** OBJETS MODELES ***
  727. **********************
  728. MDOMTOT = 'CHANGER' DOMTOT 'QUAF' ;
  729. MDOMINT = 'CHANGER' DOMINT 'QUAF' ;
  730. MDOM1 = 'CHANGER' DOM1 'QUAF' ;
  731. MDOM2 = 'CHANGER' DOM2 'QUAF' ;
  732. MFRONTG = 'CHANGER' FRONTG 'QUAF' ;
  733. MFRONTD = 'CHANGER' FRONTD 'QUAF' ;
  734. MFRONT = 'CHANGER' FRONT 'QUAF' ;
  735. 'ELIM' (MDOMTOT 'ET' MDOMINT 'ET' MDOM1 'ET' MDOM2 'ET'
  736. MFRONTG 'ET' MFRONTD 'ET' MFRONT) 1.E-5;
  737. MDNS = 'EULER' ;
  738. $DOMTOT = 'MODE' MDOMTOT MDNS ;
  739. $DOMINT = 'MODE' MDOMINT MDNS ;
  740. $DOM1 = 'MODE' MDOM1 MDNS ;
  741. $DOM2 = 'MODE' MDOM2 MDNS ;
  742. $FRONTG = 'MODE' MFRONTG MDNS ;
  743. $FRONTD = 'MODE' MFRONTD MDNS ;
  744. $FRONT = 'MODE' MFRONT MDNS ;
  745.  
  746. *
  747. ******* Creation de la ligne Utilisée pour le Post-Traitement
  748. * reliant les points centres
  749. *
  750.  
  751. XINIT = XG '+' (0.5D0 '*' DX) ;
  752. YINIT = YB '+' (0.5D0 '*' DX) ;
  753. XFIN = XD '-' (0.5D0 '*' DX) ;
  754. YFIN = YINIT ;
  755. PINI = XINIT YINIT;
  756. PFIN = XFIN YFIN ;
  757. IAUX = (2 '*' NX) '-' 1 ;
  758. COURB = PINI 'DROIT' IAUX PFIN;
  759. COURB = COURB 'TOURNER' ANGLE ORIG;
  760. COURB = COURB 'COULEUR' 'VERT';
  761. 'ELIMINATION' 0.001 Courb ('DOMA' $DOMTOT 'CENTRE') ;
  762.  
  763. 'SI' GRAPH ;
  764. 'TRACER' ('DOMA' $DOMTOT 'MAILLAGE' 'ET' COURB)
  765. 'TITRE' ('CHAINE' 'Maillage ');
  766. 'FINSI' ;
  767.  
  768.  
  769. ***********************
  770. **** LA TABLE PGAZ ****
  771. ***********************
  772.  
  773. PGAZ = 'TABLE' ;
  774.  
  775. *
  776. **** Ordre des polynoms cv_i
  777. *
  778.  
  779. PGAZ . 'NORD' = 0 ;
  780.  
  781. *
  782. **** Especes qui sont dans les equations d'Euler
  783. *
  784.  
  785. PGAZ . 'ESPEULE' = 'MOTS' 'H2 ' 'O2 ' 'H2O ' ;
  786.  
  787. *
  788. **** Espece qui n'y est pas
  789. *
  790.  
  791.  
  792. PGAZ . 'ESPNEULE' = 'N2 ';
  793.  
  794. *
  795.  
  796. PGAZ . 'H2 ' = 'TABLE' ;
  797. PGAZ . 'H2O ' = 'TABLE' ;
  798. PGAZ . 'N2 ' = 'TABLE' ;
  799. PGAZ . 'O2 ' = 'TABLE' ;
  800.  
  801. *
  802. **** R (J/Kg/K)
  803. *
  804.  
  805. PGAZ . 'H2 ' . 'R' = 4130.0 ;
  806. PGAZ . 'H2O ' . 'R' = 461.4 ;
  807. PGAZ . 'N2 ' . 'R' = 296.8 ;
  808. PGAZ . 'O2 ' . 'R' = 259.8 ;
  809.  
  810.  
  811. *
  812. **** Regressions polynomials
  813. *
  814.  
  815.  
  816. *
  817. * Cas particulier: gaz "calorically perfect"
  818. *
  819.  
  820. PGAZ . 'H2 ' . 'A' = 'PROG' .14571861D+05 ;
  821. PGAZ . 'H2O ' . 'A' = 'PROG' .26589930D+04 ;
  822. PGAZ . 'N2 ' . 'A' = 'PROG' .10024563D+04 ;
  823. PGAZ . 'O2 ' . 'A' = 'PROG' .92885670D+03 ;
  824.  
  825. *
  826. **** "Enthalpies" (ou energies) de formations a OK (J/Kg)
  827. * Note: ce sont des entites numeriques
  828. * h_i = h_i(T0) '-' \int_0^{T0} cp_i(x) dx =
  829. * h_i(T0) '-' (\int_0^{T0} cv_i(x) dx '+' R_i * T0)
  830. *
  831. * Pour H2, H20, O2, N2 on a:
  832. *
  833. * T0 = 298.15
  834. *
  835.  
  836. PGAZ . 'H2 ' . 'H0K' = -4.195D6 ;
  837. PGAZ . 'H2O ' . 'H0K' = -1.395D7 ;
  838. PGAZ . 'N2 ' . 'H0K' = -2.953D5 ;
  839. PGAZ . 'O2 ' . 'H0K' = -2.634D5 ;
  840.  
  841. *
  842.  
  843. PGAZ . 'SCALPASS' = 'MOTS' 'TAU ' 'EPS ' ;
  844.  
  845. *
  846. *** Fin PGAZ
  847. *
  848.  
  849. *
  850. *** Etat gauche
  851. *
  852.  
  853. rog = 1.0 ;
  854. ung = 0.0 ;
  855. utg = 0.0 ;
  856. retg = .4291145555695540D+04 ;
  857. yh2g = 0.01 ;
  858. yo2g = 0.2 ;
  859. yh2og = 0.3 ;
  860. taug = yo2g ;
  861. epsg = yh2g ;
  862.  
  863. *
  864.  
  865. rouxg = ((ung '*' ('COS' ANGLE)) '-'
  866. (utg '*' ('SIN' ANGLE))) '*' rog ;
  867.  
  868. rouyg = ((ung '*' ('SIN' ANGLE)) '+'
  869. (utg '*' ('COS' ANGLE))) '*' rog;
  870.  
  871.  
  872. *
  873. *** Etat droite
  874. *
  875.  
  876. rod = 1.250D-1 ;
  877. und = 0.0D0 ;
  878. utd = 0.0D0 ;
  879. retd = .3598345082089522D+01 ;
  880. yh2d = 0.2 ;
  881. yo2d = 0.4 ;
  882. yh2od = 0.1 ;
  883. taud = yo2d ;
  884. epsd = yh2d ;
  885.  
  886.  
  887. rouxd = ((und '*' ('COS' ANGLE)) '-'
  888. (utd '*' ('SIN' ANGLE))) '*' rod;
  889. rouyd = ((und '*' ('SIN' ANGLE)) '+'
  890. (utd '*' ('COS' ANGLE))) '*' rod;
  891.  
  892. *
  893. *** ro
  894. *
  895.  
  896. RO_f1 = 'KCHT' $FRONTG 'SCAL' 'CENTRE' rog ;
  897. RO_f2 = 'KCHT' $FRONTD 'SCAL' 'CENTRE' rod ;
  898. RO_f = 'KCHT' $FRONT 'SCAL' 'CENTRE' (RO_f1 'ET' RO_f2) ;
  899.  
  900. RO_i1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' rog;
  901. RO_i2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' rod;
  902. RO_i = 'KCHT' $DOMINT 'SCAL' 'CENTRE' (RO_i1 'ET' RO_i2);
  903.  
  904. RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (RO_i 'ET' RO_f) ;
  905.  
  906. *
  907. *** ro u, ro v
  908. *
  909.  
  910. GN_f1 = 'KCHT' $FRONTG 'VECT' 'CENTRE' (rouxg rouyg);
  911. GN_f2 = 'KCHT' $FRONTD 'VECT' 'CENTRE' (rouxd rouyd);
  912. GN_f = 'KCHT' $FRONT 'VECT' 'CENTRE' (GN_f1 'ET' GN_f2);
  913.  
  914. GN_i1 = 'KCHT' $DOM1 'VECT' 'CENTRE' (rouxg rouyg);
  915. GN_i2 = 'KCHT' $DOM2 'VECT' 'CENTRE' (rouxd rouyd);
  916. GN_i = 'KCHT' $DOMINT 'VECT' 'CENTRE' (GN_i1 'ET' GN_i2);
  917.  
  918. GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' (GN_i 'ET' GN_f) ;
  919.  
  920. *
  921. *** ro e
  922. *
  923.  
  924. RE_f1 = 'KCHT' $FRONTG 'SCAL' 'CENTRE' retg ;
  925. RE_f2 = 'KCHT' $FRONTD 'SCAL' 'CENTRE' retd ;
  926. RE_f = 'KCHT' $FRONT 'SCAL' 'CENTRE' (RE_f1 'ET' RE_f2) ;
  927.  
  928. RE_i1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' retg ;
  929. RE_i2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' retd ;
  930. RE_i = 'KCHT' $DOMINT 'SCAL' 'CENTRE' (RE_i1 'ET' RE_i2);
  931.  
  932. REN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (RE_i ET RE_f) ;
  933.  
  934. *
  935. *** ro y
  936. *
  937.  
  938. RYH2 =('KCHT' $FRONTG 'SCAL' 'CENTRE' 'COMP' 'H2 ' (rog '*' yh2g)) 'ET'
  939. ('KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'H2 ' (rog '*' yh2g)) 'ET'
  940. ('KCHT' $FRONTD 'SCAL' 'CENTRE' 'COMP' 'H2 ' (rod '*' yh2d)) 'ET'
  941. ('KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'H2 ' (rod '*' yh2d));
  942.  
  943. RYO2 =('KCHT' $FRONTG 'SCAL' 'CENTRE' 'COMP' 'O2 ' (rog '*' yO2g)) 'ET'
  944. ('KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'O2 ' (rog '*' yO2g)) 'ET'
  945. ('KCHT' $FRONTD 'SCAL' 'CENTRE' 'COMP' 'O2 ' (rod '*' yO2d)) 'ET'
  946. ('KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'O2 ' (rod '*' yO2d));
  947.  
  948. RYH2O =('KCHT' $FRONTG 'SCAL' 'CENTRE' 'COMP' 'H2O ' (rog '*' yH2Og))
  949. 'ET' ('KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'H2O ' (rog '*' yH2Og))
  950. 'ET' ('KCHT' $FRONTD 'SCAL' 'CENTRE' 'COMP' 'H2O ' (rod '*' yH2Od))
  951. 'ET' ('KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'H2O ' (rod '*' yH2Od));
  952.  
  953. RYN = RYH2 'ET' RYO2 'ET' RYH2O ;
  954.  
  955. *
  956. *** ro scal
  957. *
  958.  
  959. REPS =('KCHT' $FRONTG 'SCAL' 'CENTRE' 'COMP' 'EPS ' (rog '*' epsg)) 'ET'
  960. ('KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'EPS ' (rog '*' epsg)) 'ET'
  961. ('KCHT' $FRONTD 'SCAL' 'CENTRE' 'COMP' 'EPS ' (rod '*' epsd)) 'ET'
  962. ('KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'EPS ' (rod '*' epsd));
  963.  
  964. RTAU =('KCHT' $FRONTG 'SCAL' 'CENTRE' 'COMP' 'TAU ' (rog '*' taug)) 'ET'
  965. ('KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'TAU ' (rog '*' taug)) 'ET'
  966. ('KCHT' $FRONTD 'SCAL' 'CENTRE' 'COMP' 'TAU ' (rod '*' taud)) 'ET'
  967. ('KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'TAU ' (rod '*' taud));
  968.  
  969. RSCA = REPS 'ET' RTAU ;
  970.  
  971.  
  972.  
  973. ********************************************************
  974. *** CREATION DE 'MODE' POUR GRAPHIQUER LE CHAMELEM ***
  975. ********************************************************
  976.  
  977. MOD1 = 'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE') 'THERMIQUE' ;
  978.  
  979. *
  980. **** Les debits dans le repaire tube
  981. *
  982.  
  983. GNX = 'EXCO' 'UX' GN;
  984. GNY = 'EXCO' 'UY' GN;
  985.  
  986. GNN = (GNX * ('COS' ANGLE)) '+'
  987. (GNY * ('SIN' ANGLE));
  988.  
  989. GNT = (GNY * ('COS' ANGLE)) '-'
  990. (GNX * ('SIN' ANGLE));
  991.  
  992. *
  993. *** GRAPHIQUE DES C.I.
  994. *
  995.  
  996. 'SI' GRAPH ;
  997. * 'SI' FAUX ;
  998. *
  999. *** CREATION DE CHAMELEM
  1000. *
  1001.  
  1002. CHM_RN = 'KCHA' $DOMTOT 'CHAM' RN ;
  1003. CHM_GNN = 'KCHA' $DOMTOT 'CHAM' GNN ;
  1004. CHM_GNT = 'KCHA' $DOMTOT 'CHAM' GNT ;
  1005. CHM_REN = 'KCHA' $DOMTOT 'CHAM' REN ;
  1006. CHM_RYN = 'KCHA' $DOMTOT 'CHAM' RYN ;
  1007. CHM_RSCA = 'KCHA' $DOMTOT 'CHAM' RSCA ;
  1008. TRAC CHM_RN MOD1 'TITR' ('CHAINE' 'RO at t=' 0.0);
  1009. TRAC CHM_REN MOD1 'TITR' ('CHAINE' 'ROET at t=' 0.0);
  1010. TRAC CHM_GNN MOD1 'TITR' ('CHAINE' 'ROUN at t=' 0.0);
  1011. TRAC CHM_GNT MOD1 'TITR' ('CHAINE' 'ROUT at t=' 0.0);
  1012. TRAC CHM_RYN MOD1 'TITR' ('CHAINE' 'RYN at t=' 0.0);
  1013. TRAC CHM_RSCA MOD1 'TITR' ('CHAINE' 'RSCA at t=' 0.0);
  1014.  
  1015. 'FINSI' ;
  1016.  
  1017.  
  1018. ***********************
  1019. **** La table EQEX ****
  1020. ***********************
  1021.  
  1022.  
  1023. CFL = 1.4D0 ;
  1024. NITER = 10000 ;
  1025. TFIN = 0.0075 ;
  1026.  
  1027. RV = 'EQEX' ('DOMA' $DOMTOT 'TABLE') 'ITMA' NITER 'ALFA' CFL
  1028. 'TPSI' 0. 'TFINAL' TFIN
  1029. *
  1030. ***** Option VF = volumes finis
  1031. * CONS = conservative
  1032. * EULERMST = euler "thermally perfect"
  1033. * METO = methode
  1034. *
  1035. 'OPTI' 'VF' 'CONS' 'EULERMST' METO
  1036. *
  1037. ***** Operateur 'KONV'
  1038. *
  1039. 'ZONE' $DOMTOT 'OPER' 'KONV'
  1040. *
  1041. ***** Arguments de 'KONV' (maximum 8 chatacters)
  1042. *
  1043. 'IPGAZ' 'RNF' 'VITNF' 'PNF' 'YF' 'SF'
  1044. *
  1045. ***** LIST des inconnues
  1046. *
  1047. 'INCO' 'RNI' 'GNI' 'ENI' 'RYNI' 'RSNI' ;
  1048.  
  1049.  
  1050. *
  1051. *** La table RV . INCO (de soustype INCO);
  1052. *
  1053.  
  1054. RV . 'INCO' = TABLE 'INCO' ;
  1055.  
  1056. *
  1057. *** Stokage des inconnues des equations d'Euler.
  1058. *
  1059.  
  1060. RV . 'INCO' . 'RNI' = 'COPIER' RN ;
  1061. RV . 'INCO' . 'GNI' = 'COPIER' GN ;
  1062. RV . 'INCO' . 'ENI' = 'COPIER' REN ;
  1063. RV . 'INCO' . 'RYNI' = 'COPIER' RYN ;
  1064. RV . 'INCO' . 'RSNI' = 'COPIER' RSCA ;
  1065.  
  1066. *
  1067. *** Le gaz
  1068. *
  1069.  
  1070. RV . 'INCO' . 'IPGAZ' = PGAZ ;
  1071.  
  1072. *
  1073. *** CONDITIONS LIMITS
  1074. *
  1075.  
  1076. RV . 'INCO' . 'CLIM' = FAUX ;
  1077.  
  1078. *
  1079. **** Ordre en espace
  1080. * Ordre en temps
  1081. *
  1082.  
  1083. IE = 2 ;
  1084. IT = 2 ;
  1085.  
  1086. RV . 'ORDREESP' = IE ;
  1087. RV . 'ORDRETPS' = IT ;
  1088.  
  1089. *???
  1090. RV . 'MODTOT' = $DOMTOT ;
  1091.  
  1092. *
  1093. ***********************************
  1094. *** Execution EXEXSP ***
  1095. ***********************************
  1096. *
  1097.  
  1098.  
  1099. 'MESSAGE' ;
  1100. 'MESSAGE' '**************************';
  1101. 'MESSAGE' ('CHAINE' 'METHODE : ' METO) ;
  1102. 'MESSAGE' '**************************';
  1103. 'MESSAGE' ;
  1104.  
  1105.  
  1106.  
  1107. 'TEMPS' ;
  1108. EXEXSP RV ;
  1109. 'TEMPS' ;
  1110.  
  1111.  
  1112. TFIN = RV. 'PASDETPS'. 'TPS';
  1113.  
  1114. *
  1115. **** SOLUTIONS
  1116. *
  1117.  
  1118. *
  1119. **** Les variables conservatives
  1120. *
  1121.  
  1122. RN = 'COPIER' (RV . 'INCO' . 'RNI');
  1123. GN = 'COPIER' (RV . 'INCO'. 'GNI');
  1124. REN = 'COPIER' (RV . 'INCO'. 'ENI');
  1125. RYN = 'COPIER' (RV . 'INCO'. 'RYNI');
  1126. RSN = 'COPIER' (RV . 'INCO'. 'RSNI');
  1127.  
  1128. ERR1 = 'MAXIMUM' (('EXCO' 'H2' RYN) '-' ('EXCO' 'EPS' RSN)) 'ABS' ;
  1129. ERR2 = 'MAXIMUM' (('EXCO' 'O2' RYN) '-' ('EXCO' 'TAU' RSN)) 'ABS' ;
  1130.  
  1131. 'SI' (('MAXIMUM' ('PROG' ERR1 ERR2)) > 1.0D-12) ;
  1132. 'MESSAGE' 'Probleme dans les transport de scalaires passifs' ;
  1133. 'ERREUR' 5 ;
  1134. 'FINSI' ;
  1135. *
  1136. **** Les variables primitives
  1137. *
  1138.  
  1139. VN PN TN YN SCAN GAMN = 'PRIM' 'PERFTEMP' PGAZ
  1140. RN GN REN RYN RSN ;
  1141.  
  1142. *
  1143. **** La vitesse dans le repaire tube
  1144. *
  1145.  
  1146. VNX = 'EXCO' 'UX' VN;
  1147. VNY = 'EXCO' 'UY' VN;
  1148.  
  1149. VNN = (VNX * ('COS' ANGLE)) '+'
  1150. (VNY * ('SIN' ANGLE));
  1151.  
  1152. VNT = (VNY * ('COS' ANGLE)) '-'
  1153. (VNX * ('SIN' ANGLE));
  1154.  
  1155. GNN = VNN * RN;
  1156. GNT = VNT * RN;
  1157.  
  1158. *
  1159. *** GRAPHIQUE DES SOLUTIONS
  1160. *
  1161.  
  1162. 'SI' GRAPH ;
  1163.  
  1164. *
  1165. *** CREATION DE CHAMELEM
  1166. *
  1167.  
  1168. CHM_RN = 'KCHA' $DOMTOT 'CHAM' RN;
  1169. CHM_GNN = 'KCHA' $DOMTOT 'CHAM' GNN ;
  1170. CHM_GNT = 'KCHA' $DOMTOT 'CHAM' GNT ;
  1171. CHM_REN = 'KCHA' $DOMTOT 'CHAM' REN;
  1172. CHM_RYN = 'KCHA' $DOMTOT 'CHAM' RYN;
  1173. CHM_RSN = 'KCHA' $DOMTOT 'CHAM' RSN;
  1174. TRAC CHM_RN MOD1 'TITR' ('CHAINE' 'RO at t=' TFIN);
  1175. TRAC CHM_REN MOD1 'TITR' ('CHAINE' 'ROET at t=' TFIN);
  1176. TRAC CHM_GNN MOD1 'TITR' ('CHAINE' 'ROUN at t=' TFIN);
  1177. TRAC CHM_GNT MOD1 'TITR' ('CHAINE' 'ROUT at t=' TFIN);
  1178. TRAC CHM_RYN MOD1 'TITR' ('CHAINE' 'RY at t=' TFIN);
  1179. TRAC CHM_RSN MOD1 'TITR' ('CHAINE' 'RS at t=' TFIN);
  1180.  
  1181. 'FINSI' ;
  1182.  
  1183. *
  1184. *** Objects evolutions
  1185. *
  1186.  
  1187. xx yy = 'COORDONNEE' Courb;
  1188. ss = 'KOPS' ('KOPS' ('COS' ANGLE) '*' xx) '+'
  1189. ('KOPS' ('SIN' ANGLE) '*' yy);
  1190.  
  1191. evxx = 'EVOL' 'CHPO' ss Courb ;
  1192. lxx = 'EXTRAIRE' evxx 'ORDO' ;
  1193.  
  1194. x0 = 'MINIMUM' lxx;
  1195. x1 = 'MAXIMUM' lxx ;
  1196.  
  1197. * ro
  1198.  
  1199. evro = 'EVOL' 'CHPO' RN Courb ;
  1200. lro = 'EXTRAIRE' evro 'ORDO' ;
  1201. evro = 'EVOL' 'MANU' 'x' lxx 'ro' lro;
  1202. tro = CHAINE '1D ' METO ' : RO IT ' IT ' IE ' IE
  1203. ' tmps ' TFIN ' elem ' 'QUA4' ;
  1204.  
  1205. * u
  1206.  
  1207. evu = 'EVOL' 'CHPO' VNN Courb ;
  1208. lu = 'EXTRAIRE' evu 'ORDO' ;
  1209. evu = 'EVOL' 'MANU' 'x' lxx 'u' lu ;
  1210. tu = CHAINE '1D ' METO ' : U IT ' IT ' IE ' IE
  1211. ' tmps ' TFIN ' elem ' 'QUA4' ;
  1212.  
  1213. * v
  1214.  
  1215. evv = 'EVOL' 'CHPO' VNT Courb ;
  1216. lv = 'EXTRAIRE' evv 'ORDO' ;
  1217. evv = 'EVOL' 'MANU' 'x' lxx 'v' lv ;
  1218. tv = CHAINE '1D ' METO ' : V IT ' IT ' IE ' IE
  1219. ' tmps ' TFIN ' elem ' 'QUA4' ;
  1220.  
  1221. 'SI' GRAPH ;
  1222. 'DESSIN' evv 'TITRE' tv 'XBOR' x0 x1;
  1223. 'FINSI' ;
  1224.  
  1225. * p
  1226.  
  1227. evp = 'EVOL' 'CHPO' PN Courb ;
  1228. lp = 'EXTRAIRE' evp 'ORDO' ;
  1229. evp = 'EVOL' 'MANU' 'x' lxx 'p' lp ;
  1230. tp = CHAINE '1D ' METO ' : P IT ' IT ' IE ' IE
  1231.  
  1232. ' tmps ' TFIN ' elem ' 'QUA4' ;
  1233. * gamma
  1234.  
  1235. evgam = 'EVOL' 'CHPO' GAMN Courb ;
  1236. lgam = 'EXTRAIRE' evgam 'ORDO' ;
  1237. evgam = 'EVOL' 'MANU' 'x' lxx 'gamma' lgam ;
  1238. tgam = CHAINE '1D ' METO ' : GAMMA IT ' IT ' IE ' IE
  1239. ' tmps ' TFIN ' elem ' 'QUA4' ;
  1240.  
  1241.  
  1242. * s
  1243.  
  1244. ls = 'PROG' ;
  1245. 'REPETER' BL1 ('DIME' lro);
  1246. rocel = 'EXTRAIRE' &BL1 lro ;
  1247. pcel = 'EXTRAIRE' &BL1 lp ;
  1248. gamcel = 'EXTRAIRE' &BL1 lgam ;
  1249. scel = pcel '/' (rocel '**' gamcel) ;
  1250. ls = ls 'ET' ('PROG' scel) ;
  1251. 'FIN' BL1 ;
  1252. evs = 'EVOL' 'MANU' 'x' lxx 's' ls ;
  1253. ts = CHAINE '1D ' METO ' : s IT ' IT ' IE ' IE
  1254. ' tmps ' TFIN ' elem ' 'QUA4' ;
  1255.  
  1256. * Fractions massiques
  1257.  
  1258.  
  1259. EVY = 'TABLE' ;
  1260. TY = CHAINE '1D ' METO ' : Y IT ' IT ' IE ' IE
  1261. ' tmps ' TFIN ' elem ' 'QUA4' ;
  1262. YOLD = 'COPIER' YN ;
  1263. NOMECO = 'EXTR' YOLD 'COMP';
  1264. NUMECO = 'DIME' NOMECO ;
  1265. 'REPETER' BLOCCO NUMECO;
  1266. NOMCEL = 'EXTRAIRE' NOMECO &BLOCCO ;
  1267. Y0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  1268. 'COMP' NOMCEL
  1269. ('EXCO' NOMCEL YOLD NOMCEL) ;
  1270. N0 = NOMCEL ;
  1271. EVY0 = 'EVOL' 'CHPO' Y0 Courb ;
  1272. LY0 = 'EXTRAIRE' EVY0 'ORDO' ;
  1273. EVY0 = 'EVOL' 'MANU' 'x' lxx N0 LY0 ;
  1274. EVY . &BLOCCO = EVY0;
  1275. 'FIN' BLOCCO;
  1276.  
  1277.  
  1278. EVSCA = 'TABLE' ;
  1279. TSCA = CHAINE '1D ' METO ' : S IT ' IT ' IE ' IE
  1280. ' tmps ' TFIN ' elem ' 'QUA4' ;
  1281. SCAOLD = 'COPIER' SCAN ;
  1282. NOMSCA = 'EXTR' SCAOLD 'COMP';
  1283. NUMSCA = 'DIME' NOMSCA ;
  1284. 'REPETER' BLOCCO NUMSCA;
  1285. NOMCEL = 'EXTRAIRE' NOMSCA &BLOCCO ;
  1286. SCA0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  1287. 'COMP' NOMCEL
  1288. ('EXCO' NOMCEL SCAOLD NOMCEL) ;
  1289. N0 = NOMCEL ;
  1290. EVSCA0 = 'EVOL' 'CHPO' SCA0 Courb ;
  1291. LSCA0 = 'EXTRAIRE' EVSCA0 'ORDO' ;
  1292. EVSCA0 = 'EVOL' 'MANU' 'x' lxx N0 LSCA0 ;
  1293. EVSCA . &BLOCCO = EVSCA0;
  1294. 'FIN' BLOCCO;
  1295.  
  1296.  
  1297. lroan = 'PROG'
  1298. .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01
  1299. .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01
  1300. .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01
  1301. .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01 .10000000D+01
  1302. .10000000D+01 .10000000D+01 .10000000D+01 .97328030D+00 .93919980D+00
  1303. .90617814D+00 .87418663D+00 .84319724D+00 .81318261D+00 .78411600D+00 ;
  1304.  
  1305. lroan = lroan 'ET' ('PROG'
  1306. .75597130D+00 .72872302D+00 .70234626D+00 .67681672D+00 .65211066D+00
  1307. .62820492D+00 .60507689D+00 .58270451D+00 .56106625D+00 .54014110D+00
  1308. .51990856D+00 .50034865D+00 .48144185D+00 .46316916D+00 .44551201D+00
  1309. .42845233D+00 .41197248D+00 .39605527D+00 .38068395D+00 .36584219D+00
  1310. .35151407D+00 .33768408D+00 .32433713D+00 .31145849D+00 .29903383D+00
  1311. .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00);
  1312.  
  1313. lroan = lroan 'ET' ('PROG'
  1314. .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00
  1315. .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00
  1316. .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00 .29845131D+00
  1317. .29845131D+00 .99363934D+00 .99363934D+00 .99363934D+00 .99363934D+00
  1318. .99363934D+00 .12500000D+00 .12500000D+00 .12500000D+00 .12500000D+00
  1319. .12500000D+00 .12500000D+00 .12500000D+00 .12500000D+00 .12500000D+00) ;
  1320.  
  1321. lroan = lroan 'ET' ('PROG'
  1322. .12500000D+00 .12500000D+00 .12500000D+00 .12500000D+00 .12500000D+00
  1323. .12500000D+00) ;
  1324.  
  1325. lpan = 'PROG'
  1326. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1327. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1328. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1329. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1330. .99867381D+03 .99867381D+03 .99867381D+03 .96588232D+03 .92436107D+03
  1331. .88446286D+03 .84613062D+03 .80930907D+03 .77394466D+03 .73998551D+03;
  1332.  
  1333. lpan = lpan 'ET' ('PROG'
  1334. .70738140D+03 .67608370D+03 .64604531D+03 .61722065D+03 .58956562D+03
  1335. .56303751D+03 .53759501D+03 .51319816D+03 .48980829D+03 .46738801D+03
  1336. .44590117D+03 .42531280D+03 .40558909D+03 .38669738D+03 .36860608D+03
  1337. .35128469D+03 .33470372D+03 .31883470D+03 .30365012D+03 .28912341D+03
  1338. .27522894D+03 .26194192D+03 .24923848D+03 .23709554D+03 .22549085D+03
  1339. .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03);
  1340.  
  1341. lpan = lpan 'ET' ('PROG'
  1342. .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03
  1343. .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03
  1344. .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03
  1345. .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03 .22494948D+03
  1346. .22494948D+03 .99482065D+00 .99482065D+00 .99482065D+00 .99482065D+00
  1347. .99482065D+00 .99482065D+00 .99482065D+00 .99482065D+00 .99482065D+00);
  1348.  
  1349. lpan = lpan 'ET' ('PROG'
  1350. .99482065D+00 .99482065D+00 .99482065D+00 .99482065D+00 .99482065D+00
  1351. .99482065D+00) ;
  1352.  
  1353. luan = 'PROG'
  1354. .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00
  1355. .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00
  1356. .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00
  1357. .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00
  1358. .00000000D+00 .00000000D+00 .00000000D+00 .94876987D+00 .21928876D+01
  1359. .34370054D+01 .46811232D+01 .59252410D+01 .71693587D+01 .84134765D+01;
  1360.  
  1361. luan = luan 'ET' ('PROG'
  1362. .96575943D+01 .10901712D+02 .12145830D+02 .13389948D+02 .14634065D+02
  1363. .15878183D+02 .17122301D+02 .18366419D+02 .19610537D+02 .20854654D+02
  1364. .22098772D+02 .23342890D+02 .24587008D+02 .25831125D+02 .27075243D+02
  1365. .28319361D+02 .29563479D+02 .30807596D+02 .32051714D+02 .33295832D+02
  1366. .34539950D+02 .35784068D+02 .37028185D+02 .38272303D+02 .39516421D+02
  1367. .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02);
  1368.  
  1369. luan = luan 'ET' ('PROG'
  1370. .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02
  1371. .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02
  1372. .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02
  1373. .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02 .39575864D+02
  1374. .39575864D+02 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00
  1375. .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00);
  1376.  
  1377. luan = luan 'ET' ('PROG'
  1378. .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00 .00000000D+00
  1379. .00000000D+00) ;
  1380.  
  1381. lsan = 'PROG'
  1382. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1383. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1384. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1385. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1386. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1387. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03;
  1388.  
  1389. lsan = lsan 'ET' ('PROG'
  1390. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1391. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1392. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1393. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1394. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1395. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03);
  1396.  
  1397. lsan = lsan 'ET' ('PROG'
  1398. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1399. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1400. .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03 .99867381D+03
  1401. .99867381D+03 .22678920D+03 .22678920D+03 .22678920D+03 .22678920D+03
  1402. .22678920D+03 .14141927D+02 .14141927D+02 .14141927D+02 .14141927D+02
  1403. .14141927D+02 .14141927D+02 .14141927D+02 .14141927D+02 .14141927D+02);
  1404.  
  1405. lsan = lsan 'ET' ('PROG'
  1406. .14141927D+02 .14141927D+02 .14141927D+02 .14141927D+02 .14141927D+02
  1407. .14141927D+02) ;
  1408.  
  1409. lgaman = 'PROG'
  1410. .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01
  1411. .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01
  1412. .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01
  1413. .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01
  1414. .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01
  1415. .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01;
  1416.  
  1417. lgaman = lgaman 'ET' ('PROG'
  1418. .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01
  1419. .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01
  1420. .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01
  1421. .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01
  1422. .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01
  1423. .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01);
  1424.  
  1425. lgaman = lgaman 'ET' ('PROG'
  1426. .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01
  1427. .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01
  1428. .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01 .12327290D+01
  1429. .12327290D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01
  1430. .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01
  1431. .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01);
  1432.  
  1433. lgaman = lgaman 'ET' ('PROG'
  1434. .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01 .12764662D+01
  1435. .12764662D+01) ;
  1436.  
  1437. lyan = 'TABLE' ;
  1438.  
  1439. lyan . 1 = 'PROG'
  1440. .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01
  1441. .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01
  1442. .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01
  1443. .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01
  1444. .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01
  1445. .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01;
  1446.  
  1447. lyan . 1 = lyan . 1 'ET' ('PROG'
  1448. .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01
  1449. .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01
  1450. .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01
  1451. .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01
  1452. .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01
  1453. .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01);
  1454.  
  1455. lyan . 1 = lyan . 1 'ET' ('PROG'
  1456. .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01
  1457. .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01
  1458. .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01 .10000000D-01
  1459. .10000000D-01 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1460. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1461. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00);
  1462.  
  1463. lyan . 1 = lyan . 1 'ET' ('PROG'
  1464. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1465. .20000000D+00) ;
  1466.  
  1467. lyan . 2 = 'PROG'
  1468. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1469. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1470. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1471. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1472. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1473. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00;
  1474.  
  1475. lyan . 2 = lyan . 2 'ET' ('PROG'
  1476. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1477. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1478. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1479. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1480. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1481. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00);
  1482.  
  1483. lyan . 2 = lyan . 2 'ET' ('PROG'
  1484. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1485. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1486. .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00 .20000000D+00
  1487. .20000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00
  1488. .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00
  1489. .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00);
  1490.  
  1491. lyan . 2 = lyan . 2 'ET' ('PROG'
  1492. .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00 .40000000D+00
  1493. .40000000D+00) ;
  1494.  
  1495. lyan . 3 = 'PROG'
  1496. .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00
  1497. .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00
  1498. .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00
  1499. .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00
  1500. .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00
  1501. .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00;
  1502.  
  1503. lyan . 3 = lyan . 3 'ET' ('PROG'
  1504. .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00
  1505. .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00
  1506. .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00
  1507. .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00
  1508. .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00
  1509. .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00);
  1510.  
  1511. lyan . 3 = lyan . 3 'ET' ('PROG'
  1512. .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00
  1513. .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00
  1514. .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00 .30000000D+00
  1515. .30000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00
  1516. .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00
  1517. .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00);
  1518.  
  1519. lyan . 3 = lyan . 3 'ET' ('PROG'
  1520. .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00 .10000000D+00
  1521. .10000000D+00 ) ;
  1522.  
  1523. ERRO = 'ABS' (LRO '-' LROAN) ;
  1524. ERP = 'ABS' (LP '-' LPAN) ;
  1525. ERU = 'ABS' (LU '-' LUAN) ;
  1526. ERS = 'ABS' (LS '-' LSAN) ;
  1527.  
  1528. L1RO = 0.0 ;
  1529. L1P = 0.0 ;
  1530. L1U = 0.0 ;
  1531. L1S = 0.0 ;
  1532.  
  1533. NDIM = 'DIME' erro ;
  1534.  
  1535. 'REPETER' BL1 NDIM ;
  1536. L1RO = L1RO '+' ('EXTRAIRE' &BL1 ERRO) ;
  1537. L1P = L1P '+' ('EXTRAIRE' &BL1 ERP) ;
  1538. L1U = L1U '+' ('EXTRAIRE' &BL1 ERU) ;
  1539. L1S = L1S '+' ('EXTRAIRE' &BL1 ERS) ;
  1540. 'FIN' BL1 ;
  1541.  
  1542. L1RO = L1RO '/' (NDIM * ('MAXIMUM' lroan)) ;
  1543.  
  1544.  
  1545. L1P = L1P '/' (NDIM * ('MAXIMUM' lpan)) ;
  1546.  
  1547. L1U = L1U '/' (NDIM * ('MAXIMUM' luan)) ;
  1548. L1S = L1S '/' (NDIM * ('MAXIMUM' lsan)) ;
  1549.  
  1550.  
  1551.  
  1552. *
  1553. *** Quelque DESSIN
  1554. *
  1555.  
  1556. 'SI' GRAPH ;
  1557. evroa = 'EVOL' 'MANU' 'x' lxx 'ro' lroan ;
  1558. evpa = 'EVOL' 'MANU' 'x' lxx 'p' lpan ;
  1559. evua = 'EVOL' 'MANU' 'x' lxx 'ua' luan ;
  1560. evsa = 'EVOL' 'MANU' 'x' lxx 's' lsan ;
  1561. evgama = 'EVOL' 'MANU' 'x' lxx 'gamma' lgaman ;
  1562. TAB1=TABLE;
  1563. TAB1.'TITRE'= TABLE ;
  1564. TAB1.1='MARQ TRIB REGU';
  1565. TAB1.'TITRE' . 1 = MOT 'Numerique' ;
  1566. TAB1.2='MARQ CROI REGU';
  1567. TAB1.'TITRE' . 2 = MOT 'Exacte' ;
  1568. 'DESSIN' (evro 'ET' evroa) 'TITRE' tro 'XBOR' x0 x1
  1569. 'LEGE' TAB1;
  1570. 'DESSIN' (evp 'ET' evpa) 'TITRE' tp 'XBOR' x0 x1
  1571. 'LEGE' TAB1;
  1572. 'DESSIN' (evu 'ET' evua) 'TITRE' tu 'XBOR' x0 x1
  1573. 'LEGE' TAB1;
  1574. 'DESSIN' (evs 'ET' evsa) 'TITRE' ts 'XBOR' x0 x1
  1575. 'LEGE' TAB1;
  1576. 'DESSIN' (evgam 'ET' evgama) 'TITRE' tgam 'XBOR' x0 x1
  1577. 'LEGE' TAB1;
  1578. 'REPETER' BL 3 ;
  1579. NOMCEL = 'EXTRAIRE' NOMECO &BL ;
  1580. evyacel = 'EVOL' 'MANU' 'x' lxx nomcel
  1581. (lyan . &BL ) ;
  1582. 'DESSIN' ((evy . &BL) 'ET' evyacel) 'TITRE' TY
  1583. 'XBOR' x0 x1 'YBOR' -0.01 1.01 'LEGE' TAB1;
  1584. 'FIN' BL;
  1585. * TAU = YO2, EPS = YH2
  1586. evscaan = 'EVOL' 'MANU' 'x' lxx 'TAU'
  1587. (lyan . 2 ) ;
  1588. 'DESSIN' ((EVSCA . 1) 'ET' evscaan ) 'TITRE' TSCA
  1589. 'XBOR' x0 x1 'YBOR' 0.15 0.45
  1590. 'LEGE' TAB1;
  1591. evscaan = 'EVOL' 'MANU' 'x' lxx 'TAU'
  1592. (lyan . 1 ) ;
  1593. 'DESSIN' ((EVSCA . 2) 'ET' evscaan ) 'TITRE' TSCA
  1594. 'XBOR' x0 x1 'YBOR' 0. 0.25
  1595. 'LEGE' TAB1;
  1596.  
  1597. 'FINSI' ;
  1598.  
  1599. 'SI' (L1RO > 5.0D-2);
  1600. 'ERREUR' 5 ;
  1601. 'FINSI' ;
  1602.  
  1603. 'SI' (L1P > 1.0D-2);
  1604. 'ERREUR' 5 ;
  1605. 'FINSI' ;
  1606.  
  1607. 'SI' (L1U > 5.0D-2);
  1608. 'ERREUR' 5 ;
  1609. 'FINSI' ;
  1610.  
  1611. 'SI' (L1S > 5.0D-2);
  1612. 'ERREUR' 5 ;
  1613. 'FINSI' ;
  1614.  
  1615. 'FIN' ;
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  

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