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

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