Télécharger isov.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : isov.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTION' 'ECHO' 0 ;
  5. ************************************************************************
  6. * NOM : ISOV
  7. * DESCRIPTION : Cas-test élémentaire pour l'opérateur ISOV
  8. *
  9. *
  10. *
  11. * LANGAGE : GIBIANE-CAST3M
  12. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  13. * mél : stephane.gounand@cea.fr
  14. **********************************************************************
  15. * VERSION : v1, 25/07/2014, version initiale
  16. * HISTORIQUE : v1, 25/07/2014, création
  17. * HISTORIQUE : v1.1, 12/03/2015, ajout cas plantage fiche 8433
  18. * HISTORIQUE :
  19. ************************************************************************
  20. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  21. * en cas de modification de ce sous-programme afin de faciliter
  22. * la maintenance !
  23. ************************************************************************
  24. *
  25. graph = faux ;
  26. interact = faux ;
  27. *
  28. 'DEBPROC' EGAMAIL ;
  29. 'ARGUMENT' mail1*'MAILLAGE' ;
  30. 'ARGUMENT' mail2*'MAILLAGE' ;
  31. lega = 'EGA' ('NBEL' ('DIFF' mail1 mail2)) 0 ;
  32. 'RESPRO' lega ;
  33. 'FINPROC' ;
  34. *
  35. 'SI' ('NON' interact) ;
  36. 'OPTION' 'TRAC' 'PS' ;
  37. 'SINON' ;
  38. 'OPTION' 'TRAC' 'X' ;
  39. 'FINSI' ;
  40. *
  41. 'OPTION' 'DIME' 1 'ELEM' 'SEG2' ;
  42. *
  43. lok = vrai ;
  44. *
  45. * Cas des POI1
  46. *
  47. pp = 'MANU' 'POI1' ('POIN' 0.) ;
  48. mcha = 'MANU' 'CHML' pp 'SCAL' 0.5 ;
  49. *
  50. res1 = 'ISOV' mcha 0.5 ;
  51. nres1 = 'NBEL' ('DIFF' pp res1) ;
  52. res1b = 'ISOV' mcha 0.75 ;
  53. nres1b = 'NBEL' ('DIFF' pp res1b) ;
  54. res2 = 'ISOV' mcha 'EGSU' 0.75 ;
  55. nres2 = 'NBEL' ('DIFF' pp res2) ;
  56. res3 = 'ISOV' mcha 'EGIN' 0.75 ;
  57. nres3 = 'NBEL' ('DIFF' pp res3) ;
  58. res2b = 'ISOV' mcha 'EGSU' 0.25 ;
  59. nres2b = 'NBEL' ('DIFF' pp res2b) ;
  60. res3b = 'ISOV' mcha 'EGIN' 0.25 ;
  61. nres3b = 'NBEL' ('DIFF' pp res3b) ;
  62. *
  63. lresu = 'LECT' nres1 nres1b nres2 nres3 nres2b nres3b ;
  64. lref = 'LECT' 0 1 1 0 0 1 ;
  65. lok = 'ET' lok ('EGA' lresu lref) ;
  66. 'SI' ('NON' lok) ; 'LISTE' lresu ; 'ERREUR' 5 ; 'FINSI' ;
  67. *
  68. * Cas des SEG2
  69. *
  70. p1 = 'POIN' 0. ; p2 = 'POIN' 1. ;
  71. mm = 'DROIT' 3 p1 p2 ;
  72. unt = '/' 1. 3. ;
  73. xmm = 'COORDONNEE' 1 mm ;
  74. xmm2 = ('*' xmm 0.) '+' unt ;
  75. cmm = 'CHANGER' 'CHAM' xmm mm ;
  76. * Pour tester les MCHAML constants
  77. *cmm2 = 'CHANGER' 'CHAM' xmm2 mm ;
  78. cmm2 = 'MANU' 'CHML' mm 'SCAL' unt ;
  79. *
  80. unt = '/' 1. 3. ;
  81. pasunt = 0.3333333333 ;
  82. r1 = 'ISOV' cmm unt ;
  83. punt = 'MANU' 'POI1' ('POIN' mm 'PROC' ('POIN' 0.33)) ;
  84. lok = lok 'ET' (EGAMAIL r1 punt) ;
  85. *'LISTE' r1 ;
  86. r2 = 'ISOV' cmm2 unt ;
  87. lok = lok 'ET' (EGAMAIL r2 mm) ;
  88. *'LISTE' r2 ;
  89. r3 = 'ISOV' cmm2 pasunt ;
  90. *'LISTE' r3 ;
  91. lok = lok 'ET' ('EGA' ('NBEL' r3) 0) ;
  92. r4 = 'ISOV' cmm 'EGSU' unt ;
  93. mref = 'ELEM' mm 'APPUYE' ('POIN' xmm 'EGSUPE' pasunt) ;
  94. lok = lok 'ET' (EGAMAIL r4 mref) ;
  95. *'LISTE' r4 ;
  96. r5 = 'ISOV' cmm 'EGSU' pasunt ;
  97. lok = lok 'ET' (EGAMAIL ('INTERSECTION' r5 mm) mref) ;
  98. *'LISTE' r5 ;
  99. r4b = 'ISOV' cmm 'EGIN' unt ;
  100. mrefb = 'ELEM' mm 'APPUYE' ('POIN' xmm 'EGINFE' unt) ;
  101. lok = lok 'ET' (EGAMAIL r4b mrefb) ;
  102. *'LISTE' r4b ;
  103. r5b = 'ISOV' cmm 'EGIN' pasunt ;
  104. mpcom = 'INTERSECTION' ('CHANGER' r5b 'POI1') ('CHANGER' mrefb 'POI1') ;
  105. lok = lok 'ET' (EGAMAIL mpcom ('MANU' 'POI1' p1)) ;
  106. *'LISTE' r5b ;
  107. 'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ;
  108. *
  109. * Cas des TRI3
  110. *
  111. deut = '/' 2. 3. ;
  112. cinqt = '/' 5. 3. ;
  113. 'OPTION' 'DIME' 2 'ELEM' 'TRI3' ;
  114. *
  115. pA = 0. 0. ; pB = deut 0. ; pC = deut cinqt ; pD = 0. cinqt ;
  116. tri1 = 'MANU' 'TRI3' pA pB pD ;
  117. tri2 = 'MANU' 'TRI3' pC pD pB ;
  118. mm = tri1 'ET' tri2 ;
  119. xmm ymm = 'COORDONNEE' mm ;
  120. xmm2 = ('*' xmm 0.) '+' unt ;
  121. xym = ('+' ('*' 2.5 xmm) ('*' 1. ('-' ymm cinqt))) '+' unt ;
  122. axym = ('ABS' ('-' ('*' 2.5 xmm) ('*' 1. ymm))) '+' unt ;
  123. xym2 = ('-' ('*' 2.5 xmm) ('*' 1. ymm )) '+' unt ;
  124. cmm = 'CHANGER' 'CHAM' xym mm ;
  125. *cmm2 = 'CHANGER' 'CHAM' xmm2 mm ;
  126. cmm3 = 'CHANGER' 'CHAM' axym mm ;
  127. cmm4 = 'CHANGER' 'CHAM' xym2 mm ;
  128.  
  129. *'LISTE' cmm ;
  130. *'LISTE' cmm3 ;
  131. *
  132. r1 = 'ISOV' cmm unt ;
  133. *vr1 = vsur ('MODE' r1 mecanique elastique isotrope coq2) 'NORM' ;
  134. *'LISTE' vr1 ;
  135. *'OPTION' 'DONN' 5 ;
  136.  
  137. 'SI' graph ; trac (mm et (coul r1 roug)) ; 'FINSI' ;
  138. mr1 = 'MANU' 'SEG2' pD pB ;
  139. lok = lok 'ET' (EGAMAIL r1 mr1) ;
  140. *
  141. r2 = 'ISOV' cmm 'EGSU' unt ;
  142. 'SI' graph ; trac (mm et (coul r2 roug)) ; 'FINSI' ;
  143. *'LISTE' r2 ;
  144. mr2 = tri2 ;
  145. lok = lok 'ET' (EGAMAIL r2 mr2) ;
  146. *
  147. r4 = 'ISOV' cmm4 unt ;
  148. lok = lok 'ET' ('EGA' ('DIME' ('CCON' r4)) 1) ;
  149. *!!!! 'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ;
  150. *
  151. rmm = 'CHANGER' mm 'QUAF' ; rmm = 'CHANGER' rmm 'TRI3' ;
  152. xmm ymm = 'COORDONNEE' rmm ;
  153. 'SI' graph ; 'TRACER' rmm ; 'FINSI' ;
  154. xy2 = ('**' ('/' xmm deut) 2) '+' ('**' ('/' ymm cinqt) 2) '+' unt ;
  155. *
  156. cxy2 = 'CHANGER' 'CHAM' xy2 rmm ;
  157. 'SI' graph ; 'TRACER' xy2 rmm ; 'FINSI' ;
  158. *
  159. vcher = '+' 1 unt ;
  160. r5a = 'ISOV' cxy2 'EGAL' vcher ;
  161. r5b = 'ISOV' cxy2 'EGSU' vcher ;
  162. r5c = 'ISOV' cxy2 'EGIN' vcher ;
  163. 'SI' graph ;
  164. trac (rmm et (coul r5a roug)) 'NOEU' ;
  165. trac (rmm et (coul r5b roug)) 'NOEU' ;
  166. trac (rmm et (coul r5c roug)) 'NOEU' ;
  167. 'FINSI' ;
  168. cc5a = PROI cxy2 r5a ; vv5a = 'MAXIMUM' ('-' cc5a vcher) 'ABS' ;
  169. cc5b = PROI cxy2 r5b ; vv5b = 'MINIMUM' ('-' cc5b vcher) ;
  170. cc5c = PROI cxy2 r5c ; vv5c = 'MAXIMUM' ('-' cc5c vcher) ;
  171. *'LISTE' vv5a ;
  172. *'LISTE' vv5b ;
  173. *'LISTE' vv5c ;
  174. lok = lok 'ET' ('EGA' vv5a 0. 1.D-13) ;
  175. lok = lok 'ET' ('EGA' vv5b 0. 1.D-13) ;
  176. lok = lok 'ET' ('EGA' vv5b 0. 1.D-13) ;
  177. volex = '*' deut cinqt ;
  178. volmm = 'MESURE' mm ;
  179. dvolmm = '-' volmm volex ;
  180. *'LISTE' dvolmm ;
  181. lok = lok 'ET' ('EGA' dvolmm 0. 1.D-13) ;
  182. vol5b = 'MESURE' r5b ;
  183. vol5c = 'MESURE' r5c ;
  184. vol5 = vol5b '+' vol5c ;
  185. dvol5 = '-' vol5 volex ;
  186. *'LISTE' dvol5 ;
  187. lok = lok 'ET' ('EGA' dvol5 0. 1.D-13) ;
  188. *
  189. vcher = 1.33 ;
  190. r6a = 'ISOV' cxy2 'EGAL' vcher ;
  191. r6b = 'ISOV' cxy2 'EGSU' vcher ;
  192. r6c = 'ISOV' cxy2 'EGIN' vcher ;
  193. 'SI' graph ;
  194. trac (rmm et (coul r6a roug)) 'NOEU' ;
  195. trac (rmm et (coul r6b roug)) 'NOEU' ;
  196. trac (rmm et (coul r6c roug)) 'NOEU' ;
  197. 'FINSI' ;
  198. cc6a = PROI cxy2 r6a ; vv6a = 'MAXIMUM' ('-' cc6a vcher) 'ABS' ;
  199. cc6b = PROI cxy2 r6b ; vv6b = 'MINIMUM' ('-' cc6b vcher) ;
  200. cc6c = PROI cxy2 r6c ; vv6c = 'MAXIMUM' ('-' cc6c vcher) ;
  201. *'LISTE' vv6a ;
  202. *'LISTE' vv6b ;
  203. *'LISTE' vv6c ;
  204. lok = lok 'ET' ('EGA' vv6a 0. 1.D-13) ;
  205. lok = lok 'ET' ('EGA' vv6b 0. 1.D-13) ;
  206. lok = lok 'ET' ('EGA' vv6b 0. 1.D-13) ;
  207. vol6b = 'MESURE' r6b ;
  208. vol6c = 'MESURE' r6c ;
  209. vol6 = vol6b '+' vol6c ;
  210. dvol6 = '-' vol6 volex ;
  211. *'LISTE' dvol6 ;
  212. lok = lok 'ET' ('EGA' dvol6 0. 1.D-13) ;
  213. 'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ;
  214. *
  215. * Cas des TET4
  216. *
  217. 'OPTI' 'DIME' 3 'ELEM' 'TET4' ;
  218. p1 = 0. 0. 0. ; p2 = pi 0. 0. ; p3 = 0. 2.5 0. ;
  219. p4 = 0. 0. ('/' 10. 3.) ;
  220. tet = 'MANU' 'TET4' p4 p2 p3 p1 ;
  221. tet1 = p1 'ET' p2 'ET' p3 'ET' p4 ;
  222. vinf = 0. ; vmoy = cinqt ; vsup = pi ;
  223. *
  224. * On parcourt des cas standards (isovaleur=surface)
  225. *
  226. tabcas = 'TABLE' ;
  227. tabcas . 1 = 'PROG' vinf vmoy vmoy vsup ;
  228. tabcas . 2 = 'PROG' vinf vinf vmoy vsup ;
  229. tabcas . 3 = 'PROG' vinf vmoy vsup vsup ;
  230. tabcas . 4 = 'PROG' vinf vsup vsup vsup ;
  231. tabcas . 5 = 'PROG' vinf vinf vsup vsup ;
  232. tabcas . 6 = 'PROG' vinf vinf vinf vsup ;
  233. dkas = 'DIME' tabcas ;
  234. 'REPETER' ikas dkas ;
  235. lval = tabcas . &ikas ;
  236. *lval = 'PROG' vinf vinf vsup vsup ;
  237. cval = 'MANU' 'CHPO' tet1 1 'SCAL' lval ;
  238. 'SI' graph ; 'TRACER' cval tet ; 'FINSI' ;
  239. ccval = 'CHANGER' 'CHAM' cval tet ;
  240. *
  241. vcher = vmoy ;
  242. r1a = 'ISOV' ccval 'EGAL' vcher ;
  243. r1b = 'ISOV' ccval 'EGSU' vcher ;
  244. r1c = 'ISOV' ccval 'EGIN' vcher ;
  245. 'SI' graph ;
  246. trac (tet et (coul r1a roug)) 'NOEU' ;
  247. trac (tet et (coul r1b roug)) 'NOEU' ;
  248. trac (tet et (coul r1c roug)) 'NOEU' ;
  249. 'FINSI' ;
  250. cc1a = PROI ccval r1a ; vv1a = 'MAXIMUM' ('-' cc1a vcher) 'ABS' ;
  251. cc1b = PROI ccval r1b ; vv1b = 'MINIMUM' ('-' cc1b vcher) ;
  252. cc1c = PROI ccval r1c ; vv1c = 'MAXIMUM' ('-' cc1c vcher) ;
  253. * 'LISTE' vv1a ;
  254. * 'LISTE' vv1b ;
  255. * 'LISTE' vv1c ;
  256. lok = lok 'ET' ('EGA' vv1a 0. 1.D-13) ;
  257. lok = lok 'ET' ('EGA' vv1b 0. 1.D-13) ;
  258. lok = lok 'ET' ('EGA' vv1c 0. 1.D-13) ;
  259. volex = 'MESURE' tet ;
  260. vol1b = 'MESURE' r1b ;
  261. vol1c = 'MESURE' r1c ;
  262. vol1 = vol1b '+' vol1c ;
  263. dvol1 = '-' vol1 volex ;
  264. * 'LISTE' dvol1 ;
  265. lok = lok 'ET' ('EGA' dvol1 0. 1.D-13) ;
  266. 'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ;
  267. 'FIN' ikas ;
  268. *
  269. * Le diamant triangulaire
  270. *
  271. p1 = 0. 0. 0. ; p2 = pi 0. 0. ; p3 = 0. 2.5 0. ;
  272. p4 = 0. 0. ('/' 10. 3.) ; p5 = pi 2.5 ('/' 10. 3.) ;
  273. teta = 'MANU' 'TET4' p4 p2 p3 p1 ;
  274. tetb = 'MANU' 'TET4' p5 p2 p3 p4 ;
  275. tet = teta 'ET' tetb ;
  276. tet1 = p1 'ET' p2 'ET' p3 'ET' p4 'ET' p5 ;
  277. vinf = 0. ; vmoy = cinqt ; vsup = pi ;
  278. *
  279. * On parcourt quelques cas particuliers
  280. *
  281. tabcas = 'TABLE' ;
  282. tabega = 'TABLE' ; tabsup = 'TABLE' ; tabinf = 'TABLE' ;
  283. tabcas . 1 = 'PROG' vmoy vinf vinf vinf vmoy ;
  284. tabega . 1 = p1 'ET' p5 ;
  285. tabinf . 1 = tet ;
  286. tabsup . 1 = tabega . 1 ;
  287. *
  288. tabcas . 2 = 'PROG' vmoy vmoy vsup vsup vmoy ;
  289. tabega . 2 = ('MANU' 'SEG2' p1 p2) 'ET' ('MANU' 'SEG2' p2 p5) ;
  290. tabinf . 2 = tabega . 2;
  291. tabsup . 2 = tet ;
  292. *
  293. tabcas . 3 = 'PROG' vmoy vmoy vmoy vinf vmoy ;
  294. tabega . 3 = ('MANU' 'TRI3' p1 p2 p3) 'ET' ('MANU' 'TRI3' p2 p3 p5) ;
  295. tabinf . 3 = tet ;
  296. tabsup . 3 = tabega . 3 ;
  297. *
  298. tabcas . 4 = 'PROG' vsup vmoy vmoy vmoy vinf ;
  299. tabega . 4 = 'MANU' 'TRI3' p2 p3 p4 ;
  300. tabinf . 4 = tetb ;
  301. tabsup . 4 = teta ;
  302. *
  303. tabcas . 5 = 'PROG' vmoy vmoy vmoy vmoy vmoy ;
  304. tabega . 5 = tet ;
  305. tabinf . 5 = tet ;
  306. tabsup . 5 = tet ;
  307. *
  308. dkas = 'DIME' tabcas ;
  309. 'REPETER' ikas dkas ;
  310. lval = tabcas . &ikas ;
  311. cval = 'MANU' 'CHPO' tet1 1 'SCAL' lval ;
  312. 'SI' graph ; 'TRACER' cval tet ; 'FINSI' ;
  313. ccval = 'CHANGER' 'CHAM' cval tet ;
  314. *
  315. vcher = vmoy ;
  316. r1a = 'ISOV' ccval 'EGAL' vcher ;
  317. r1b = 'ISOV' ccval 'EGSU' vcher ;
  318. r1c = 'ISOV' ccval 'EGIN' vcher ;
  319. * 'LISTE' r1a ;
  320. * 'LISTE' r1b ;
  321. * 'LISTE' r1c ;
  322. 'SI' graph ;
  323. trac (tet et (coul r1a roug)) 'NOEU' ;
  324. trac (tet et (coul r1b roug)) 'NOEU' ;
  325. trac (tet et (coul r1c roug)) 'NOEU' ;
  326. 'FINSI' ;
  327. lok = lok 'ET' (EGAMAIL r1a (tabega . &ikas)) ;
  328. lok = lok 'ET' (EGAMAIL r1b (tabsup . &ikas)) ;
  329. lok = lok 'ET' (EGAMAIL r1c (tabinf . &ikas)) ;
  330. 'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ;
  331. 'FIN' ikas ;
  332. *
  333. * On parcourt des cas plus standards (isovaleur = surface)
  334. *
  335. tabcas = 'TABLE' ;
  336. tabcas . 1 = 'PROG' vinf vmoy vsup vsup vsup ;
  337. tabcas . 2 = 'PROG' vsup vsup vmoy vmoy vinf ;
  338. tabcas . 3 = 'PROG' vinf vinf vsup vinf vinf ;
  339. tabcas . 4 = 'PROG' vsup vmoy vmoy vmoy vinf ;
  340. tabcas . 5 = 'PROG' vmoy vsup vsup vinf vmoy ;
  341. tabcas . 6 = 'PROG' vsup vinf vsup vinf vinf ;
  342. dkas = 'DIME' tabcas ;
  343. 'REPETER' ikas dkas ;
  344. lval = tabcas . &ikas ;
  345. *lval = 'PROG' vinf vinf vsup vsup ;
  346. cval = 'MANU' 'CHPO' tet1 1 'SCAL' lval ;
  347. 'SI' graph ; 'TRACER' cval tet ; 'FINSI' ;
  348. ccval = 'CHANGER' 'CHAM' cval tet ;
  349. *
  350. vcher = vmoy ;
  351. r1a = 'ISOV' ccval 'EGAL' vcher ;
  352. r1b = 'ISOV' ccval 'EGSU' vcher ;
  353. r1c = 'ISOV' ccval 'EGIN' vcher ;
  354. * 'LISTE' r1a ;
  355. * 'LISTE' r1b ;
  356. * 'LISTE' r1c ;
  357. 'SI' graph ;
  358. trac (tet et (coul r1a roug)) 'NOEU' ;
  359. trac (tet et (coul r1b roug)) 'NOEU' ;
  360. trac (tet et (coul r1c roug)) 'NOEU' ;
  361. 'FINSI' ;
  362. cc1a = PROI ccval r1a ; vv1a = 'MAXIMUM' ('-' cc1a vcher) 'ABS' ;
  363. cc1b = PROI ccval r1b ; vv1b = 'MINIMUM' ('-' cc1b vcher) ;
  364. cc1c = PROI ccval r1c ; vv1c = 'MAXIMUM' ('-' cc1c vcher) ;
  365. * 'LISTE' vv1a ;
  366. * 'LISTE' vv1b ;
  367. * 'LISTE' vv1c ;
  368. lok = lok 'ET' ('EGA' vv1a 0. 1.D-13) ;
  369. lok = lok 'ET' ('EGA' vv1b 0. 1.D-13) ;
  370. lok = lok 'ET' ('EGA' vv1c 0. 1.D-13) ;
  371. volex = 'MESURE' tet ;
  372. vol1b = 'MESURE' r1b ;
  373. vol1c = 'MESURE' r1c ;
  374. vol1 = vol1b '+' vol1c ;
  375. dvol1 = '-' vol1 volex ;
  376. * 'LISTE' dvol1 ;
  377. lok = lok 'ET' ('EGA' dvol1 0. 1.D-13) ;
  378. 'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ;
  379. 'FIN' ikas ;
  380. *
  381. * Cas d'un cube
  382. *
  383. nm = 3 ;
  384. 'OPTION' 'DIME' 3 'ELEM' 'TET4' ;
  385. pO = 0. 0. 0. ;
  386. pA = 1. 0. 0. ;
  387. pB = 0. 1. 0. ;
  388. pC = 0. 0. 1. ;
  389. lOA = 'DROIT' nm pO pA ; lOB = 'DROIT' nm pO pB ;
  390. bas = 'TRANSLATION' lOA nm pB ;
  391. fro = 'TRANSLATION' lOA nm pC ;
  392. gau = 'TRANSLATION' lOB nm pC ;
  393. hau = 'PLUS' bas pC ;
  394. rea = 'PLUS' fro pB ;
  395. dro = 'PLUS' gau pA ;
  396. emt = bas 'ET' hau 'ET' gau 'ET' dro 'ET' fro 'ET' rea ;
  397. 'ELIMINATION' emt 1.D-6 ;
  398. mt = 'VOLUME' emt ;
  399. volex = 'MESURE' mt ;
  400. 'TRACER' mt cach ;
  401.  
  402. amt = 'ARETE' mt ;
  403. xmt ymt zmt = 'COORDONNEE' mt ;
  404. rmt = '**' (('**' xmt 2) '+' ('**' ymt 2) '+' ('**' zmt 2)) 0.5 ;
  405. crmt = 'CHANGER' 'CHAM' rmt mt ;
  406. 'SI' graph ;
  407. 'TRACER' rmt mt ;
  408. 'FINSI' ;
  409. lval = 'PROG' 0.5 0.98 1. 1.66666 ;
  410. dval = 'DIME' lval ;
  411. 'REPETER' ival dval ;
  412. vcher = 'EXTRAIRE' lval &ival ;
  413. r1a = 'ISOV' crmt 'EGAL' vcher ;
  414. r1b = 'ISOV' crmt 'EGSU' vcher ;
  415. r1c = 'ISOV' crmt 'EGIN' vcher ;
  416. 'SI' graph ;
  417. trac (amt et (coul r1a roug)) 'CACH' ;
  418. trac (amt et (coul r1b roug)) 'CACH' ;
  419. trac (amt et (coul r1c roug)) 'CACH' ;
  420. 'FINSI' ;
  421. cc1a = PROI crmt r1a ; vv1a = 'MAXIMUM' ('-' cc1a vcher) 'ABS' ;
  422. cc1b = PROI crmt r1b ; vv1b = 'MINIMUM' ('-' cc1b vcher) ;
  423. cc1c = PROI crmt r1c ; vv1c = 'MAXIMUM' ('-' cc1c vcher) ;
  424. * 'LISTE' vv1a ;
  425. * 'LISTE' vv1b ;
  426. * 'LISTE' vv1c ;
  427. lok = lok 'ET' ('EGA' vv1a 0. 1.D-13) ;
  428. lok = lok 'ET' ('EGA' vv1b 0. 1.D-13) ;
  429. lok = lok 'ET' ('EGA' vv1c 0. 1.D-13) ;
  430. vol1b = 'MESURE' r1b ;
  431. vol1c = 'MESURE' r1c ;
  432. vol1 = vol1b '+' vol1c ;
  433. dvol1 = '-' vol1 volex ;
  434. * 'LISTE' dvol1 ;
  435. lok = lok 'ET' ('EGA' dvol1 0. 1.D-13) ;
  436. 'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ;
  437. 'FIN' ival ;
  438. *
  439. * Un cas qui plantait sèchement avant la fiche 8433
  440. *
  441. born = 0.5 ; mborn = '*' born -1. ;
  442. *
  443. pA = mborn mborn 0. ; pB = born mborn 0. ;
  444. pC = born born 0. ; pD = mborn born 0. ;
  445. * Carré initial
  446. 'OPTI' 'ELEM' 'CUB8' ;
  447. nmail = 1 ;
  448. lAB = 'DROIT' nmail pA pB ;
  449. lBC = 'DROIT' nmail pB pC ;
  450. lCD = 'DROIT' nmail pC pD ;
  451. lDA = 'DROIT' nmail pD pA ;
  452. bas = 'DALLER' lAB lBC lCD lDA ;
  453. hau = bas 'PLUS' (0. 0. 1.) ;
  454. mt = 'VOLUME' nmail bas hau ;
  455. mtq = 'CHANGER' mt 'QUAF' ;
  456. mt = 'CHANGER' mtq 'TET4' ;
  457. xmt ymt zmt = 'COORDONNEE' mt ;
  458. cymt = 'CHANGER' 'CHAM' ymt mt ;
  459. micymt = 'MINIMUM' cymt ;
  460. 'MESSAGE' ('CHAINE' 'micymt=' micymt) ;
  461. mmt = 'ISOV' cymt 'EGSUPE' 0. ;
  462. * Verif
  463. cymtr = 'REDU' cymt mmt ;
  464. micymtr = 'MINIMUM' cymtr ;
  465. 'MESSAGE' ('CHAINE' 'micymtr=' micymtr) ;
  466. lok = lok 'ET' ('>EG' micymtr 0.) ;
  467. *
  468. * Un cas qui donnait un résultat incorrect sur semt2 avant la fiche 8625
  469. *
  470. *'OPTI' echo 1 'TRACER' x ; graph = vrai ;
  471. 'OPTION' 'DIME' 2 'ELEM' 'TRI3' ;
  472. p1 = 1. 0. ; p2 = 2. 0. ;
  473. d1 = 'DROIT' 2 p1 p2 ;
  474. mai = d1 'ROTATION' 10 60 (0. 0.) ;
  475. cx cy = 'COORDONNEE' mai ;
  476. cr = '**' ('+' ('**' cx 2) ('**' cy 2)) 0.5 ;
  477. ct = 'ATG' cy cx ;
  478. 'SI' graph ;
  479. 'TRACER' cr mai 'TITR' 'R' ;
  480. 'TRACER' ct mai 'TITR' 'theta' ;
  481. 'FINSI' ;
  482. misor cisor = @ISOSURF mai cr ('PROG' 1. 'PAS' 0.1 2.) ;
  483. misot cisot = @ISOSURF mai ct ('PROG' 0. 'PAS' 10. 60.) ;
  484. 'SI' graph ;
  485. 'TRACER' (misor 'ET' ('CONTOUR' mai)) 'TITR' 'R' ;
  486. 'TRACER' (misor 'ET' misot) 'TITR' 'R-theta' ;
  487. 'FINSI' ;
  488. * Verif
  489. pmisor = 'CHANGER' misor 'POI1' ;
  490. * On fait une petite homothetie car inclus est trop strict
  491. pmisor = 'HOMOTHETIE' pmisor 0.99 ('BARYCENTRE' pmisor) ;
  492. pmisor2 = pmisor 'INCLUS' mai 'LARG' ;
  493. tst1 = 'EGA' ('NBNO' pmisor) ('NBNO' pmisor2) ;
  494. pmisot = 'CHANGER' misot 'POI1' ;
  495. pmisot = 'HOMOTHETIE' pmisot 0.99 ('BARYCENTRE' pmisot) ;
  496. pmisot2 = pmisot 'INCLUS' mai 'LARG' ;
  497. tst2 = 'EGA' ('NBNO' pmisot) ('NBNO' pmisot2) ;
  498. lok = lok 'ET' tst1 'ET' tst2 ;
  499. *
  500. 'SI' ('NON' lok) ;
  501. 'ERREUR' 5 ;
  502. 'SINON' ;
  503. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  504. 'FINSI' ;
  505. *
  506. 'SI' interact ;
  507. 'OPTION' 'ECHO' 1 ;
  508. 'OPTION' 'DONN' 5 ;
  509. 'FINSI' ;
  510. *
  511. * End of dgibi file ISOV
  512. *
  513. 'FIN' ;
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  

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