Télécharger mailtopo.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : mailtopo.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTI' 'ECHO' 0 ;
  5. graph = faux ;
  6. interact = faux ;
  7. impr = 1 ;
  8. ************************************************************************
  9. * NOM : MAILTOPO
  10. * DESCRIPTION : Tests du mailleur topologique utilise
  11. * dans les operateurs TRIA TOPO et REMA
  12. * Geometries variees mais tenseur metrique homogene et
  13. * isotrope
  14. *
  15. *
  16. * LANGAGE : GIBIANE-CAST3M
  17. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  18. * mél : stephane.gounand@cea.fr
  19. **********************************************************************
  20. * VERSION : v1, 31/10/2025, version initiale
  21. * HISTORIQUE : v1, 31/10/2025, création
  22. * HISTORIQUE :
  23. * HISTORIQUE :
  24. ************************************************************************
  25. *
  26. * Procedures
  27. *
  28. * Mini, mediane et maxi d'un MCHAML
  29. 'DEBP' MIMEMA ;
  30. 'ARGU' ch*'MCHAML' ;
  31. 'ARGU' cmp*'MOT' ;
  32. lr = 'EXTR' (CHGRAV ch) 'VALE' cmp ;
  33. lro = 'ORDO' lr ; dlr = 'DIME' lr ;
  34. mil = 'EXTR' lro 1 ; mal = 'EXTR' lro dlr ;
  35. mel = 'EXTR' lro ('/' ('+' 1 dlr) 2) ;
  36. 'FINP' mil mel mal ;
  37. * Passage au gravite d'un MCHAML
  38. 'DEBP' CHGRAV ch*'MCHAML';
  39. 'FINP' ('CHAN' ch ('MODE' ('EXTR' ch 'MAIL') 'THERMIQUE') 'GRAVITE') ;
  40. ************************************************************************
  41. * NOM : GENTEST
  42. * DESCRIPTION : Génère une table contenant des cas-tests pour
  43. * utilisation dans mailtopo
  44. *
  45. * Pour l'instant, tous ces cas ont une métrique constante.
  46. *
  47. *
  48. * LANGAGE : GIBIANE-CAST3M
  49. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SEMT/LTA)
  50. * mél : stephane.gounand@cea.fr
  51. **********************************************************************
  52. * VERSION : v1, 28/11/2017, version initiale
  53. * HISTORIQUE : v1, 28/11/2017, création
  54. * HISTORIQUE :
  55. * HISTORIQUE :
  56. ************************************************************************
  57. *
  58. 'DEBPROC' GENTEST ;
  59. 'ARGUMENT' nomdbase*'MOT' ;
  60. *
  61. ikas = 0 ;
  62. tkas = 'TABL' ;
  63. *
  64. l2f = 'EGA' nomdbase 'mailtopo_2d_fast' ;
  65. l2s = 'EGA' nomdbase 'mailtopo_2d_slow' ;
  66. l3f = 'EGA' nomdbase 'mailtopo_3d_fast' ;
  67. l3s = 'EGA' nomdbase 'mailtopo_3d_slow' ;
  68. 'SI' (l2f 'OU' l2s 'OU' l3f 'OU' l3s) ;
  69. 'SI' ('OU' l2s l2f) ;
  70. lcont = 'MOTS' 'QUAD' 'TRIE' 'SELL' 'TOC3' 'TOR2' ;
  71. 'OPTI' 'DIME' 2 'ELEM' 'TRI3' ;
  72. 'FINS' ;
  73. 'SI' ('OU' l3s l3f) ;
  74. lcont = 'MOTS' 'TETE' 'CUBE' 'SEL3' 'CYC2' ;
  75. 'OPTI' 'DIME' 3 'ELEM' 'TET4' ;
  76. 'FINS' ;
  77. vdim = 'VALE' 'DIME' ;
  78. * braff = 1 : on génère un maillage sans insertion de noeud
  79. * braff = 2 : on génère un maillage avec insertion/suppression de noeud
  80. * braff = 3 : on génère un maillage avec insertion/suppression de noeud y compris au bord
  81. * braff = 4 : on raffine
  82. * braff = 5 : on déraffine
  83. * braff = 6 : on améliore
  84. 'REPE' braff 6 ;
  85. iraff = &braff ;
  86. * 'REPE' braff 1 ;
  87. * iraff = 4 ;
  88. 'REPE' bcont ('DIME' lcont) ;
  89. icont = &bcont ;
  90. ccont = 'EXTR' lcont icont ;
  91. * Par défaut
  92. 'SI' l2f ;
  93. lidens = 'LECT' 1 2 3 4 5 ;
  94. 'SI' ('EGA' ccont 'SELL') ;
  95. lidens = 'LECT' 1 2 3 ;
  96. 'FINS' ;
  97. 'SI' ('OU' ('EGA' ccont 'TOC3') ('EGA' ccont 'TOR2')) ;
  98. lidens = 'LECT' 1 2 ;
  99. 'SI' ('ET' ('EGA' ccont 'TOR2') ('<' iraff 4)) ;
  100. lidens = 'LECT' ;
  101. 'FINS' ;
  102. 'FINS' ;
  103. 'FINS' ;
  104. 'SI' l2s ;
  105. lidens = 'LECT' 6 ;
  106. 'SI' ('EGA' ccont 'SELL') ;
  107. lidens = 'LECT' 4 5 ;
  108. 'FINS' ;
  109. 'SI' ('OU' ('EGA' ccont 'TOC3') ('EGA' ccont 'TOR2')) ;
  110. lidens = 'LECT' 3 4 ;
  111. 'SI' ('ET' ('EGA' ccont 'TOR2') ('<' iraff 4)) ;
  112. lidens = 'LECT' ;
  113. 'FINS' ;
  114. 'FINS' ;
  115. 'FINS' ;
  116. 'SI' l3f ;
  117. lidens = 'LECT' 1 2 ;
  118. 'FINS' ;
  119. 'SI' l3s ;
  120. lidens = 'LECT' 3 ;
  121. 'FINS' ;
  122. *
  123. ddens = 'DIME' lidens ;
  124. 'SI' ('>' ddens 0) ;
  125. 'REPE' bidens ddens ;
  126. idens = 'EXTR' lidens &bidens ;
  127. *
  128. ikas = '+' ikas 1 ;
  129. tkas . ikas = 'TABL' ; tloc = tkas . ikas ;
  130. *
  131. idk = 'CHAI' 'r' iraff 'c' ccont 'd' idens ;
  132. tloc . 'idk' = idk ;
  133. 'MESS' ('CHAI' 'Generation cas ' ikas ' ' idk) ;
  134. * Génération de la topologie initiale
  135. 'SI' ('EXIS' ('LECT' 1 2 3) iraff) ;
  136. topoini = gencont ccont idens ;
  137. lcar = 0.0 ;
  138. 'FINS' ;
  139. 'SI' ('EGA' iraff 4) ;
  140. cini = gencont ccont 1 ;
  141. 'SI' ('EGA' vdim 2) ;
  142. topoini = 'SURF' cini ;
  143. 'SINO' ;
  144. * topoini = 'VOLU' cini 'VERB' ;
  145. topoini = 'VOLU' cini ;
  146. 'FINS' ;
  147. lcar = '/' 1. ('FLOT' idens) ;
  148. 'FINS' ;
  149. 'SI' ('EXIS' ('LECT' 5 6) iraff) ;
  150. cini = gencont ccont idens ;
  151. 'SI' ('EGA' vdim 2) ;
  152. topoini = 'SURF' cini ;
  153. 'SINO' ;
  154. * topoini = 'VOLU' cini 'VERB' ;
  155. topoini = 'VOLU' cini ;
  156. 'FINS' ;
  157. 'SI' ('EGA' iraff 5) ;
  158. lcar = 2. ;
  159. 'FINS' ;
  160. 'SI' ('EGA' iraff 6) ;
  161. lcar = '/' 1. ('FLOT' idens) ;
  162. 'FINS' ;
  163. 'FINS' ;
  164. tloc . 'topoini' = topoini ;
  165. tloc . 'lcar' = lcar ;
  166. 'SI' ('EXIS' ('LECT' 1 2 3) iraff) ;
  167. tloc . 'ijob' = '-' iraff 1 ;
  168. 'SINO' ;
  169. tloc . 'ijob' = 3 ;
  170. 'FINS' ;
  171. 'FIN' bidens ;
  172. 'FINS' ;
  173. 'FIN' bcont ;
  174. 'FIN' braff ;
  175. 'FINS' ;
  176. *
  177. *
  178. 'RESPRO' tkas ;
  179. *
  180. * End of procedure file GENTEST
  181. *
  182. 'FINPROC' ;
  183. ************************************************************************
  184. * NOM : GENCONT
  185. * DESCRIPTION :
  186. *
  187. * Procédure pour générer un contour ou une enveloppe dont on veut mailler
  188. * l'intérieur
  189. * SELL : en forme de pointe de flèche
  190. * on peut donner 1,2 ou 4 arguments entiers qui sont les nombres
  191. * de mailles des cotes
  192. * TORE : deux cercles concentriques
  193. * on peut donner 1 ou 2 arguments entiers qui sont le nombre de
  194. * mailles/4 de chaque cercle
  195. * On peut donner 2 arguments flottants qui sont le rapport
  196. * d'homothetie et un angle de rotation
  197. *
  198. *
  199. *
  200. * LANGAGE : GIBIANE-CAST3M
  201. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  202. * mél : stephane.gounand@cea.fr
  203. **********************************************************************
  204. * VERSION : v1, 25/08/2016, version initiale
  205. * HISTORIQUE : v1, 25/08/2016, création
  206. * HISTORIQUE :
  207. * HISTORIQUE :
  208. ************************************************************************
  209. *
  210. 'DEBPROC' GENCONT ;
  211. 'ARGUMENT' mcle*'MOT' ;
  212. *
  213. lmail = 'MOTS' 'SELL' 'TORE' 'TOCO' 'TOC2' 'ISOC' 'TETR' 'CYCU' 'CERV'
  214. 'CRV2' 'TRIE' 'TRIR' 'QUAD' 'TETE' 'CUBE' 'SEL3' 'CYC2' 'TOC3' 'CYCO'
  215. 'TOR2' ;
  216. imail = 'POSI' mcle 'DANS' lmail ;
  217. 'SI' ('EGA' imail 0) ;
  218. cherr = 'CHAINE' 'Mot cle ' mcle ' inconnu' ;
  219. 'ERREUR' cherr ;
  220. 'FINSI' ;
  221. *
  222. * 'SELL'
  223. *
  224. 'SI' ('EGA' imail 1) ;
  225. 'OPTI' 'DIME' 2 'ELEM' 'TRI3' ;
  226. tn = 'TABLE' ;
  227. 'REPETER' lient ;
  228. 'ARGUMENT' ient/'ENTIER' ;
  229. 'SI' ('EXISTE' ient) ;
  230. tn . &lient = ient ;
  231. 'SINON' ;
  232. 'QUITTER' lient ;
  233. 'FINSI' ;
  234. 'FIN' lient ;
  235. dtn = 'DIME' tn ;
  236. n1 = 1 ; n2 = n1 ; n3 = n2 ; n4 = n2 ;
  237. 'SI' ('EGA' dtn 1) ;
  238. n1 = tn . 1 ; n2 = n1 ; n3 = n2 ; n4 = n2 ;
  239. 'FINSI' ;
  240. 'SI' ('EGA' dtn 2) ;
  241. n1 = tn . 1 ; n2 = n1 ; n3 = tn . 2 ; n4 = n2 ;
  242. 'FINSI' ;
  243. 'SI' ('EGA' dtn 4) ;
  244. n1 = tn . 1 ; n2 = tn . 2 ; n3 = tn . 3 ; n4 = tn . 4 ;
  245. 'FINSI' ;
  246. *
  247. pA = -1. 2. ;
  248. pB = 0. 0. ;
  249. pC = 1. 2. ;
  250. pD = 0. 1. ;
  251. *
  252. lAB = 'DROIT' n1 pA pB ; lBC = 'DROIT' n2 pB pC ;
  253. lCD = 'DROIT' n3 pC pD ; lDA = 'DROIT' n4 pD pA ;
  254. *
  255. cnt = lAB 'ET' lBC 'ET' lCD 'ET' lDA ;
  256. 'FINSI' ;
  257. *
  258. * 'TORE'
  259. *
  260. 'SI' ('EGA' imail 2) ;
  261. 'OPTI' 'DIME' 2 'ELEM' 'TRI3' ;
  262. tn = 'TABLE' ;
  263. 'REPETER' lient ;
  264. 'ARGUMENT' ient/'ENTIER' ;
  265. 'SI' ('EXISTE' ient) ;
  266. tn . &lient = ient ;
  267. 'SINON' ;
  268. 'QUITTER' lient ;
  269. 'FINSI' ;
  270. 'FIN' lient ;
  271. dtn = 'DIME' tn ;
  272. n1 = 1 ; n2 = n1 ;
  273. 'SI' ('EGA' dtn 1) ;
  274. n1 = tn . 1 ; n2 = n1 ;
  275. 'FINSI' ;
  276. 'SI' ('EGA' dtn 2) ;
  277. n1 = tn . 1 ; n2 = tn . 2 ;
  278. 'FINSI' ;
  279. tn = 'TABLE' ;
  280. 'REPETER' liflo ;
  281. 'ARGUMENT' iflo/'FLOTTANT' ;
  282. 'SI' ('EXISTE' iflo) ;
  283. tn . &liflo = iflo ;
  284. 'SINON' ;
  285. 'QUITTER' liflo ;
  286. 'FINSI' ;
  287. 'FIN' liflo ;
  288. dtn = 'DIME' tn ;
  289. rhomo = 2. ; angle = 0. ;
  290. 'SI' ('>EG' dtn 1) ;
  291. rhomo = tn . 1 ;
  292. 'FINSI' ;
  293. 'SI' ('>EG' dtn 2) ;
  294. angle = tn . 2 ;
  295. 'FINSI' ;
  296. n1 = '*' n1 2 ;
  297. n2 = '*' n2 2 ;
  298. *
  299. pA = 1. 0. ; pB = 0. 1. ; pC = -1. 0. ; pD = 0. -1. ;
  300. pE pF pG pH = 'HOMOTHETIE' pA pB pC pD rhomo (0. 0.) ;
  301. pE pF pG pH = 'TOURNER' pE pF pG pH angle (0. 0.) ;
  302.  
  303. *
  304. lEG = 'CER3' n2 pE pF pG ;
  305. lGE = 'CER3' n2 pG pH pE ;
  306. cere = lEG 'ET' lGE ;
  307. *
  308. lAC = 'CER3' n1 pA pB pC ;
  309. lCA = 'CER3' n1 pC pD pA ;
  310. ceri = 'INVERSE' (lAC 'ET' lCA) ;
  311. *
  312. cnt = ceri 'ET' cere ;
  313. 'FINSI' ;
  314. *
  315. * 'TOCO'
  316. *
  317. 'SI' ('EGA' imail 3) ;
  318. 'OPTI' 'DIME' 2 'ELEM' 'TRI3' ;
  319. tn = 'TABLE' ;
  320. 'REPETER' lient ;
  321. 'ARGUMENT' ient/'ENTIER' ;
  322. 'SI' ('EXISTE' ient) ;
  323. tn . &lient = ient ;
  324. 'SINON' ;
  325. 'QUITTER' lient ;
  326. 'FINSI' ;
  327. 'FIN' lient ;
  328. dtn = 'DIME' tn ;
  329. n1 = 1 ; n2 = n1 ; n3 = n1 ;
  330. 'SI' ('EGA' dtn 1) ;
  331. n1 = tn . 1 ; n2 = n1 ; n3 = n1 ;
  332. 'FINSI' ;
  333. 'SI' ('EGA' dtn 2) ;
  334. n1 = tn . 1 ; n2 = tn . 2 ; n3 = n2 ;
  335. 'FINSI' ;
  336. 'SI' ('EGA' dtn 3) ;
  337. n1 = tn . 1 ; n2 = tn . 2 ; n3 = tn . 3 ;
  338. 'FINSI' ;
  339. tn = 'TABLE' ;
  340. 'REPETER' liflo ;
  341. 'ARGUMENT' iflo/'FLOTTANT' ;
  342. 'SI' ('EXISTE' iflo) ;
  343. tn . &liflo = iflo ;
  344. 'SINON' ;
  345. 'QUITTER' liflo ;
  346. 'FINSI' ;
  347. 'FIN' liflo ;
  348. dtn = 'DIME' tn ;
  349. rhomo = 2. ; angle = 0. ; ouvert = 0. ;
  350. 'SI' ('>EG' dtn 1) ;
  351. rhomo = tn . 1 ;
  352. 'FINSI' ;
  353. 'SI' ('>EG' dtn 2) ;
  354. angle = tn . 2 ;
  355. 'FINSI' ;
  356. 'SI' ('>EG' dtn 3) ;
  357. ouvert = tn . 3 ;
  358. 'FINSI' ;
  359. n1 = '*' n1 2 ;
  360. n2 = '*' n2 2 ;
  361. *
  362. pAp = 1. ouvert ; pB = 0. 1. ; pC = -1. 0. ; pD = 0. -1. ;
  363. pAm = 1. ('*' ouvert -1.) ;
  364. pEp pEm pF pG pH = 'HOMOTHETIE' pAp pAm pB pC pD rhomo (0. 0.) ;
  365. pEp pEm pF pG pH = 'TOURNER' pEp pEm pF pG pH angle (0. 0.) ;
  366.  
  367. *
  368. lEG = 'CER3' n2 pEp pF pG ;
  369. lGE = 'CER3' n2 pG pH pEm ;
  370. lEA = 'DROIT' n3 pEm pAm ;
  371. lAC = 'CER3' n1 pAm pD pC ;
  372. lCA = 'CER3' n1 pC pB pAp ;
  373. lAE = 'DROIT' n3 pAp pEp ;
  374. cnt= LEG 'ET' lGE 'ET' lEA 'ET' lAC 'ET' lCA 'ET' lAE ;
  375. *
  376. 'FINSI' ;
  377. *
  378. * 'TOC2'
  379. *
  380. 'SI' ('EGA' imail 4) ;
  381. 'OPTI' 'DIME' 2 'ELEM' 'TRI3' ;
  382. tn = 'TABLE' ;
  383. 'REPETER' lient ;
  384. 'ARGUMENT' ient/'ENTIER' ;
  385. 'SI' ('EXISTE' ient) ;
  386. tn . &lient = ient ;
  387. 'SINON' ;
  388. 'QUITTER' lient ;
  389. 'FINSI' ;
  390. 'FIN' lient ;
  391. dtn = 'DIME' tn ;
  392. n1 = 2 ; n2 = n1 ; n3 = n1 ; n4 = n1 ;
  393. 'SI' ('EGA' dtn 1) ;
  394. n1 = tn . 1 ; n2 = n1 ; n3 = n1 ; n4 = n1 ;
  395. 'FINSI' ;
  396. 'SI' ('EGA' dtn 2) ;
  397. n1 = tn . 1 ; n2 = tn . 2 ; n3 = n1 ; n4 = n2 ;
  398. 'FINSI' ;
  399. 'SI' ('EGA' dtn 3) ;
  400. n1 = tn . 1 ; n2 = tn . 2 ; n3 = tn . 3 ; n4 = n2 ;
  401. 'FINSI' ;
  402. 'SI' ('EGA' dtn 4) ;
  403. n1 = tn . 1 ; n2 = tn . 2 ; n3 = tn . 3 ; n4 = tn . 4 ;
  404. 'FINSI' ;
  405. tn = 'TABLE' ;
  406. 'REPETER' liflo ;
  407. 'ARGUMENT' iflo/'FLOTTANT' ;
  408. 'SI' ('EXISTE' iflo) ;
  409. tn . &liflo = iflo ;
  410. 'SINON' ;
  411. 'QUITTER' liflo ;
  412. 'FINSI' ;
  413. 'FIN' liflo ;
  414. dtn = 'DIME' tn ;
  415. rhomo = 2. ; angle = 0. ; ouvert = 1.D-7 ;
  416. 'SI' ('>EG' dtn 1) ;
  417. rhomo = tn . 1 ;
  418. 'FINSI' ;
  419. 'SI' ('>EG' dtn 2) ;
  420. angle = tn . 2 ;
  421. 'FINSI' ;
  422. 'SI' ('>EG' dtn 3) ;
  423. ouvert = tn . 3 ;
  424. 'FINSI' ;
  425. *
  426. pAp = 1. ouvert ; pC = -1. 0. ;
  427. pAm = 1. ('*' ouvert -1.) ;
  428. pEp pEm pG = 'HOMOTHETIE' pAp pAm pC rhomo (0. 0.) ;
  429. pEp pEm pG = 'TOURNER' pEp pEm pG angle (0. 0.) ;
  430.  
  431. *
  432. cE = 'CER3' n1 pEp pG pEm ;
  433. lEA = 'DROIT' n2 pEm pAm ;
  434. cA = 'CER3' n3 pAm pC pAp ;
  435. lAE = 'DROIT' n4 pAp pEp ;
  436. cnt= cE 'ET' lEA 'ET' cA 'ET' lAE ;
  437. *
  438. 'FINSI' ;
  439. *
  440. * 'ISOC'
  441. *
  442. 'SI' ('EGA' imail 5) ;
  443. 'OPTI' 'DIME' 2 'ELEM' 'TRI3' ;
  444. tn = 'TABLE' ;
  445. 'REPETER' lient ;
  446. 'ARGUMENT' ient/'ENTIER' ;
  447. 'SI' ('EXISTE' ient) ;
  448. tn . &lient = ient ;
  449. 'SINON' ;
  450. 'QUITTER' lient ;
  451. 'FINSI' ;
  452. 'FIN' lient ;
  453. dtn = 'DIME' tn ;
  454. n1 = 2 ; n2 = n1 ; n3 = n1 ;
  455. 'SI' ('EGA' dtn 1) ;
  456. n1 = tn . 1 ; n2 = n1 ; n3 = n1 ;
  457. 'FINSI' ;
  458. 'SI' ('EGA' dtn 2) ;
  459. n1 = tn . 1 ; n2 = tn . 2 ; n3 = n1 ;
  460. 'FINSI' ;
  461. 'SI' ('EGA' dtn 3) ;
  462. n1 = tn . 1 ; n2 = tn . 2 ; n3 = tn . 3 ;
  463. 'FINSI' ;
  464. tn = 'TABLE' ;
  465. 'REPETER' liflo ;
  466. 'ARGUMENT' iflo/'FLOTTANT' ;
  467. 'SI' ('EXISTE' iflo) ;
  468. tn . &liflo = iflo ;
  469. 'SINON' ;
  470. 'QUITTER' liflo ;
  471. 'FINSI' ;
  472. 'FIN' liflo ;
  473. dtn = 'DIME' tn ;
  474. angle = 60. ;
  475. 'SI' ('>EG' dtn 1) ;
  476. angle = tn . 1 ;
  477. 'FINSI' ;
  478. *
  479. pA = 0. 0. ; pB = 1. 0. ; pc = ('COS' angle) ('SIN' angle) ;
  480. lAB = 'DROIT' n1 pA pB ;
  481. lBC = 'DROIT' n2 pB pC ;
  482. lCA = 'DROIT' n3 pC pA ;
  483. *
  484. cnt= lAB 'ET' lBC 'ET' lCA ;
  485. *
  486. 'FINSI' ;
  487. *
  488. * 'TETR' ou 'TETE'
  489. *
  490. 'SI' ('OU' ('EGA' imail 6) ('EGA' imail 13)) ;
  491. 'OPTI' 'DIME' 3 'ELEM' 'TET4' ;
  492. tn = 'TABLE' ;
  493. 'REPETER' lient ;
  494. 'ARGUMENT' ient/'ENTIER' ;
  495. 'SI' ('EXISTE' ient) ;
  496. tn . &lient = ient ;
  497. 'SINON' ;
  498. 'QUITTER' lient ;
  499. 'FINSI' ;
  500. 'FIN' lient ;
  501. dtn = 'DIME' tn ;
  502. n1 = 1 ; n2 = n1 ; n3 = n1 ;n4 = n1 ; n5 = n1 ; n6 = n1 ;
  503. 'SI' ('EGA' dtn 1) ;
  504. n1 = tn . 1 ;
  505. n2 = n1 ; n3 = n1 ;n4 = n1 ; n5 = n1 ; n6 = n1 ;
  506. 'FINSI' ;
  507. 'SI' ('EGA' dtn 2) ;
  508. n1 = tn . 1 ; n2 = tn . 2 ;
  509. n3 = n1 ;n4 = n1 ; n5 = n1 ; n6 = n1 ;
  510. 'FINSI' ;
  511. *
  512. 'SI' ('EGA' imail 6) ;
  513. pA = 0. 0. 0. ; pB = 1. 0. 0. ; pC = 0. 1. 0. ; pD = 0. 0. 1. ;
  514. 'FINS' ;
  515. 'SI' ('EGA' imail 13) ;
  516. uns2 = 0.5 ; muns2 = -0.5 ;
  517. unsr8 = 8. '**' -0.5 ; munsr8 = '*' unsr8 -1. ;
  518. pA = muns2 0. munsr8 ; pB = uns2 0. munsr8 ;
  519. pC = 0. uns2 unsr8 ; pD = 0. muns2 unsr8 ;
  520. 'FINS' ;
  521. * Aretes
  522. lAB = 'DROIT' n1 pA pB ;
  523. lBC = 'DROIT' n2 pB pC ;
  524. lCA = 'DROIT' n3 pC pA ;
  525. lBD = 'DROIT' n4 pB pD ;
  526. lDA = 'DROIT' n5 pD pA ;
  527. lCD = 'DROIT' n6 pC pD ;
  528. * Orientations importantes !! reprises de 'CHAN' 'SURFACE'
  529. * Faces ABC, BDC, CDA, ADB
  530. cABC = lAB 'ET' lBC 'ET' lCA ;
  531. cBDC = lBD 'ET' ('INVE' lCD) 'ET' ('INVE' lBC) ;
  532. cCDA = lCD 'ET' lDA 'ET' ('INVE' lCA) ;
  533. cADB = ('INVE' lDA) 'ET' ('INVE' lBD) 'ET' ('INVE' lAB) ;
  534. sABC = 'SURFACE' cABC 'PLANE' ;
  535. sBDC = 'SURFACE' cBDC 'PLANE' ;
  536. sCDA = 'SURFACE' cCDA 'PLANE' ;
  537. sADB = 'SURFACE' cADB 'PLANE' ;
  538. cnt = sABC 'ET' sBDC 'ET' sCDA 'ET' sADB ;
  539. *
  540. 'FINSI' ;
  541. *
  542. * 'CYCU' Un cylindre dans un cube 'CYCO' la meme chose mais bien orienté
  543. *
  544. 'SI' ('OU' ('EGA' imail 7) ('EGA' imail 18)) ;
  545. 'OPTI' 'DIME' 3 'ELEM' 'TET4' ;
  546. tn = 'TABLE' ;
  547. 'REPETER' lient ;
  548. 'ARGUMENT' ient/'ENTIER' ;
  549. 'SI' ('EXISTE' ient) ;
  550. tn . &lient = ient ;
  551. 'SINON' ;
  552. 'QUITTER' lient ;
  553. 'FINSI' ;
  554. 'FIN' lient ;
  555. dtn = 'DIME' tn ;
  556. n1 = 2 ; n2 = 1 ; n3 = 1 ;
  557. 'SI' ('EGA' dtn 1) ;
  558. n1 = tn . 1 ;
  559. n2 = n1 ; n3 = n1 ;
  560. 'FINSI' ;
  561. 'SI' ('EGA' dtn 2) ;
  562. n1 = tn . 1 ; n2 = tn . 2 ; n3 = n2 ;
  563. 'FINSI' ;
  564. 'SI' ('EGA' dtn 3) ;
  565. n1 = tn . 1 ; n2 = tn . 2 ; n3 = tn . 3 ;
  566. 'FINSI' ;
  567. *
  568. tn = 'TABLE' ;
  569. 'REPETER' liflo ;
  570. 'ARGUMENT' iflo/'FLOTTANT' ;
  571. 'SI' ('EXISTE' iflo) ;
  572. tn . &liflo = iflo ;
  573. 'SINON' ;
  574. 'QUITTER' liflo ;
  575. 'FINSI' ;
  576. 'FIN' liflo ;
  577. dtn = 'DIME' tn ;
  578. rcyl = 0.75 ; angle = 0. ;
  579. 'SI' ('>EG' dtn 1) ;
  580. rcyl = tn . 1 ;
  581. 'FINSI' ;
  582. 'SI' ('>EG' dtn 2) ;
  583. angle = tn . 2 ;
  584. 'FINSI' ;
  585. *
  586. mrcyl = ('*' rcyl -1.) ;
  587. pA = rcyl 0. 0. ; pB = 0. rcyl 0. ; pC = mrcyl 0. 0. ;
  588. pD = 0. mrcyl 0. ;
  589. pA pB pC pD = 'TOURNER' pA pB pC pD (0. 0. 0.) (0. 0. 1.) angle ;
  590. pE = 1. -1. 0. ; pF = 1. 1. 0. ; pG = -1. 1. 0. ; pH = -1. -1. 0. ;
  591. *
  592. ctc1 = 'CER3' n1 pA pB pC ; ctc2 = 'CER3' n1 pC pD pA ;
  593. cerb = ctc1 'ET' ctc2 ;
  594. carb = 'DROIT' n2 pE pF 'DROIT' n2 pG 'DROIT' n2 pH 'DROIT'
  595. n2 pE ;
  596. bas = 'SURFACE' ('ET' carb ('INVERSE' cerb)) 'PLANE' ;
  597. hau cerh carh = 'PLUS' bas cerb carb (0. 0. 2.) ;
  598. suri = 'REGLER' n3 cerb cerh ;
  599. sure = 'REGLER' n3 carb carh ;
  600. 'SI' ('EGA' imail 7) ;
  601. cnt = bas 'ET' hau 'ET' suri 'ET' sure ;
  602. 'FINS' ;
  603. 'SI' ('EGA' imail 18) ;
  604. cnt = bas 'ET' ('INVE' hau) 'ET' suri 'ET' ('INVE' sure) ;
  605. 'FINS' ;
  606. *
  607. 'FINSI' ;
  608. *
  609. * 'CERV' Cerveau
  610. *
  611. 'SI' ('EGA' imail 8) ;
  612. 'ERRE' 'Non disponible' ;
  613. * 'OPTI' 'REST' '/test4/gounand/rebecca/cerveauf42.sauv' ;
  614. cnt = bbord ;
  615. *
  616. 'FINSI' ;
  617. *
  618. * 'CRV2' Cerveau 2
  619. *
  620. 'SI' ('EGA' imail 9) ;
  621. 'ERRE' 'Non disponible' ;
  622. * 'OPTI' 'REST' '/test4/gounand/rebecca/cerv143_best.sauv' ;
  623. *
  624. 'FINSI' ;
  625. *
  626. * 'TRIE' Triangle Equilateral 'TRIR' Triangle Isocel rectangle
  627. *
  628. 'SI' ('OU' ('EGA' imail 10) ('EGA' imail 11)) ;
  629. 'OPTI' 'DIME' 2 'ELEM' 'TRI3' ;
  630. tn = 'TABLE' ;
  631. 'REPETER' lient ;
  632. 'ARGUMENT' ient/'ENTIER' ;
  633. 'SI' ('EXISTE' ient) ;
  634. tn . &lient = ient ;
  635. 'SINON' ;
  636. 'QUITTER' lient ;
  637. 'FINSI' ;
  638. 'FIN' lient ;
  639. dtn = 'DIME' tn ;
  640. n1 = 1 ; n2 = n1 ; n3 = n1 ;
  641. 'SI' ('EGA' dtn 1) ;
  642. n1 = tn . 1 ;
  643. n2 = n1 ; n3 = n1 ;
  644. 'FINSI' ;
  645. 'SI' ('EGA' dtn 2) ;
  646. n1 = tn . 1 ; n2 = tn . 2 ;
  647. n3 = n1 ;
  648. 'FINSI' ;
  649. 'SI' ('EGA' dtn 3) ;
  650. n1 = tn . 1 ; n2 = tn . 2 ;
  651. n3 = tn . 3 ;
  652. 'FINSI' ;
  653. 'SI' ('EGA' imail 10) ;
  654. pA = 0. 0. ; pB = 1. 0. ; pC = 0.5 ('SIN' 60.) ;
  655. 'FINSI' ;
  656. 'SI' ('EGA' imail 11) ;
  657. pA = 0. 0. ; pB = 1. 0. ; pC = 0. 1. ;
  658. 'FINSI' ;
  659. lAB = 'DROIT' n1 pA pB ;
  660. lBC = 'DROIT' n2 pB pC ;
  661. lCA = 'DROIT' n3 pC pA ;
  662. *
  663. cnt= lAB 'ET' lBC 'ET' lCA ;
  664. *
  665. 'FINSI' ;
  666. *
  667. * 'QUAD' Quadrangle
  668. *
  669. 'SI' ('EGA' imail 12) ;
  670. 'OPTI' 'DIME' 2 'ELEM' 'TRI3' ;
  671. tn = 'TABLE' ;
  672. 'REPETER' lient ;
  673. 'ARGUMENT' ient/'ENTIER' ;
  674. 'SI' ('EXISTE' ient) ;
  675. tn . &lient = ient ;
  676. 'SINON' ;
  677. 'QUITTER' lient ;
  678. 'FINSI' ;
  679. 'FIN' lient ;
  680. dtn = 'DIME' tn ;
  681. n1 = 1 ; n2 = n1 ; n3 = n1 ;
  682. 'SI' ('EGA' dtn 1) ;
  683. n1 = tn . 1 ;
  684. n2 = n1 ; n3 = n1 ; n4 = n1 ;
  685. 'FINSI' ;
  686. 'SI' ('EGA' dtn 2) ;
  687. n1 = tn . 1 ; n2 = tn . 2 ;
  688. n3 = n1 ; n4 = n2 ;
  689. 'FINSI' ;
  690. 'SI' ('EGA' dtn 3) ;
  691. n1 = tn . 1 ; n2 = tn . 2 ;
  692. n3 = tn . 3 ; n4 = n1 ;
  693. 'FINSI' ;
  694. 'SI' ('EGA' dtn 4) ;
  695. n1 = tn . 1 ; n2 = tn . 2 ;
  696. n3 = tn . 3 ; n4 = tn . 4 ;
  697. 'FINSI' ;
  698. pA = 0. 0. ; pB = 1. 0. ; pC = 1. 1. ; pD = 0. 1. ;
  699. lAB = 'DROIT' n1 pA pB ;
  700. lBC = 'DROIT' n2 pB pC ;
  701. lCD = 'DROIT' n3 pC pD ;
  702. lDA = 'DROIT' n4 pD pA ;
  703. *
  704. cnt= lAB 'ET' lBC 'ET' lCD 'ET' lDA ;
  705. *
  706. 'FINSI' ;
  707. *
  708. * 'CUBE' Cube
  709. *
  710. 'SI' ('EGA' imail 14) ;
  711. 'OPTI' 'DIME' 3 'ELEM' 'TET4' ;
  712. tn = 'TABLE' ;
  713. 'REPETER' lient ;
  714. 'ARGUMENT' ient/'ENTIER' ;
  715. 'SI' ('EXISTE' ient) ;
  716. tn . &lient = ient ;
  717. 'SINON' ;
  718. 'QUITTER' lient ;
  719. 'FINSI' ;
  720. 'FIN' lient ;
  721. dtn = 'DIME' tn ;
  722. 'SI' ('EGA' dtn 1) ;
  723. n1 = tn . 1 ;
  724. 'SINO' ;
  725. 'ERRE' 5 ;
  726. 'FINSI' ;
  727. *
  728. pA = 0. 0. 0. ; pB = 1. 0. 0. ; pC = 1. 1. 0. ; pD = 0. 1. 0. ;
  729. pE = 0. 0. 1. ; pF = 1. 0. 1. ; pG = 1. 1. 1. ; pH = 0. 1. 1. ;
  730. * Aretes
  731. lAB = 'DROIT' n1 pA pB ;
  732. lBC = 'DROIT' n1 pB pC ;
  733. lCD = 'DROIT' n1 pC pD ;
  734. lDA = 'DROIT' n1 pD pA ;
  735. *
  736. lEF = 'DROIT' n1 pE pF ;
  737. lFG = 'DROIT' n1 pF pG ;
  738. lGH = 'DROIT' n1 pG pH ;
  739. lHE = 'DROIT' n1 pH pE ;
  740. *
  741. lAE = 'DROIT' n1 pA pE ;
  742. lBF = 'DROIT' n1 pB pF ;
  743. lCG = 'DROIT' n1 pC pG ;
  744. lDH = 'DROIT' n1 pD pH ;
  745. *
  746. * Orientations importantes !! reprises de 'CHAN' 'SURFACE'
  747. * Faces EHGF, DCGH, BFGC, ADHE, AEFB, ABCD
  748. cEHGF = ('INVE' lHE) 'ET' ('INVE' lGH) 'ET' ('INVE' lFG) 'ET'
  749. ('INVE' lEF) ;
  750. cDCGH = ('INVE' lCD) 'ET' lCG 'ET' lGH 'ET' ('INVE' lDH) ;
  751. cBFGC = lBF 'ET' lFG 'ET' ('INVE' lCG) 'ET' ('INVE' lBC) ;
  752. cADHE = ('INVE' lDA) 'ET' lDH 'ET' lHE 'ET' ('INVE' lAE) ;
  753. cAEFB = lAE 'ET' lEF 'ET' ('INVE' lBF) 'ET' ('INVE' lAB) ;
  754. cABCD = lAB 'ET' lBC 'ET' lCD 'ET' lDA ;
  755. *
  756. sEHGF = 'SURF' cEHGF 'PLANE' ;
  757. sDCGH = 'SURF' cDCGH 'PLANE' ;
  758. sBFGC = 'SURF' cBFGC 'PLANE' ;
  759. sADHE = 'SURF' cADHE 'PLANE' ;
  760. sAEFB = 'SURF' cAEFB 'PLANE' ;
  761. sABCD = 'SURF' cABCD 'PLANE' ;
  762.  
  763. cnt= sEHGF 'ET' sDCGH 'ET' sBFGC 'ET' sADHE 'ET' sAEFB 'ET' sABCD ;
  764. *
  765. 'FINSI' ;
  766. *
  767. * 'SEL3' Equivalent de SELL en 3D
  768. *
  769. 'SI' ('EGA' imail 15) ;
  770. 'OPTI' 'DIME' 3 'ELEM' 'TET4' ;
  771. tn = 'TABLE' ;
  772. 'REPETER' lient ;
  773. 'ARGUMENT' ient/'ENTIER' ;
  774. 'SI' ('EXISTE' ient) ;
  775. tn . &lient = ient ;
  776. 'SINON' ;
  777. 'QUITTER' lient ;
  778. 'FINSI' ;
  779. 'FIN' lient ;
  780. dtn = 'DIME' tn ;
  781. 'SI' ('EGA' dtn 1) ;
  782. n1 = tn . 1 ;
  783. 'SINO' ;
  784. 'ERRE' 5 ;
  785. 'FINSI' ;
  786. *
  787. uns2 = 0.5 ; muns2 = -0.5 ;
  788. unsr8 = 8. '**' -0.5 ; munsr8 = '*' unsr8 -1. ;
  789. pA = muns2 0. munsr8 ; pB = uns2 0. munsr8 ;
  790. pC = 0. uns2 unsr8 ; pD = 0. muns2 unsr8 ;
  791. pE pF = 'HOMO' pA pB 2. ('BARY' (pC 'ET' pD)) ;
  792. * Aretes
  793. lAB = 'DROIT' n1 pA pB ;
  794. lBC = 'DROIT' n1 pB pC ;
  795. lCA = 'DROIT' n1 pC pA ;
  796. lBD = 'DROIT' n1 pB pD ;
  797. lDA = 'DROIT' n1 pD pA ;
  798. *
  799. lEF = 'DROIT' n1 pE pF ;
  800. lFC = 'DROIT' n1 pF pC ;
  801. lCE = 'DROIT' n1 pC pE ;
  802. lFD = 'DROIT' n1 pF pD ;
  803. lDE = 'DROIT' n1 pD pE ;
  804. * Orientations importantes !! reprises de 'CHAN' 'SURFACE'
  805. * Faces EFC, FDBC, ECAD, EDF
  806. * Faces CBA, ABD
  807. cEFC = lEF 'ET' lFC 'ET' lCE ;
  808. cFDBC = lFD 'ET' ('INVE' lBD) 'ET' lBC 'ET' ('INVE' lFC) ;
  809. cECAD = ('INVE' lCE) 'ET' lCA 'ET' ('INVE' lDA) 'ET' lDE ;
  810. cEDF = ('INVE' lDE) 'ET' ('INVE' lFD) 'ET' ('INVE' lEF) ;
  811. cCBA = ('INVE' lBC) 'ET' ('INVE' lAB) 'ET' ('INVE' lCA) ;
  812. cABD = lAB 'ET' lBD 'ET' lDA ;
  813.  
  814. *
  815. sEFC = 'SURF' cEFC 'PLANE' ;
  816. sFDBC = 'SURF' cFDBC 'PLANE' ;
  817. sECAD = 'SURF' cECAD 'PLANE' ;
  818. sEDF = 'SURF' cEDF 'PLANE' ;
  819. sCBA = 'SURF' cCBA 'PLANE' ;
  820. sABD = 'SURF' cABD 'PLANE' ;
  821. *
  822. cnt = sEFC 'ET' sFDBC 'ET' sECAD 'ET' sEDF 'ET' sCBA 'ET' sABD ;
  823. *
  824. 'FINSI' ;
  825. *
  826. * 'CYC2' Raccourci pour les arguments de CYCU
  827. *
  828. 'SI' ('EGA' imail 16) ;
  829. 'ARGU' ient*'ENTIER' ;
  830. *
  831. * 'MESS' 'Avant appel' ;
  832. cnt = GENCONT 'CYCO' ('*' ient 2) ient ient
  833. 0.88 5. ;
  834. * 'MESS' 'Apres appel' ;
  835. *
  836. 'FINSI' ;
  837. *
  838. * 'TOC3' Raccourci pour les arguments de TOCO
  839. *
  840. 'SI' ('EGA' imail 17) ;
  841. 'ARGU' ient*'ENTIER' ;
  842. *
  843. cnt = GENCONT 'TOCO' ient 2. 0. 0.001 ;
  844. *
  845. 'FINSI' ;
  846. *
  847. * 'TOR2' Raccourci pour les arguments de TORE
  848. *
  849. 'SI' ('EGA' imail 19) ;
  850. 'ARGU' ient*'ENTIER' ;
  851. *
  852. cnt = GENCONT 'TORE' ient 2. 5. ;
  853. *
  854. 'FINSI' ;
  855. *
  856. 'RESPRO' cnt ;
  857. *
  858. * End of procedure file GENCONT
  859. *
  860. 'FINPROC' ;
  861. *
  862. * Fin Procedures
  863. *
  864. * lgentest = vrai : On génère la base sous forme de .sauv
  865. * lgentest = faux : On lit la base et on vérifie.
  866. lgentest = vrai ;
  867. lsauv = faux ;
  868. *
  869. tbas = 'TABL' ; ibas = 0 ;
  870. *
  871. * On ne peut pas encore faire isens=1 pour cause de pas de 'INVE' LIST
  872. *
  873. *
  874. *
  875. ibas = ibas '+' 1 ; tbas . ibas = 'TABL' ; tibas = tbas . ibas ;
  876. tibas . 'nombase' = 'mailtopo_2d_fast' ;
  877. tibas . 'nomdate' = '20171218_135310' ;
  878. * Pas de cas en erreur dans cette base
  879. * Le cas 44 / 96 r3cTOC3d1 TRIA TOPO AJNO BORD ne converge pas sur le volume
  880. * Le cas 45 / 96 r3cTOC3d2 TRIA TOPO AJNO BORD ne converge pas sur le volume
  881. tibas . 'lkerrref' = 'LECT' 44 45 ;
  882. tibas . 'lcvgrref' = 'LECT' ;
  883. *
  884. ibas = ibas '+' 1 ; tbas . ibas = 'TABL' ; tibas = tbas . ibas ;
  885. tibas . 'nombase' = 'mailtopo_2d_slow' ;
  886. tibas . 'nomdate' = '20171218_135311' ;
  887. * Le cas 5 / 42 r1cTOC3d3 TRIA TOPO NOAJ ne converge pas sur le volume
  888. * Le cas 17 / 42 r3cTOC3d3 TRIA TOPO AJNO BORD ne converge pas sur le volume
  889. * Le cas 18 / 42 r3cTOC3d4 TRIA TOPO AJNO BORD ne converge pas sur le volume
  890. tibas . 'lkerrref' = 'LECT' 5 17 18 ;
  891. tibas . 'lcvgrref' = 'LECT' ;
  892. *
  893. ibas = ibas '+' 1 ; tbas . ibas = 'TABL' ; tibas = tbas . ibas ;
  894. tibas . 'nombase' = 'mailtopo_3d_fast' ;
  895. tibas . 'nomdate' = '20171218_135312' ;
  896. * Le cas 30 r4cSEL3d2 perd son bord (a regarder)
  897. *tibas . 'lkerrref' = 'LECT' 30 ;
  898. * Depuis l'implementation des noeuds virtuels multiples
  899. * (2025-11-19) : plus de pbs.
  900. * Le cas : 21 / 48 r3cSEL3d1 TRIA TOPO AJNO BORD Bord non simple et ne converge pas sur le volume
  901. tibas . 'lkerrref' = 'LECT' 21 ;
  902. * Le cas : 32 / 48 r4cCYC2d2 REMA AJNO ne convergeait pas.
  903. * 2026/01/06 : plus de pbs avec JCRIT=4 ou 5 dans quali6.eso
  904. tibas . 'lcvgrref' = 'LECT' ;
  905. *
  906. ibas = ibas '+' 1 ; tbas . ibas = 'TABL' ; tibas = tbas . ibas ;
  907. tibas . 'nombase' = 'mailtopo_3d_slow' ;
  908. tibas . 'nomdate' = '20171218_135318' ;
  909. * Pas de cas en erreur dans cette base
  910. * Le cas : 12 / 24 r3cCYC2d3 TRIA TOPO AJNO BORD 4 elements de volume nul
  911. * 2026/01/05 : Suite au parcours des topologies de volume nul dans topv2
  912. * Le cas 12 remarche
  913. tibas . 'lkerrref' = 'LECT' ;
  914. * Le cas : 22 / 24 r6cCUBEd3 REMA AJNO ne convergeait pas.
  915. * 2026/01/06 : plus de pbs avec JCRIT=4 ou 5 dans quali6.eso
  916. tibas . 'lcvgrref' = 'LECT' ;
  917. 'SI' faux ;
  918. 'FINS' ;
  919. *
  920. 'OPTI' debu 0 echo 0 ;
  921. 'SI' interact ;
  922. 'OPTI' 'TRAC' 'X' ;
  923. 'SINO' ;
  924. 'OPTI' 'TRAC' 'PSC' ;
  925. 'FINS' ;
  926. *
  927. * Paramètres globaux
  928. *
  929. * lsyntax = 2 : passage de la densité constante à l'opérateur sous forme
  930. * d'un réel
  931. * lsyntax = 3 : passage de la densité constante à l'opérateur sous forme
  932. * d'un chpoint à une composante (inverse du tenseur
  933. * métrique proportionnel à I diagonal)
  934. * lsyntax = 4 : passage de la densité constante à l'opérateur sous forme
  935. * d'un chpoint à d(d+1)/2 composantes (tenseur
  936. * anisotrope en x y z)
  937. *
  938. lsyntax = 4 ;
  939. *
  940. nsoucbas = 0 ;
  941. ncvgbas = 0 ;
  942. *
  943. nbas = 'DIME' tbas ;
  944. *!! nbas = 1 ;
  945. 'REPE' bclbas nbas;
  946. ibas = &bclbas ;
  947. *!! ibas=3 ;
  948. tibas = tbas . ibas ;
  949. nombase = tibas . 'nombase' ;
  950. nomdate = tibas . 'nomdate' ;
  951. lcaserr = 'LECT' ;
  952. lcvgerr = 'LECT' ;
  953. *
  954. mmdat = mydate ;
  955. 'SI' ('NON' interact) ;
  956. 'OPTI' 'TRAC' 'PSC' ;
  957. 'SI' lsauv ;
  958. nomfic = 'CHAI' 'sauv/' nombase '_' mmdat
  959. '.ps' ;
  960. 'MESS' ('CHAI' 'Fichier image' ' ' nomfic) ;
  961. 'OPTI' 'FTRA' nomfic ;
  962. 'OPTI' 'ECHO' 0 ;
  963. nomfic = 'CHAI' 'sauv/' nombase '_' mmdat
  964. '.txt' ;
  965. 'MESS' ('CHAI' 'Fichier echo' ' ' nomfic) ;
  966. oimpr = 'VALE' 'IMPR' ;
  967. 'OPTI' 'IMPR' 10 'IMPR' nomfic ;
  968. * 'SINO' ;
  969. * nomfic = 'CHAI' nombase '_' mmdat '.ps' ;
  970. * 'MESS' ('CHAI' 'Fichier image ' nomfic) ;
  971. * 'OPTI' 'FTRA' nomfic ;
  972. 'FINS' ;
  973. 'FINSI' ;
  974. *
  975. **************************************************************************
  976. * Début JDD
  977. *
  978. * DESCRIPTION : IJOB=0
  979. * Minimise le volume d'une topologie de maillage
  980. * en le maintenant supérieur à 0
  981. * IJOB=1
  982. * Minimise le volume, mais on a le droit d'ajouter/supprimer
  983. * des noeuds internes
  984. * IJOB=2
  985. * Minimise le volume, mais on a le droit d'ajouter/supprimer
  986. * des noeuds internes et au bord
  987. * IJOB=3
  988. * La topologie de maillage est supposée être un maillage
  989. * On essaie de l'améliorer en conservant son volume
  990. * mais en augmentant sa qualité grace a l'adjonction
  991. * de noeuds internes
  992. *
  993. tikas = GENTEST nombase ;
  994. tibas . 'tikas' = tikas ;
  995. *
  996. * Boucle de test
  997. *
  998. vdim = 'VALE' 'DIME' ;
  999. 'SI' ('ET' interact ('EGA' vdim 3)) ; 'OPTI' 'TRAC' 'OPEN' ; 'FINS' ;
  1000. nkas = 'DIME' tikas ;
  1001. 'SAUT' 2 'LIGNE' ;
  1002. 'MESS' '****************************************************************' ;
  1003. 'MESS' ' ' nombase ' :' ' ' nkas ' cas' ;
  1004. 'MESS' '****************************************************************' ;
  1005. 'SAUT' 2 'LIGNE' ;
  1006. nsouckas = 0 ;
  1007. ncvgkas = 0 ;
  1008.  
  1009. *!!nkas = 1;
  1010. 'REPE' bkas nkas ;
  1011. * Récupération des données du test
  1012. ikas = &bkas ;
  1013. *!! ikas = 32 ;
  1014. tloc = tikas . ikas ;
  1015. topoini = tloc . 'topoini' ;
  1016. lcar = tloc . 'lcar' ;
  1017. ijob = tloc . 'ijob' ;
  1018. idk = tloc . 'idk' ;
  1019. 'SAUT' 1 'LIGN' ;
  1020. 'MESS' ('CHAI' 'Numero du cas :' ' ' ikas ' /' ' ' nkas ' ' idk ' ' nombase) ;
  1021. *RESUPAR ;
  1022. 'SAUT' 1 'LIGN' ;
  1023. *
  1024. 'SI' ('EGA' ijob 3) ;
  1025. 'SI' ('EGA' lsyntax 2) ;
  1026. metmo = 'CSTE' ;
  1027. metva = lcar ;
  1028. 'FINS' ;
  1029. 'SI' ('EGA' lsyntax 3) ;
  1030. metmo = 'ISOT' ;
  1031. coef = lcar '**' -2 ;
  1032. metva = 'MANU' 'CHPO' topoini 1 'G' coef 'NATURE' 'DIFFUSE' ;
  1033. 'FINS' ;
  1034. 'SI' ('EGA' lsyntax 4) ;
  1035. metmo = 'CHAI' 'ANIS' ;
  1036. coef = lcar '**' -2 ;
  1037. 'SI' ('EGA' vdim 2) ;
  1038. metva = 'MANU' 'CHPO' topoini 3 'G11' coef 'G21' 0. 'G22' coef
  1039. 'NATURE' 'DIFFUSE' ;
  1040. 'SINO' ;
  1041. metva = 'MANU' 'CHPO' topoini 6 'G11' coef 'G21' 0. 'G22' coef
  1042. 'G31' 0. 'G32' 0. 'G33' coef 'NATURE' 'DIFFUSE' ;
  1043. 'FINS' ;
  1044. 'FINS' ;
  1045. 'FINS' ;
  1046. *
  1047. * Comme les tests sont un peu coûteux, on ne verifie que la base 1
  1048. 'SI' ('EGA' ibas 1) ;
  1049. iseqm = 1 ; vseqm = 1 ;
  1050. iopto = 0 ; vopto = 2 ; isegadj = 0 ;
  1051. 'SINO' ;
  1052. iseqm = 0 ; vseqm = 0 ;
  1053. iopto = 0 ; vopto = 0 ; isegadj = 0 ;
  1054. 'FINS' ;
  1055. tparam = 'TABL' ;
  1056. * Optionnel
  1057. tparam . 'impr' = impr ;
  1058. tparam . 'graph' = graph ;
  1059. tparam . 'id_cas' = idk ;
  1060. tparam . 'max_iter' = 100 ;
  1061. tparam . 'sort_seqm' = iseqm ;
  1062. tparam . 'veri_seqm' = vseqm ;
  1063. tparam . 'veri_opto' = vopto ;
  1064. tparam . 'impr_opto' = iopto ;
  1065. tparam . 'impr_segadj_opto' = isegadj ;
  1066. tparam . 'strat_fast' = faux ;
  1067. *
  1068. 'SOUC' 0 ;
  1069. 'OPTI' debu 0 ;
  1070. *
  1071. 'SI' ('EGA' ijob 0) ;
  1072. 'MESS' 'Appel TRIA TOPO NOAJ' ;
  1073. curtopo = 'TRIA' 'TOPO' topoini 'NOAJ' tparam ;
  1074. 'FINS' ;
  1075. 'SI' ('EGA' ijob 1) ;
  1076. 'MESS' 'Appel TRIA TOPO AJNO' ;
  1077. curtopo = 'TRIA' 'TOPO' topoini 'AJNO' tparam ;
  1078. 'FINS' ;
  1079. 'SI' ('EGA' ijob 2) ;
  1080. 'MESS' 'Appel TRIA TOPO AJNO BORD' ;
  1081. curtopo = 'TRIA' 'TOPO' topoini ('VIDE' 'MAILLAGE') 'AJNO' tparam ;
  1082. 'FINS' ;
  1083. 'SI' ('EGA' ijob 3) ;
  1084. 'MESS' 'Appel REMA AJNO' ;
  1085. curtopo metvan = 'REMA' topoini metva 'IPOL' 'AJNO' tparam ;
  1086. 'FINS' ;
  1087. 'SI' ('NEG' ijob 3) ;
  1088. qcurtopo = 'INDI' 'EQLT' curtopo ;
  1089. miqa meqa maqa = MIMEMA qcurtopo 'EQLT' ;
  1090. 'MESS' 'FORMAT' '(E9.2)' idk ' Qeqltmin=' miqa ' Qeqltmed=' meqa ' Qeqltmax=' maqa ;
  1091. 'SINO' ;
  1092. qcurtopo = 'INDI' 'COHE' 'DENS' curtopo metvan ;
  1093. miqa meqa maqa = MIMEMA qcurtopo 'COHE' ;
  1094. 'MESS' 'FORMAT' '(E9.2)' idk ' Qcohemin=' miqa ' Qcohemed=' meqa ' Qcohemax=' maqa ;
  1095. miqe meqe maqe = MIMEMA qcurtopo 'DENS' ;
  1096. 'MESS' 'FORMAT' '(E9.2)' idk ' Qdensmin=' miqe ' Qdensmed=' meqe ' Qdensmax=' maqe ;
  1097. 'FINS' ;
  1098. *
  1099. nctelem = 'NBEL' curtopo ;
  1100. nctno = 'NBNO' curtopo ;
  1101. *
  1102. sc = 'SOUC' ;
  1103. 'SI' sc ;
  1104. nsouckas = nsouckas '+' 1 ;
  1105. nsoucbas = nsoucbas '+' 1 ;
  1106. lcaserr = lcaserr 'ET' ikas ;
  1107. 'FINS' ;
  1108. lcvg = tparam . 'cvg' ;
  1109. 'SI' ('NON' lcvg) ;
  1110. ncvgkas = ncvgkas '+' 1 ;
  1111. ncvgbas = ncvgbas '+' 1 ;
  1112. lcvgerr = lcvgerr 'ET' ikas ;
  1113. 'FINS' ;
  1114. tloc . 'souci' = sc ;
  1115. tloc . 'cvg' = cvg ;
  1116. tloc . 'tstelem' = nctelem ;
  1117. tloc . 'tstnoeu' = nctno ;
  1118. tloc . 'tstparcou' = tparam . 'nparcou' ;
  1119. tloc . 'tstexplor' = tparam . 'nexplor' ;
  1120. tloc . 'tstchange' = tparam . 'nchange' ;
  1121. *
  1122. tloc . 'tstdvol' = tparam . 'dvol' ;
  1123. tloc . 'tstnnul' = tparam . 'nnul' ;
  1124. tloc . 'tstmiq' = tparam . 'miq' ;
  1125. tloc . 'tstmaq' = tparam . 'maq' ;
  1126. tloc . 'tstmeq' = tparam . 'meq' ;
  1127. *
  1128. tibas . 'lcaserr' = lcaserr ;
  1129. tibas . 'lcvgerr' = lcvgerr ;
  1130. * Fin de la boucle sur les cas
  1131. 'FIN' bkas ;
  1132.  
  1133. 'SI' ('>' nsouckas 0) ;
  1134. 'MESS' '!!!! Il y a' ' ' nsouckas ' /' ' ' nkas ' cas en erreur dans la base' ' ' nombase ' :' ;
  1135. txt = ' ' ;
  1136. 'REPE' iierr ('DIME' lcaserr) ;
  1137. ierr = &iierr ;
  1138. icas = 'EXTR' lcaserr ierr ;
  1139. idk = tikas . icas . 'idk' ;
  1140. txt = 'CHAI' txt ' ' '(' icas ' ' idk ')' ;
  1141. 'FIN' iierr ;
  1142. 'MESS' txt ;
  1143. 'SINO' ;
  1144. 'MESS' 'Aucun cas en erreur dans la base' ' ' nombase '. Bravo !' ;
  1145. 'FINS' ;
  1146. *
  1147. 'SI' ('>' ncvgkas 0) ;
  1148. 'MESS' '!!! Il y a' ' ' ncvgkas ' /' ' ' nkas ' cas en non-convergence dans la base' ' ' nombase ;
  1149. txt = ' ' ;
  1150. 'REPE' iierr ('DIME' lcvgerr) ;
  1151. ierr = &iierr ;
  1152. icas = 'EXTR' lcvgerr ierr ;
  1153. idk = tikas . icas . 'idk' ;
  1154. txt = 'CHAI' txt ' ' '(' icas ' ' idk ')' ;
  1155. 'FIN' iierr ;
  1156. 'MESS' txt ;
  1157. 'SINO' ;
  1158. 'MESS' 'Aucun cas en non-convergence dans la base' ' ' nombase '. Bravo !' ;
  1159. 'FINS' ;
  1160. *
  1161. * Sauvegarde éventuelle
  1162. *
  1163. *'OPTI' echo 1 ;
  1164. *
  1165. *'SI' lsauv ;
  1166. * 'TEMP' 'IMPR' 'SOMM' 'CPU' ;
  1167. 'SAUTER' 1 'LIGNE' ;
  1168. * 'TEMP' 'PLAC' ;
  1169. * 'SAUTER' 1 'LIGNE' ;
  1170. *'FINS' ;
  1171. *
  1172. 'SI' lgentest ;
  1173. 'SI' lsauv ;
  1174. nomfic = 'CHAI' 'sauv/' nombase '_' (mydate) '.sauv' ;
  1175. 'MESS' ('CHAI' 'Saving ' nomfic) ;
  1176. 'OPTI' 'SAUV' nomfic ;
  1177. lgg1 = lgentest ; lgg2 = lsauv ; lgg3 = nombase ;
  1178. lgg4 = nomdate ; lgg5 = nomfic ;
  1179. 'OUBL' lgentest ; 'OUBL' lsauv ; 'OUBL' nombase ;
  1180. 'OUBL' nomdate ; 'OUBL' nomfic ;
  1181. 'SAUV' tikas ;
  1182. lgentest = lgg1 ; lsauv = lgg2 ; nombase = lgg3 ;
  1183. nomdate = lgg4 ; nomfic = lgg5 ;
  1184. 'FINS' ;
  1185. *
  1186. * Etape de test
  1187. *
  1188. 'SINO' ;
  1189. tikasn = tikas ;
  1190. nomfic = 'CHAI' 'sauv/' nombase '_' nomdate '.sauv' ;
  1191. 'MESS' ('CHAI' 'Loading ' nomfic) ;
  1192. 'OPTI' 'REST' nomfic ;
  1193. lgg6 = debug ; lgg7 = test ;
  1194. 'REST' ;
  1195. debug = lgg6 ; test = lgg7 ;
  1196. *
  1197. nkasn = 'DIME' tikasn ;
  1198. nkas = 'DIME' tikas ;
  1199. *tst nkasn = 1 ; nkas = 1 ;
  1200. 'SI' ('NEG' nkas nkasn) ;
  1201. cherr = 'CHAI' 'Les tables a comparer nont pas meme dimension ?' ;
  1202. 'ERRE' cherr ;
  1203. 'FINS' ;
  1204. lidglob = vrai ;
  1205. lokglob = vrai ;
  1206. 'REPE' bkas nkas ;
  1207. ikas = &bkas ;
  1208. *tst ikas = 3 ;
  1209. * 'MESS' ('CHAI' 'Numero du cas : ' ikas ' / ' nkas) ;
  1210. chcas = 'CHAI' 'Numero du cas : ' ikas ' / ' nkas ;
  1211. tlocn = tikasn . ikas ;
  1212. tloc = tikas . ikas ;
  1213. idkn = tlocn . 'idk' ;
  1214. idk = tloc . 'idk' ;
  1215. 'SI' ('NEG' idkn idk) ;
  1216. cherr = 'CHAI' chcas ' '
  1217. 'Les cas a comparer sont differents ? : ' idk ' ' idkn ;
  1218. 'ERRE' cherr ;
  1219. 'FINS' ;
  1220. vsouci = tloc . 'souci' ;
  1221. vcvg = tloc . 'cvg' ;
  1222. vnctelem = tloc . 'tstelem' ;
  1223. vnctno = tloc . 'tstnoeu' ;
  1224. vnparcou = tloc . 'tstparcou' ;
  1225. vnexplor = tloc . 'tstexplor' ;
  1226. vnchange = tloc . 'tstchange' ;
  1227. souci = tlocn . 'souci' ;
  1228. nctelem = tlocn . 'tstelem' ;
  1229. nctno = tlocn . 'tstnoeu' ;
  1230. nparcou = tlocn . 'tstparcou' ;
  1231. nexplor = tlocn . 'tstexplor' ;
  1232. nchange = tlocn . 'tstchange' ;
  1233. *
  1234. * 2017/12/04 Petite tolérance sur les nombres de configuration
  1235. *
  1236. ntol=1 ;
  1237.  
  1238. lid = vrai ;
  1239. lid = lid 'ET' ('EGA' vsouci souci) ;
  1240. lid = lid 'ET' ('EGA' vnctelem nctelem) ;
  1241. lid = lid 'ET' ('EGA' vnctno nctno) ;
  1242. lid = lid 'ET' ('EGA' vnparcou nparcou) ;
  1243. lid = lid 'ET' ('EGA' vnexplor nexplor) ;
  1244. lid = lid 'ET' ('EGA' vnchange nchange) ;
  1245. lok = vrai ;
  1246. lok = lok 'ET' ('OU' ('EGA' vsouci souci) vsouci) ;
  1247. lok = lok 'ET' ('EGA' vnctelem nctelem) ;
  1248. lok = lok 'ET' ('EGA' vnctno nctno) ;
  1249. lok = lok 'ET' ('>EG' vnparcou ('-' nparcou ntol)) ;
  1250. lok = lok 'ET' ('>EG' vnexplor ('-' nexplor ntol)) ;
  1251. * lok = lok 'ET' ('EGA' vnchange nchange) ;
  1252. lok = lok 'ET' ('>EG' vnchange ('-' nchange ntol)) ;
  1253. * 2eme partie des tests ajoutés après le 28/08/2017
  1254. ltest2 = 'EXIS' tloc 'tstdvol' ;
  1255. 'SI' ltest2 ;
  1256. * 'MESS' '2eme partie des tests effectuee' ;
  1257. vdvol = tloc . 'tstdvol' ;
  1258. vnnul = tloc . 'tstnnul' ;
  1259. vmiq = tloc . 'tstmiq' ;
  1260. vmaq = tloc . 'tstmaq' ;
  1261. vmeq = tloc . 'tstmeq' ;
  1262. dvol = tlocn . 'tstdvol' ;
  1263. nnul = tlocn . 'tstnnul' ;
  1264. miq = tlocn . 'tstmiq' ;
  1265. maq = tlocn . 'tstmaq' ;
  1266. meq = tlocn . 'tstmeq' ;
  1267. *2017/12/04 On n'essaie pas de faire mieux que la tolérance par défaut
  1268. * sur la qualité et le volume
  1269. votol = 1.D-11 ;
  1270. qutol = 1.D-2 ;
  1271. *tst vmiq = vmiq '+' 1.D-10 ;
  1272. lid = lid 'ET' ('EGA' vdvol dvol votol) ;
  1273. lid = lid 'ET' ('EGA' vnnul nnul) ;
  1274. lid = lid 'ET' ('EGA' vmiq miq qutol) ;
  1275. lid = lid 'ET' ('EGA' vmaq maq qutol) ;
  1276. lid = lid 'ET' ('EGA' vmeq meq qutol) ;
  1277. *
  1278. lok = lok 'ET' ('EGA' vdvol dvol votol) ;
  1279. lok = lok 'ET' ('EGA' vnnul nnul) ;
  1280. lok = lok 'ET' ('&lt;EG' ('-' vmiq qutol) miq) ;
  1281. lok = lok 'ET' ('&lt;EG' ('-' vmaq qutol) maq) ;
  1282. lok = lok 'ET' ('&lt;EG' ('-' vmeq qutol) meq) ;
  1283. 'SINO' ;
  1284. 'MESS'
  1285. '!! ' chcas
  1286. ' Attention, on na pas fait la 2eme partie des tests';
  1287. 'FINS' ;
  1288.  
  1289. lidglob = lidglob 'ET' lid ;
  1290. lokglob = lokglob 'ET' lok ;
  1291.  
  1292. 'SI' ('OU' ('NON' lid) ('NON' lok)) ;
  1293. 'SI' ('NON' lok) ;
  1294. ch = 'CHAI' 'Cas ' idk ' incorrect, on a :' ;
  1295. 'SINO' ;
  1296. ch = 'CHAI' 'Cas ' idk ' ameliore, on a :' ;
  1297. 'FINS' ;
  1298. 'MESS' chcas ' ' ch ;
  1299. tit = 'CHAINE' 'nbel=' nctelem ' ; nbno=' nctno ;
  1300. 'MESS' tit ;
  1301. titt = 'CHAINE' 'Topologie: parcourues=' nparcou
  1302. ' examinees=' nexplor
  1303. ' changees=' nchange ;
  1304. 'MESSAGE' titt ;
  1305. 'SI' ltest2 ;
  1306. titq = 'CHAINE' 'FORMAT' '(E9.2)'
  1307. ' Dvol=' dvol ' NelV0=' nnul
  1308. ' Qmin=' miq ' Qmax=' maq ' Qmed=' meq ;
  1309. 'MESS' titq ;
  1310. 'FINS' ;
  1311. ch = 'CHAI' 'Cas ' idk ' la reference etait :' ;
  1312. 'MESS' ch ;
  1313. tit = 'CHAINE' 'nbel=' vnctelem ' ; nbno=' vnctno ;
  1314. 'MESS' tit ;
  1315. titt = 'CHAINE' 'Topologie: parcourues=' vnparcou
  1316. ' examinees=' vnexplor
  1317. ' changees=' vnchange ;
  1318. 'MESSAGE' titt ;
  1319. 'SI' ltest2 ;
  1320. titq = 'CHAINE' 'FORMAT' '(E9.2)'
  1321. ' Dvol=' vdvol ' NelV0=' vnnul
  1322. ' Qmin=' vmiq ' Qmax=' vmaq ' Qmed=' vmeq ;
  1323. 'MESS' titq ;
  1324. 'FINS' ;
  1325. ch = 'CHAI' 'Cas ' idk ' difference :' ;
  1326. 'MESS' ch ;
  1327. tit = 'CHAINE' 'dnbe=' ('-' nctelem vnctelem)
  1328. ' ; dnbn=' ('-' nctno vnctno) ;
  1329. 'MESS' tit ;
  1330. titt = 'CHAINE' 'Topologie: parcourues=' ('-' nparcou vnparcou)
  1331. ' examinees=' ('-' nexplor vnexplor)
  1332. ' changees=' ('-' nchange vnchange) ;
  1333. 'MESSAGE' titt ;
  1334. 'SI' ltest2 ;
  1335. titdq = 'CHAINE' 'FORMAT' '(E9.2)'
  1336. ' DDvo=' ('-' dvol vdvol)
  1337. ' DQmi=' ('-' miq vmiq)
  1338. ' DQma=' ('-' maq vmaq)
  1339. ' DQme=' ('-' meq vmeq) ;
  1340. 'MESS' titdq ;
  1341. 'FINS' ;
  1342. * 'ERRE' 'stop' ;
  1343. 'SI' ('NON' lok) ;
  1344. 'MESS' '!!!!! CHECKME' ;
  1345. 'SINO' ;
  1346. 'MESS' '!!!!! Nouvelle reference' ;
  1347. 'FINS' ;
  1348. 'SINO' ;
  1349. 'MESS' chcas ' Ok' ;
  1350. 'FINS' ;
  1351. * 'SAUT' 1 'LIGNE' ;
  1352. 'FIN' bkas ;
  1353. *
  1354. 'SI' lokglob ;
  1355. 'MESSAGE' ('CHAINE' 'Tout sest bien passe...') ;
  1356. 'SI' ('NON' lidglob) ;
  1357. 'MESSAGE' ('CHAINE' '...avec des ameliorations.') ;
  1358. 'SINO' ;
  1359. 'MESSAGE' ('CHAINE' '...resultats identiques a la ref.') ;
  1360. 'FINS' ;
  1361. 'SINO' ;
  1362. 'SI' lidglob ;
  1363. 'MESS' '!!!!! Ce cas est impossible, verifiez le programme' ;
  1364. 'FINS' ;
  1365. 'OPTI' 'ECHO' 1 ;
  1366. 'ERRE' 'Il y a eu des regressions !!' ;
  1367. 'SINON' ;
  1368. 'SAUT' 1 'LIGN' ;
  1369. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  1370. 'FINSI' ;
  1371. 'FINS' ;
  1372. *
  1373.  
  1374. 'FIN' bclbas ;
  1375. 'SI' ('>' nsoucbas 0) ;
  1376. 'MESS' '!!!!! Il y a au total' ' ' nsoucbas ' cas en erreur dans les bases' ;
  1377. txt = ' ' ;
  1378. 'REPE' iibas ('DIME' tbas) ;
  1379. ibas = &iibas ;
  1380. tibas = tbas . ibas ;
  1381. lcaserr = tibas . 'lcaserr' ;
  1382. tikas = tibas . 'tikas' ;
  1383. 'REPE' iierr ('DIME' lcaserr) ;
  1384. ierr = &iierr ;
  1385. icas = 'EXTR' lcaserr ierr ;
  1386. idk = tikas . icas . 'idk' ;
  1387. txt = 'CHAI' txt ' ' '(' ibas ',' icas ' ' idk ')' ;
  1388. 'FIN' iierr ;
  1389. 'FIN' iibas ;
  1390. 'MESS' txt ;
  1391. 'SINO' ;
  1392. 'MESSAGE' 'Aucun cas en erreur dans la base. Bravo !' ;
  1393. 'FINS' ;
  1394. 'SI' ('>' ncvgbas 0) ;
  1395. 'MESS' '!!!! Il y a au total' ' ' ncvgbas ' cas en non-convergence dans les bases' ;
  1396. txt = ' ' ;
  1397. 'REPE' iibas ('DIME' tbas) ;
  1398. ibas = &iibas ;
  1399. tibas = tbas . ibas ;
  1400. lcvgerr = tibas . 'lcvgerr' ;
  1401. tikas = tibas . 'tikas' ;
  1402. 'REPE' iierr ('DIME' lcvgerr) ;
  1403. ierr = &iierr ;
  1404. icas = 'EXTR' lcvgerr ierr ;
  1405. idk = tikas . icas . 'idk' ;
  1406. txt = 'CHAI' txt ' ' '(' ibas ',' icas ' ' idk ')' ;
  1407. 'FIN' iierr ;
  1408. 'FIN' iibas ;
  1409. 'MESS' txt ;
  1410. 'SINO' ;
  1411. 'MESSAGE' 'Aucun cas en non-convergence dans la base. Bravo !' ;
  1412. 'FINS' ;
  1413. *
  1414. * Test au 2025/11/10
  1415. *
  1416. lok = vrai ;
  1417. 'REPE' bclbas ('DIME' tbas) ;
  1418. lokb = vrai ;
  1419. ibas = &bclbas ;
  1420. tibas = tbas . ibas ;
  1421. nombase = tibas . 'nombase' ;
  1422. lkerrref = tibas . 'lkerrref' ;
  1423. lcaserr = tibas . 'lcaserr' ;
  1424. dlkr = 'DIME' lkerrref ;
  1425. dlk = 'DIME' lcaserr ;
  1426. 'SI' ('NEG' dlk dlkr) ;
  1427. lokb = lokb 'ET' faux ;
  1428. 'MESS' '!!! Base' ' ' nombase ' : pas le meme nombre de cas en erreur' ;
  1429. 'SINO' ;
  1430. ddlk = 'MAXI' ('-' lkerrref lcaserr) 'ABS' ;
  1431. 'SI' ('NEG' ddlk 0) ;
  1432. lokb = lokb 'ET' faux ;
  1433. 'MESS' '!!! Base' ' ' nombase ' : pas les memes cas en erreur' ;
  1434. 'FINS' ;
  1435. 'FINS' ;
  1436. 'SI' ('NON' lokb) ;
  1437. 'MESS' ' Courant :' ; 'LIST' lcaserr ;
  1438. 'MESS' ' Reference :' ; 'LIST' lkerrref ;
  1439. 'FINS' ;
  1440. lok = lok 'ET' lokb ;
  1441. *
  1442. lokc = vrai ;
  1443. lcvgrref = tibas . 'lcvgrref' ;
  1444. lcvgerr = tibas . 'lcvgerr' ;
  1445. dlkr = 'DIME' lcvgrref ;
  1446. dlk = 'DIME' lcvgerr ;
  1447. 'SI' ('NEG' dlk dlkr) ;
  1448. lokc = lokc 'ET' faux ;
  1449. 'MESS' '!! Base' ' ' nombase ' : pas le meme nombre de cas en non-convergence' ;
  1450. 'SINO' ;
  1451. ddlk = 'MAXI' ('-' lcvgrref lcvgerr) 'ABS' ;
  1452. 'SI' ('NEG' ddlk 0) ;
  1453. lokc = lokc 'ET' faux ;
  1454. 'MESS' '!! Base' ' ' nombase ' : pas les memes cas en non-convergence' ;
  1455. 'FINS' ;
  1456. 'FINS' ;
  1457. 'SI' ('NON' lokc) ;
  1458. 'MESS' ' Courant :' ; 'LIST' lcvgerr ;
  1459. 'MESS' ' Reference :' ; 'LIST' lcvgrref ;
  1460. 'FINS' ;
  1461. lok = lok 'ET' lokc ;
  1462. 'FIN' bclbas ;
  1463. *
  1464. 'SI' ('NON' lok) ;
  1465. 'MESSAGE' ('CHAINE' '!!! Il y a eu des erreurs') ;
  1466. 'SINON' ;
  1467. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  1468. 'FINSI' ;
  1469. *
  1470. 'OPTI' echo 1 ;
  1471. 'SI' interact ;
  1472. 'OPTI' 'DONN' 5 ;
  1473. 'FINS' ;
  1474. 'SI' ('NON' lok) ;
  1475. 'ERRE' 5 ;
  1476. 'FINS' ;
  1477. *
  1478. * End of dgibi file MAILTOPO
  1479. *
  1480. 'FIN' ;
  1481.  
  1482.  
  1483.  

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