Télécharger shearlayer.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : shearlayer.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *********************************************************************
  5. **** APPROCHE VF "Cell-Centred Formulation" pour la solution des ****
  6. **** Equations d'Euler pour un gaz parfait ****
  7. **** OPERATEURS PRET, KONV ****
  8. **** Gaz monoespece "calorically perfect" ****
  9. **** HUSVL, HUSVLH, Godunov on "shear layer" ****
  10. **** ****
  11. **** A. BECCANTINI DRN/DMT/SEMT/TTMF MARS 1998 ****
  12. *********************************************************************
  13.  
  14. 'OPTION' 'DIME' 2 ;
  15. 'OPTION' 'ELEM' QUA4 ;
  16. 'OPTION' 'ECHO' 0 ;
  17. 'OPTION' 'TRAC' 'PS';
  18.  
  19. GRAPH = FAUX ;
  20. * GRAPH = VRAI ;
  21.  
  22. ***************************
  23. ***** DOMAINE SPATIAL ****
  24. ***************************
  25.  
  26.  
  27. A1 = 0.0D0 0.0D0;
  28. A2 = 1.0D0 0.0D0;
  29. A3 = 2.0D0 0.0D0;
  30. A4 = 2.0D0 1.0D0;
  31. A5 = 1.0D0 1.0D0;
  32. A6 = 0.0D0 1.0D0;
  33.  
  34. L12 = A1 'DROIT' 1 A2;
  35. L23 = A2 'DROIT' 1 A3;
  36. L34 = A3 'DROIT' 1 A4;
  37. L45 = A4 'DROIT' 1 A5;
  38. L56 = A5 'DROIT' 1 A6;
  39. L61 = A6 'DROIT' 1 A1;
  40. L25 = A2 'DROIT' 1 A5;
  41.  
  42.  
  43. DOM10 = 'DALL' L12 L25 L56 L61
  44. 'PLANE';
  45. DOM20 = 'DALL' L23 L34 L45 ('INVERSE' L25)
  46. 'PLANE';
  47. *
  48. *** Point ou on controlle les flux
  49. *
  50.  
  51. P10 = 1.0 0.5;
  52.  
  53. *
  54. *** Etats gauche "shear layer"
  55. *
  56. rogsl = 1.0;
  57. ungsl = 1.0D0;
  58. utgsl = 10.0;
  59. pgsl = 1.;
  60. gamgsl = 1.4D0;
  61.  
  62. *
  63. *** retgsl
  64. *
  65. ecingsl = 0.5D0 '*' rogsl '*' ((ungsl '*' ungsl) '+' (utgsl '*' utgsl));
  66. retgsl = (pgsl '/' (gamgsl '-' 1.0)) '+' ecingsl;
  67.  
  68. *
  69. *** Etats gauche et droite "shear layer"
  70. *
  71. rodsl = 100.0;
  72. undsl = 1.0;
  73. utdsl = 1.;
  74. pdsl = 1.;
  75. gamdsl = 1.4D0;
  76.  
  77. *
  78. *** retdsl
  79. *
  80. ecindsl = 0.5D0 '*' rodsl '*' ((undsl '*' undsl) '+' (utdsl '*' utdsl));
  81. retdsl = (pdsl '/' (gamdsl '-' 1.0)) '+' ecindsl;
  82.  
  83.  
  84. *
  85. *** flux en (n,t),g
  86. *
  87.  
  88. f1gsl = ungsl '*' rogsl;
  89. f2gsl = (rogsl '*' (ungsl '*' ungsl)) '+' pgsl;
  90. f3gsl = rogsl '*' ungsl '*' utgsl ;
  91. f4gsl = ungsl * (retgsl '+' pgsl);
  92.  
  93.  
  94. *
  95. *** flux en (n,t),d
  96. *
  97.  
  98. f1dsl = undsl '*' rodsl;
  99. f2dsl = (rodsl '*' (undsl '*' undsl)) '+' pdsl;
  100. f3dsl = rodsl '*' undsl '*' utdsl ;
  101. f4dsl = undsl * (retdsl '+' pdsl);
  102.  
  103. *
  104. *** N.B: f2gsl = f2dsl = pgsl (=pdsl)
  105. * figsl = fidsl = 0.0 \forall i != 2
  106. *
  107.  
  108. ****************************************************
  109. ****************************************************
  110. ******** Boucle sur les angles *********
  111. ****************************************************
  112. ****************************************************
  113.  
  114. DANGLE = 360 '/' 7.15;
  115. ANGLE = 11.3 ;
  116.  
  117. 'REPETER' BLOC 8;
  118.  
  119. *
  120. *** Rotation
  121. *
  122.  
  123. ANGLE = ANGLE '+' DANGLE;
  124. ORIG = 0.0D0 0.0D0;
  125.  
  126. MESSAGE;
  127. MESSAGE (CHAIN 'Angle de rotation= ' ANGLE);
  128. MESSAGE;
  129.  
  130. DOM1 = DOM10 'TOURNER' ANGLE ORIG;
  131. DOM2 = DOM20 'TOURNER' ANGLE ORIG;
  132. P1 = P10 'TOURNER' ANGLE ORIG;
  133.  
  134. 'ELIMINATION' (DOM1 ET DOM2) 1D-6;
  135. DOMTOT = DOM1 ET DOM2;
  136.  
  137. $DOMTOT = 'MODELISER' DOMTOT 'EULER';
  138.  
  139. $DOM1 = 'MODELISER' DOM1 'EULER';
  140. $DOM2 = 'MODELISER' DOM2 'EULER';
  141.  
  142. TDOMTOT = 'DOMA' $DOMTOT 'VF';
  143.  
  144. TDOM1 = 'DOMA' $DOM1 'VF';
  145. TDOM2 = 'DOMA' $DOM2 'VF';
  146.  
  147. MDOM1 = TDOM1 . 'QUAF' ;
  148. MDOM2 = TDOM2 . 'QUAF' ;
  149. MDOMTOT = TDOMTOT . 'QUAF' ;
  150.  
  151. 'ELIMINATION' (MDOMTOT ET MDOM1) 0.0001 ;
  152. 'ELIMINATION' (MDOMTOT ET MDOM2) 0.0001 ;
  153.  
  154.  
  155. 'SI' GRAPH;
  156. 'TRACER' (('DOMA' $DOMTOT 'MAILLAGE' ) 'ET'
  157. ('DOMA' $DOMTOT 'FACEL') 'ET' P1) 'TITRE' 'Domaine et FACEL';
  158. 'FINSI' ;
  159. *
  160. **** Redefinition de P1 dans $DOMTOT 'FACE'
  161. *
  162.  
  163. P1 = ('DOMA' $DOMTOT 'FACE') 'POIN' 'PROC' P1;
  164.  
  165. ***********************
  166. **** Les CHPOINTs ****
  167. ***********************
  168.  
  169. uxgsl = (ungsl '*' ('COS' ANGLE)) '-' (utgsl '*' ('SIN' ANGLE));
  170. uygsl = (ungsl '*' ('SIN' ANGLE)) '+' (utgsl '*' ('COS' ANGLE));
  171.  
  172.  
  173. uxdsl = (undsl '*' ('COS' ANGLE)) '-' (utdsl '*' ('SIN' ANGLE));
  174. uydsl = (undsl '*' ('SIN' ANGLE)) '+' (utdsl '*' ('COS' ANGLE));
  175.  
  176.  
  177. GAMMA = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' gamgsl;
  178.  
  179. RN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' rogsl;
  180. RN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' rodsl;;
  181. RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (RN1 'ET' RN2);
  182.  
  183. GN1 = 'KCHT' $DOM1 'VECT' 'CENTRE' ((rogsl*uxgsl) (rogsl*uygsl));
  184. GN2 = 'KCHT' $DOM2 'VECT' 'CENTRE' ((rodsl*uxdsl) (rodsl*uydsl));
  185. GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' (GN1 'ET' GN2);
  186.  
  187. PN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' pgsl;
  188. PN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' pdsl;
  189. PN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (PN1 'ET' PN2);
  190.  
  191.  
  192. *
  193. *** La vitesse
  194. *
  195.  
  196. VITX = ('EXCO' 'UX ' GN) '/' RN;
  197. VITY = ('EXCO' 'UY ' GN) '/' RN;
  198.  
  199. *
  200. *** L'energie totale (ROET)
  201. *
  202.  
  203.  
  204. GM1 = GAMMA '-' ('KCHT' $DOMTOT 'SCAL' 'CENTRE' 1.0D0);
  205. ETHER = PN '/' GM1;
  206. ECIN =(0.5D0 * (GN (mots 'UX' 'UY') 'PSCA' GN (mots 'UX' 'UY'))) '/' RN;
  207. EN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (ECIN '+' ETHER);
  208.  
  209.  
  210. ***************************
  211. **** L'operateur PRIM****
  212. ***************************
  213.  
  214. VITESSE PRES = 'PRIM' 'PERFMONO' RN GN EN GAMMA;
  215.  
  216. ***************************
  217. **** L'operateur PRET****
  218. ***************************
  219.  
  220. ORDESP = 1;
  221. ORDTEM = 1;
  222.  
  223. ROF VITF PF GAMF = 'PRET' 'PERFMONO' ORDESP ORDTEM
  224. $DOMTOT RN VITESSE PRES GAMMA;
  225.  
  226. *********************************************************
  227. *** Control des etats sur la surface qui contient P1 ****
  228. *********************************************************
  229.  
  230. GEOP1 = ('DOMA' $DOMTOT 'FACEL') 'ELEM' 'CONTENANT' P1;
  231. GEOP2 = ('DOMA' $DOMTOT 'FACE') 'ELEM' 'CONTENANT' P1;
  232.  
  233. ROGEOP1 = 'REDU' ROF GEOP1;
  234. VGEOP1 = 'REDU' VITF GEOP1;
  235. PGEOP1 = 'REDU' PF GEOP1;
  236. GAMGEOP1 = 'REDU' GAMF GEOP1;
  237. REFGEOP1 = 'REDU' VITF GEOP2;
  238.  
  239.  
  240. rog = 'EXTRAIRE' ROGEOP1 'SCAL' 1 1 1;
  241. rod = 'EXTRAIRE' ROGEOP1 'SCAL' 1 1 3;
  242. ung = 'EXTRAIRE' VGEOP1 'UN ' 1 1 1;
  243. und = 'EXTRAIRE' VGEOP1 'UN ' 1 1 3;
  244. utg = 'EXTRAIRE' VGEOP1 'UT ' 1 1 1;
  245. utd = 'EXTRAIRE' VGEOP1 'UT ' 1 1 3;
  246. pg = 'EXTRAIRE' PGEOP1 'SCAL' 1 1 1;
  247. pd = 'EXTRAIRE' PGEOP1 'SCAL' 1 1 3;
  248.  
  249. *
  250. **** Orientation de la normal n de castem par raport a la
  251. * notre; t est par consequence
  252. *
  253.  
  254. NCOS = 'EXTRAIRE' REFGEOP1 'NX' 1 1 1;
  255. NSIN = 'EXTRAIRE' REFGEOP1 'NY' 1 1 1;
  256.  
  257. 'SI' (('ABS' NCOS) > ('ABS' NSIN));
  258. ORIENT = ('COS' ANGLE) '/' NCOS;
  259. 'SINON';
  260. ORIENT = ('SIN' ANGLE) '/' NSIN;
  261. 'FINSI' ;
  262.  
  263. ORIENT = 'SIGN' ORIENT;
  264.  
  265. *
  266. **** TEST 'PRET' 'ET' 'PRIM'
  267. *
  268.  
  269. 'SI' (ORIENT '>' 0);
  270.  
  271. *
  272. *** MyGauche = CASTEM Gauche
  273. *
  274.  
  275. ERRO = 1D-10 '*' ('MAXIMUM' ('PROG' rogsl rodsl));
  276. ERRORO = 'MAXIMUM' ('PROG' ('ABS' (rog '-' rogsl))
  277. ('ABS' (rod '-' rodsl)));
  278. LOGI1 = ERRORO < ERRO;
  279.  
  280. * 'MESSAGE' ;
  281. * 'MESSAGE' ('CHAINE' 'ERR RO ' ERRORO);
  282. * 'MESSAGE' ;
  283.  
  284.  
  285. ERRO = 1D-10 '*' pgsl ;
  286. ERROP = 'MAXIMUM' ('PROG' ('ABS' (pg '-' pgsl))
  287. ('ABS' (pd '-' pdsl)));
  288. LOGI2 = ERROP < ERRO;
  289. LOGI1 = LOGI1 'ET' LOGI2;
  290.  
  291. * 'MESSAGE' ;
  292. * 'MESSAGE' ('CHAINE' 'ERR P ' ERROP);
  293. * 'MESSAGE' ;
  294.  
  295.  
  296. ERROUN = 'MAXIMUM' ('PROG' ('ABS' (ung '-' ungsl))
  297. ('ABS' (und '-' undsl)));
  298. ERRO = 1D-10 ;
  299. LOGI2 = ERROUN < ERRO;
  300. LOGI1 = LOGI1 'ET' LOGI2;
  301.  
  302. * 'MESSAGE' ;
  303. * 'MESSAGE' ('CHAINE' 'ERR UN ' ERROUN);
  304. * 'MESSAGE' ;
  305.  
  306.  
  307. ERRO = 1D-10 '*' ('MAXIMUM' ('PROG' utgsl utdsl));
  308. ERROUT = 'MAXIMUM' ('PROG' ('ABS' (utg '-' utgsl))
  309. ('ABS' (utd '-' utdsl)));
  310. LOGI2 = ERROUT < ERRO;
  311. LOGI1 = LOGI1 'ET' LOGI2;
  312.  
  313. * 'MESSAGE' ;
  314. * 'MESSAGE' ('CHAINE' 'ERR UT ' ERROUT);
  315. * 'MESSAGE' ;
  316.  
  317.  
  318. 'SINON' ;
  319. *
  320. *** MyGauche = CASTEM Droite
  321. *
  322. * ung = -undsl
  323. * utg = -utdsl
  324. *
  325.  
  326.  
  327. ERRO = 1D-10 '*' ('MAXIMUM' ('PROG' rogsl rodsl));
  328. ERRORO = 'MAXIMUM' ('PROG' ('ABS' (rog '-' rodsl))
  329. ('ABS' (rod '-' rogsl)));
  330. LOGI1 = ERRORO < ERRO;
  331.  
  332. * 'MESSAGE' ;
  333. * 'MESSAGE' ('CHAINE' 'ERR RO ' ERRORO);
  334. * 'MESSAGE' ;
  335.  
  336.  
  337. ERRO = 1D-10 '*' pgsl ;
  338. ERROP = 'MAXIMUM' ('PROG' ('ABS' (pg '-' pdsl))
  339. ('ABS' (pd '-' pgsl)));
  340. LOGI2 = ERROP < ERRO;
  341. LOGI1 = LOGI1 'ET' LOGI2;
  342.  
  343. * 'MESSAGE' ;
  344. * 'MESSAGE' ('CHAINE' 'ERR P ' ERROP);
  345. * 'MESSAGE' ;
  346.  
  347.  
  348.  
  349. ERROUN = 'MAXIMUM' ('PROG' ('ABS' (ung '+' undsl))
  350. ('ABS' (und '+' ungsl)));
  351. ERRO = 1D-10 ;
  352. LOGI2 = ERROUN < ERRO;
  353. LOGI1 = LOGI1 'ET' LOGI2;
  354.  
  355. * 'MESSAGE' ;
  356. * 'MESSAGE' ('CHAINE' 'ERR UN ' ERROUN);
  357. * 'MESSAGE' ;
  358.  
  359.  
  360.  
  361. ERRO = 1D-10 '*' ('MAXIMUM' ('PROG' utgsl utdsl));
  362. ERROUT = 'MAXIMUM' ('PROG' ('ABS' (utd '+' utgsl))
  363. ('ABS' (utg '+' utdsl)));
  364. LOGI2 = ERROUT < ERRO;
  365.  
  366. * 'MESSAGE' ;
  367. * 'MESSAGE' ('CHAINE' 'ERR UT ' ERROUT);
  368. * 'MESSAGE' ;
  369.  
  370.  
  371. 'FINSI';
  372.  
  373. 'SI' ('NON' LOGI1);
  374. 'MESSAGE' ;
  375. 'MESSAGE' 'Probleme en PRET ou en PRIM ' ;
  376. 'MESSAGE' ;
  377. 'ERREUR' 5;
  378. 'FINSI' ;
  379.  
  380. ********************************
  381. **** 'KONV', TEST HUSVL ****
  382. ********************************
  383. METO = 'HUSVL' ;
  384. TFLUX DT = 'KONV' 'VF' 'PERFMONO' 'FLUX' METO
  385. $DOMTOT ROF VITF PF GAMF
  386. ('MOTS' 'RN' 'UX' 'UY' 'RETN') ;
  387. *
  388. **** Les flux aux interfaces sont dans de
  389. * CHPOINT FACE
  390. *
  391. FLUX1 = 'EXCO' 'RN' TFLUX ;
  392. FLUX2X = 'EXCO' 'UX' TFLUX ;
  393. FLUX2Y = 'EXCO' 'UY' TFLUX ;
  394. FLUX3 = 'EXCO' 'RETN' TFLUX ;
  395.  
  396. FLUX2N = (FLUX2X '*' ('COS' ANGLE)) '+' (FLUX2Y * ('SIN' ANGLE));
  397. FLUX2T = (FLUX2Y '*' ('COS' ANGLE)) '-' (FLUX2X * ('SIN' ANGLE));
  398.  
  399. *
  400. **** Test 'KONV'
  401. *
  402.  
  403. f1 = 'EXTRAIRE' FLUX1 'SCAL' P1;
  404. ERRO = 1D-10;
  405. ERROF1 = 'ABS' ((f1 '*' ORIENT) '-' f1gsl);
  406. LOGI1 = ERROF1 < ERRO;
  407.  
  408. * 'MESSAGE' ;
  409. * 'MESSAGE' ('CHAINE' 'ERR F1 ' ERROF1);
  410. * 'MESSAGE' ;
  411.  
  412. f2 = 'EXTRAIRE' FLUX2N 'SCAL' P1;
  413. ERRO = 1D-10 '*' f2gsl;
  414. ERROF2 = 'ABS' ((f2 '*' ORIENT) '-' f2gsl);
  415. LOGI2 = ERROF2 < ERRO;
  416. LOGI1 = LOGI1 'ET' LOGI2;
  417.  
  418. * 'MESSAGE' ;
  419. * 'MESSAGE' ('CHAINE' 'ERR F2 ' ERROF2);
  420. * 'MESSAGE' ;
  421.  
  422. f3 = 'EXTRAIRE' FLUX2T 'SCAL' P1;
  423. ERRO = 1D-10;
  424. ERROF3 = 'ABS' ((f3 '*' ORIENT) '-' f3gsl);
  425. LOGI2 = ERROF3 < ERRO;
  426. LOGI1 = LOGI1 'ET' LOGI2;
  427.  
  428. * 'MESSAGE' ;
  429. * 'MESSAGE' ('CHAINE' 'ERR F3 ' ERROF3);
  430. * 'MESSAGE' ;
  431.  
  432. f4 = 'EXTRAIRE' FLUX3 'SCAL' P1;
  433. ERRO = 1D-10;
  434. ERROF4 = 'ABS' ((f4 '*' ORIENT) '-' f4gsl);
  435. LOGI2 = ERROF4 < ERRO;
  436. LOGI1 = LOGI1 'ET' LOGI2;
  437.  
  438. * 'MESSAGE' ;
  439. * 'MESSAGE' ('CHAINE' 'ERR F4 ' ERROF4);
  440. * 'MESSAGE' ;
  441.  
  442. 'SI' ('NON' LOGI1);
  443. 'MESSAGE' ;
  444. 'MESSAGE' 'OPERATEUR KONV';
  445. 'MESSAGE' ('CHAINE' METO);
  446. 'ERREUR' 5;
  447. 'FINSI' ;
  448. ********************************
  449. **** 'KONV', TEST HUSVLH ****
  450. ********************************
  451. METO = 'HUSVLH' ;
  452. TFLUX DT = 'KONV' 'VF' 'PERFMONO' 'FLUX' METO
  453. $DOMTOT ROF VITF PF GAMF
  454. ('MOTS' 'RN' 'UX' 'UY' 'RETN') ;
  455. *
  456. **** Les flux aux interfaces sont dans de
  457. * CHPOINT FACE
  458. *
  459. FLUX1 = 'EXCO' 'RN' TFLUX ;
  460. FLUX2X = 'EXCO' 'UX' TFLUX ;
  461. FLUX2Y = 'EXCO' 'UY' TFLUX ;
  462. FLUX3 = 'EXCO' 'RETN' TFLUX ;
  463.  
  464. FLUX2N = (FLUX2X '*' ('COS' ANGLE)) '+' (FLUX2Y * ('SIN' ANGLE));
  465. FLUX2T = (FLUX2Y '*' ('COS' ANGLE)) '-' (FLUX2X * ('SIN' ANGLE));
  466.  
  467. *
  468. **** Test 'KONV'
  469. *
  470.  
  471. f1 = 'EXTRAIRE' FLUX1 'SCAL' P1;
  472. ERRO = 1D-10;
  473. ERROF1 = 'ABS' ((f1 '*' ORIENT) '-' f1gsl);
  474. LOGI1 = ERROF1 < ERRO;
  475.  
  476. * 'MESSAGE' ;
  477. * 'MESSAGE' ('CHAINE' 'ERR F1 ' ERROF1);
  478. * 'MESSAGE' ;
  479.  
  480. f2 = 'EXTRAIRE' FLUX2N 'SCAL' P1;
  481. ERRO = 1D-10 '*' f2gsl;
  482. ERROF2 = 'ABS' ((f2 '*' ORIENT) '-' f2gsl);
  483. LOGI2 = ERROF2 < ERRO;
  484. LOGI1 = LOGI1 'ET' LOGI2;
  485.  
  486. * 'MESSAGE' ;
  487. * 'MESSAGE' ('CHAINE' 'ERR F2 ' ERROF2);
  488. * 'MESSAGE' ;
  489.  
  490. f3 = 'EXTRAIRE' FLUX2T 'SCAL' P1;
  491. ERRO = 1D-10;
  492. ERROF3 = 'ABS' ((f3 '*' ORIENT) '-' f3gsl);
  493. LOGI2 = ERROF3 < ERRO;
  494. LOGI1 = LOGI1 'ET' LOGI2;
  495.  
  496. * 'MESSAGE' ;
  497. * 'MESSAGE' ('CHAINE' 'ERR F3 ' ERROF3);
  498. * 'MESSAGE' ;
  499.  
  500. f4 = 'EXTRAIRE' FLUX3 'SCAL' P1;
  501. ERRO = 1D-10;
  502. ERROF4 = 'ABS' ((f4 '*' ORIENT) '-' f4gsl);
  503. LOGI2 = ERROF4 < ERRO;
  504. LOGI1 = LOGI1 'ET' LOGI2;
  505.  
  506. * 'MESSAGE' ;
  507. * 'MESSAGE' ('CHAINE' 'ERR F4 ' ERROF4);
  508. * 'MESSAGE' ;
  509.  
  510. 'SI' ('NON' LOGI1);
  511. 'MESSAGE' ;
  512. 'MESSAGE' 'OPERATEUR KONV';
  513. 'MESSAGE' ('CHAINE' METO);
  514. 'ERREUR' 5;
  515. 'FINSI' ;
  516. ********************************
  517. **** 'KONV', TEST GODUNOV ****
  518. ********************************
  519. METO = 'GODUNOV' ;
  520. TFLUX DT = 'KONV' 'VF' 'PERFMONO' 'FLUX' METO
  521. $DOMTOT ROF VITF PF GAMF
  522. ('MOTS' 'RN' 'UX' 'UY' 'RETN') ;
  523. *
  524. **** Les flux aux interfaces sont dans de
  525. * CHPOINT FACE
  526. *
  527. FLUX1 = 'EXCO' 'RN' TFLUX ;
  528. FLUX2X = 'EXCO' 'UX' TFLUX ;
  529. FLUX2Y = 'EXCO' 'UY' TFLUX ;
  530. FLUX3 = 'EXCO' 'RETN' TFLUX ;
  531.  
  532. FLUX2N = (FLUX2X '*' ('COS' ANGLE)) '+' (FLUX2Y * ('SIN' ANGLE));
  533. FLUX2T = (FLUX2Y '*' ('COS' ANGLE)) '-' (FLUX2X * ('SIN' ANGLE));
  534.  
  535. *
  536. **** Test 'KONV'
  537. *
  538.  
  539. f1 = 'EXTRAIRE' FLUX1 'SCAL' P1;
  540. ERRO = 1D-10;
  541. ERROF1 = 'ABS' ((f1 '*' ORIENT) '-' f1gsl);
  542. LOGI1 = ERROF1 < ERRO;
  543.  
  544. * 'MESSAGE' ;
  545. * 'MESSAGE' ('CHAINE' 'ERR F1 ' ERROF1);
  546. * 'MESSAGE' ;
  547.  
  548. f2 = 'EXTRAIRE' FLUX2N 'SCAL' P1;
  549. ERRO = 1D-10 '*' f2gsl;
  550. ERROF2 = 'ABS' ((f2 '*' ORIENT) '-' f2gsl);
  551. LOGI2 = ERROF2 < ERRO;
  552. LOGI1 = LOGI1 'ET' LOGI2;
  553.  
  554. * 'MESSAGE' ;
  555. * 'MESSAGE' ('CHAINE' 'ERR F2 ' ERROF2);
  556. * 'MESSAGE' ;
  557.  
  558. f3 = 'EXTRAIRE' FLUX2T 'SCAL' P1;
  559. ERRO = 1D-10;
  560. ERROF3 = 'ABS' ((f3 '*' ORIENT) '-' f3gsl);
  561. LOGI2 = ERROF3 < ERRO;
  562. LOGI1 = LOGI1 'ET' LOGI2;
  563.  
  564. * 'MESSAGE' ;
  565. * 'MESSAGE' ('CHAINE' 'ERR F3 ' ERROF3);
  566. * 'MESSAGE' ;
  567.  
  568. f4 = 'EXTRAIRE' FLUX3 'SCAL' P1;
  569. ERRO = 1D-10;
  570. ERROF4 = 'ABS' ((f4 '*' ORIENT) '-' f4gsl);
  571. LOGI2 = ERROF4 < ERRO;
  572. LOGI1 = LOGI1 'ET' LOGI2;
  573.  
  574. * 'MESSAGE' ;
  575. * 'MESSAGE' ('CHAINE' 'ERR F4 ' ERROF4);
  576. * 'MESSAGE' ;
  577.  
  578. 'SI' ('NON' LOGI1);
  579. 'MESSAGE' ;
  580. 'MESSAGE' 'OPERATEUR KONV';
  581. 'MESSAGE' ('CHAINE' METO);
  582. 'ERREUR' 5;
  583. 'FINSI' ;
  584. ****************************************************
  585. ****************************************************
  586. ******** Fin boucle sur les angles *********
  587. ****************************************************
  588. ****************************************************
  589.  
  590. 'FIN' BLOC;
  591.  
  592. 'FIN' ;
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  

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