Télécharger mato-2d2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : mato-2d2.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTION' 'ECHO' 0 ;
  5. ************************************************************************
  6. * NOM : MATO-2D2
  7. * DESCRIPTION : Test du MAilleur TOpologique pour mailler un carré avec
  8. * raffinement isotrope dans un coin.
  9. *
  10. * On teste la qualité des éléments obtenus dans la
  11. * métrique voulue.
  12. * On ne teste pas la r-adaptation (DEDU ADAP) car il
  13. * manque les termes de dérivées en espace de la métrique.
  14. *
  15. * Repris de raft1.dgibi qui utilise TRIA
  16. * et de 2d_1.dgibi+tests
  17. *
  18. *
  19. * LANGAGE : GIBIANE-CAST3M
  20. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SEMT/LTA)
  21. * mél : stephane.gounand@cea.fr
  22. **********************************************************************
  23. * VERSION : v1, 04/04/2020, version initiale
  24. * HISTORIQUE : v1, 04/04/2020, création
  25. * HISTORIQUE :
  26. * HISTORIQUE :
  27. ************************************************************************
  28. *
  29. interact = faux ;
  30. graph = faux ;
  31. complet = FAUX ;
  32. * Mini, mediane et maxi d'un MCHAML
  33. 'DEBP' MIMEMA ;
  34. 'ARGU' ch*'MCHAML' ;
  35. 'ARGU' cmp*'MOT' ;
  36. lr = 'EXTR' (CHGRAV ch) 'VALE' cmp ;
  37. lro = 'ORDO' lr ; dlr = 'DIME' lr ;
  38. mil = 'EXTR' lro 1 ; mal = 'EXTR' lro dlr ;
  39. mel = 'EXTR' lro ('/' ('+' 1 dlr) 2) ;
  40. 'FINP' mil mel mal ;
  41. * Passage au gravite d'un MCHAML
  42. 'DEBP' CHGRAV ch*'MCHAML';
  43. 'FINP' ('CHAN' ch ('MODE' ('EXTR' ch 'MAIL') 'THERMIQUE') 'GRAVITE') ;
  44. *
  45. 'OPTION' 'DIME' 2 'ELEM' 'TRI3' ;
  46. *
  47. 'SI' ('NON' interact) ;
  48. 'OPTION' 'TRAC' 'PSC' ;
  49. 'SINON' ;
  50. 'OPTION' 'TRAC' 'X' ;
  51. 'FINSI' ;
  52. lqual = 'PROG' 0. 'PAS' 0.05 1. ;
  53. tol= ('VALE' prec) '*' 10. ;
  54. *
  55. ******************************************************************
  56. * P R O C E D U R E S
  57. *
  58. * MESUELEM
  59. *
  60. * Calcul d'une mesure de maille aux noeuds
  61. * Je sais le faire de trois manières (équivalentes pour les SEG2
  62. * mais pas pour les TRI3)
  63. * 1) Avec l'opérateur MESU (boucle sur les éléments en GIBIANE)
  64. * + CHAN 'CHPO'
  65. * 2) En intégrant (par éléments) un champ par élément valant 1
  66. * + CHAN 'CHPO'
  67. * 3) Matrice de masse diagonalisée
  68. * Ici, c'est la méthode 3.
  69. *
  70. 'DEBPROC' MESUELEM ;
  71. 'ARGUMENT' mm*'MAILLAGE' ;
  72. 'SI' faux ;
  73. * Méthode 2
  74. mod = 'MODE' mm 'MECANIQUE' 'ELASTIQUE' ;
  75. c1 = 'MANU' 'CHML' mod 'SCAL' 1. 'GRAVITE' ;
  76. ctai = 'INTG' 'ELEM' mod c1 ;
  77. cctai = 'CHANGER' 'CHPO' mod ctai 'MOYE' ;
  78. 'FINSI' ;
  79. * Méthode 3
  80. cctai = 'DOMA' ('MODE' ('CHANGER' mm 'QUAF') 'NAVIER_STOKES' 'LINE')
  81. 'XXDIAGSI' ;
  82. *
  83. 'RESPRO' cctai ;
  84. 'FINPROC' ;
  85. *
  86. * CALTAIL
  87. *
  88. * Calcul du champ de taille de maille voulue T par un problème de
  89. * thermique, on résout :
  90. * Laplacien T = 0
  91. * avec T_bord = taille des mailles du bord
  92. *
  93. *
  94. 'DEBPROC' CALTAIL ;
  95. 'ARGUMENT' mt*'MAILLAGE' ;
  96. *
  97. cmt = 'CONTOUR' mt ;
  98. *
  99. cdt = MESUELEM cmt ;
  100. * En fait, on résout le problème au laplacien pour le log
  101. * des tailles de maille.
  102. lcdt = 'LOG' cdt ;
  103. modt = 'MODELISER' mt 'THERMIQUE' 'ISOTROPE' ;
  104. cart = 'MATERIAU' modt 'K' 1.D0 ;
  105. matt = 'COND' modt cart ;
  106. mcdt = 'EXTRAIRE' lcdt 'MAIL' ;
  107. matb = 'BLOQUE' 'T' mcdt ;
  108. fb = 'DEPIMPOSE' matb ('NOMC' 'T' lcdt) ;
  109. clden = 'EXCO' 'T' ('RESOUD' ('ET' matt matb) fb) ;
  110. cden = 'EXP' clden ;
  111. *'TRACER' cden mt ;
  112. 'RESPRO' cden ;
  113. 'FINPROC' ;
  114. * Fin des P R O C E D U R E S
  115. ******************************************************************
  116. *
  117. * Création du contour
  118. *
  119. d1 = 0.01 ; d2 = 0.1 ;
  120. pA = 0. 0. ; pB = 1. 0. ; pC = 1. 1. ; pD = 0. 1. ;
  121. lAB = 'DROI' pA pB 'DINI' d1 'DFIN' d2 ;
  122. lBC = 'DROI' pB pC 'DINI' d2 'DFIN' d2 ;
  123. lCD = 'DROI' pC pD 'DINI' d2 'DFIN' d2 ;
  124. lDA = 'DROI' pD pA 'DINI' d2 'DFIN' d1 ;
  125. *
  126. cnt = lAB 'ET' lBC 'ET' lCD 'ET' lDA ;
  127. *
  128. tt = 'CHAI' 'Iteration ' itcou ;
  129. 'SI' graph ;
  130. tit = 'CHAI' 'Contour ' ;
  131. 'TRACER' 'CACH' cnt 'TITR' tit 'NOEU' ;
  132. 'FINSI' ;
  133. *
  134. * Tests divers (consistance...)
  135. *
  136. lok = VRAI ;
  137. *
  138. * TEST 1 Création d'un maillage sans ajouter de noeuds
  139. *
  140. mail1 = 'TRIA' 'TOPO' cnt 'NOAJ' ;
  141. 'SI' graph ;
  142. tit = 'CHAI' 'Maillage genere sans noeud supplémentaire' ;
  143. 'TRAC' mail1 'TITR' tit 'NOEU' ;
  144. 'FINSI' ;
  145. * Test 1 : on vérifie que le nombre de noeuds est conservé
  146. nno1 = 'NBNO' cnt ;
  147. nno2 = 'NBNO' mail1 ;
  148. 'SI' ('NEG' nno1 nno2) ;
  149. 'MESS' '!!! TEST 1 : nombre de noeuds non conserve' ;
  150. lok = lok 'ET' faux ;
  151. 'FINS' ;
  152. *
  153. * TEST 2 Création d'un maillage en ajoutant des noeuds interieurs
  154. *
  155. mail2 = 'TRIA' 'TOPO' cnt 'AJNO' ;
  156. 'SI' graph ;
  157. tit = 'CHAI' 'Maillage genere en ajoutant des noeuds interieurs' ;
  158. 'TRAC' mail2 'TITR' tit 'NOEU' ;
  159. 'FINSI' ;
  160. * Test 2 : on vérifie que les qualités mini, mediane et maxi des éléments sont bonnes
  161. qmail2 = 'INDI' 'TOPO' 'EQLT' mail2 ;
  162. miqo meqo maqo = MIMEMA qmail2 'TOPO' ;
  163. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2 : Qmin=' miqo ' Qmed=' meqo ' Qmax=' maqo ;
  164. miqa meqa maqa = MIMEMA qmail2 'EQLT' ;
  165. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2 : Qeqltmin=' miqa ' Qeqltmed=' meqa ' Qeqltmax=' maqa ;
  166. 'SI' graph ;
  167. momail2 = 'MODE' mail2 'THERMIQUE' ;
  168. tit = 'CHAI' 'Qualite equilateralite maillage avec noeuds interieurs' ;
  169. 'TRAC' ('EXCO' 'EQLT' qmail2) momail2 lqual 'TITR' tit ;
  170. 'FINSI' ;
  171. * Sur mon linux64 au 02/04/2020 : qmin=0.63 qmed=0.87 qmax=1.00
  172. *miqr = 0.62 ; meqr = 0.86 ; maqr = 0.99 ;
  173. * 2025/11/24
  174. *miqar = 0.56 ; meqar = 0.83 ; maqar = 0.99 ;
  175. * 2026/01/08
  176. miqar = 0.44 ; meqar = 0.83 ; maqar = 0.99 ;
  177. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2 : Qeqltmir=' miqar ' Qeqltmer=' meqar ' Qeqltmar=' maqar ;
  178. 'SI' (('<EG' miqa miqar) 'OU' ('<EG' meqa meqar) 'OU' ('<EG' maqa maqar)) ;
  179. 'MESS' '!!! TEST 2 failed' ;
  180. lok = lok 'ET' faux ;
  181. 'FINS' ;
  182. *
  183. * TEST 2b Création d'un maillage en ajoutant/retirant des noeuds interieurs et de bord
  184. *
  185. mail2b = 'TRIA' 'TOPO' cnt ('VIDE' 'MAILLAGE'/'SEG2') 'AJNO' ;
  186. 'SI' graph ;
  187. tit = 'CHAI' 'Maillage genere en ajoutant des noeuds interieurs et de bord' ;
  188. 'TRAC' mail2b 'TITR' tit 'NOEU' ;
  189. 'FINSI' ;
  190. * Test 2 : on vérifie que les qualités mini, moyenne et maxi des éléments sont bonnes
  191. qmail2b = 'INDI' 'EQLT' mail2b ;
  192. miqa meqa maqa = MIMEMA qmail2b 'EQLT' ;
  193. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2b : Qeqltmin=' miqa ' Qeqltmed=' meqa ' Qeqltmax=' maqa ;
  194. 'SI' graph ;
  195. momail2b = 'MODE' mail2b 'THERMIQUE' ;
  196. tit = 'CHAI' 'Qualite equilateralite maillage avec noeuds interieurs et de bord' ;
  197. 'TRAC' qmail2b momail2b lqual 'TITR' tit ;
  198. 'FINSI' ;
  199. * Sur mon linux64 au 16/12/2025 : qmin=0.86 qmoy=0.86 qmax=0.86
  200. * Il ne reste que deux elements dans le carre
  201. miqar = 0.86 ; meqar = 0.86 ; maqar = 0.86 ;
  202. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2b : Qeqltmir=' miqar ' Qeqltmer=' meqar ' Qeqltmar=' maqar ;
  203. 'SI' (('<EG' miqa miqar) 'OU' ('<EG' meqa meqar) 'OU' ('<EG' maqa maqar)) ;
  204. 'MESS' '!!! TEST 2b failed' ;
  205. lok = lok 'ET' faux ;
  206. 'FINS' ;
  207. *
  208. * TEST 2c Une petite boucle avec de la r-adaptation (DEDU ADAP) permet
  209. * d'améliorer la régularité du maillage mail2 mais ce n'est pas nécessaire
  210. * pour la suite donc on saute.
  211. *
  212. * 2020/04/03 : On arrive à avoir Qmin= 0.74E+00 Qmax= 0.10E+01 Qmed= 0.91E+00
  213. * avec nopt = 2 ; thdedu = 1.0 ; rdepa =1. ; nitm = 1 ;
  214. *
  215. 'SI' complet ;
  216. nopt = 2 ; iopt = 0 ;
  217. * Paramètres de DEDUADAP
  218. thdedu = 1. ; rdepa = 1. ; nitm = 1 ;
  219. maili = mail2 ;
  220. 'REPE' bclopt nopt ;
  221. iopt = iopt '+' 1 ;
  222. tit = 'CHAI' 'i=' iopt ;
  223. * Partie DEDUADAP
  224. maili1 = maili ;
  225. depa = 'DEDU' 'ADAP' maili1 'THET' thdedu 'NITM' nitm ;
  226. depa = '*' depa rdepa ;
  227. mcdep = 'MAXI' depa 'ABS' ;
  228. 'MESS' tit ' dedu max. dep=' mcdep ;
  229. 'FORM' depa ;
  230. qmaili1 = 'INDI' 'TOPO' maili1 ;
  231. miq meq maq = MIMEMA qmaili1 'TOPO' ;
  232. 'MESS' 'FORMAT' '(E9.2)' tit ' deduadap : Qmin=' miq ' Qmed=' meq ' Qmax=' maq ;
  233. 'SI' graph ;
  234. momaili1 = 'MODE' maili1 'THERMIQUE' ;
  235. vdep = 'VECT' depa -1. 'UX' 'UY' 'NOIR' ;
  236. titg = 'CHAI' tit ' deduadap' ;
  237. 'TRAC' qmaili1 momaili1 vdep maili1 lqual 'TITR' titg ;
  238. 'FINS' ;
  239. * Partie MAILTOPO
  240. maili2 = 'REMA' maili1 ('CONT' maili1) ;
  241. * Qualités
  242. qmaili2 = 'INDI' 'TOPO' maili2 ;
  243. miq meq maq = MIMEMA qmaili2 'TOPO' ;
  244. 'MESS' 'FORMAT' '(E9.2)' tit ' mailtopo : Qmin=' miq ' Qmed=' meq ' Qmax=' maq ;
  245. 'SI' graph ;
  246. momaili2 = 'MODE' maili2 'THERMIQUE' ;
  247. titg = 'CHAI' tit ' mailtopo' ;
  248. 'TRAC' qmaili2 momaili2 lqual 'TITR' titg ;
  249. 'FINSI' ;
  250. maili = maili2 ;
  251. 'FIN' bclopt ;
  252. mail2 = maili ;
  253. 'FINS' ;
  254. *
  255. * TEST 3 Remaillage du précédent avec une métrique isotrope variable
  256. * en espace
  257. *
  258. cden = 'NOMC' 'G' (caltail mail2) ;
  259. cmet = cden '**' -2 ;
  260. 'SI' graph ;
  261. tit = 'CHAI' 'Taille de maille voulue' ;
  262. lcden = '/' ('LOG' cden) ('LOG' 10.) ;
  263. 'TRAC' cden mail2 'TITR' tit 'NOEU' ;
  264. 'FINSI' ;
  265. * Facultatif : mettre tout ça dans la notice de ALGOMAIL
  266. * ainsi que les valeurs par défaut
  267. * tparam3 . 'debug' = 2 ;
  268. mail3 cmetf2 = 'REMA' mail2 ('CONT' mail2) cmet 'IPOL' ;
  269. 'SI' graph ;
  270. tit = 'CHAI' 'Maillage avec metrique isotrope variable en espace'
  271. ;
  272. 'TRAC' mail3 'TITR' tit 'NOEU' ;
  273. 'FINSI' ;
  274. * Test 3 : on vérifie que les qualités des éléments sont bonnes
  275. * On peut :
  276. * 1) recalculer la métrique voulue sur le nouveau maillage
  277. * 2) ou récupérer celle calculée sur l'ancien maillage mais interpolée
  278. * par le mailleur
  279. *1 TEST 3 avec cmetf1 : Qmin= 0.58E+00 Qmed= 0.85E+00 Qmax= 0.99E+00
  280. *2 TEST 3 avec cmetf2 : Qmin= 0.62E+00 Qmed= 0.84E+00 Qmax= 0.10E+01
  281. *
  282. cdenf1 = 'NOMC' 'G' (caltail mail3) ; cmetf1 = cdenf1 '**' -2 ;
  283. * 'TRAC' ('-' cmetf2 cmetf1) mail3 'TITR' 'Diff. metrique' ;
  284. qmail3 = 'INDI' 'TOPO' 'COHE' 'DENS' mail3 cmetf2 ;
  285. miq meq maq = MIMEMA qmail3 'TOPO' ;
  286. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qmin=' miq ' Qmed=' meq ' Qmax=' maq ;
  287. miqa meqa maqa = MIMEMA qmail3 'COHE' ;
  288. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qcohemin=' miqa ' Qcohemed=' meqa ' Qcohemax=' maqa ;
  289. 'SI' graph ;
  290. momail3 = 'MODE' mail3 'THERMIQUE' ;
  291. tit = 'CHAI' 'Qualite coherence maillage avec noeuds interieurs' ;
  292. 'TRAC' ('EXCO' 'COHE' qmail3) momail3 lqual 'TITR' tit ;
  293. 'FINSI' ;
  294. *!!!!!Mieux miqr = 0.61 ; meqr = 0.83 ; maqr = 0.99 ;
  295. *miqr = 0.57 ; meqr = 0.83 ; maqr = 0.99 ;
  296. * 2025/11/24
  297. *!!!!! Mieux miqar = 0.66 ; meqar = 0.91 ; maqar = 0.99 ;
  298. * 2025/11/24 new
  299. *miqar = 0.54 ; meqar = 0.91 ; maqar = 0.99 ;
  300. * 2026/01/08
  301. miqar = 0.69 ; meqar = 0.93 ; maqar = 0.99 ;
  302. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qcohemir=' miqar ' Qcohemer=' meqar ' Qcohemar=' maqar ;
  303. 'SI' (('<EG' miqa miqar) 'OU' ('<EG' meqa meqar) 'OU' ('<EG' maqa maqar)) ;
  304. 'MESS' '!!! TEST 3 coherence failed' ;
  305. lok = lok 'ET' faux ;
  306. 'FINS' ;
  307. miqe meqe maqe = MIMEMA qmail3 'DENS' ;
  308. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qdensmin=' miqe ' Qdensmed=' meqe ' Qdensmax=' maqe ;
  309. 'SI' graph ;
  310. tit = 'CHAI' 'Qualite density distribution maillage avec noeuds interieurs' ;
  311. 'TRAC' ('EXCO' 'DENS' qmail3) momail3 lqual 'TITR' tit ;
  312. 'FINSI' ;
  313. * 2025/11/24
  314. *miqer = 0.55 ; meqer = 0.84 ; maqer = 0.99 ;
  315. * 2026/01/08
  316. miqer = 0.49 ; meqer = 0.69 ; maqer = 0.99 ;
  317. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qdensmir=' miqer ' Qdensmer=' meqer ' Qdensmar=' maqer ;
  318. 'SI' (('<EG' miqe miqer) 'OU' ('<EG' meqe meqer) 'OU' ('<EG' maqe maqer)) ;
  319. 'MESS' '!!! TEST 3 density distribution failed' ;
  320. lok = lok 'ET' faux ;
  321. 'FINS' ;
  322. *
  323. * TEST 4 On vérifie qu'en remaillant le maillage précédent avec la même
  324. * métrique interpolée, on ne modifie pas le maillage
  325. *
  326. mail4 = 'REMA' mail3 ('CONT' mail3) cmetf2 ;
  327. * Test 4 : on vérifie que mail4 et mail3 sont identiques ainsi que les
  328. * qualités
  329. dn34= 'NBEL' ('DIFF' mail3 mail4) ;
  330. 'SI' ('NEG' dn34 0) ;
  331. 'MESS' '!!! TEST 4 : mail3 .NE. mail4' ;
  332. lok = lok 'ET' faux ;
  333. 'FINS' ;
  334. qmail4 = 'INDI' 'TOPO' 'COHE' 'DENS' mail4 cmetf2 ;
  335. dq34 = 'MAXI' ('-' qmail4 qmail3) 'ABS' ;
  336. * VALE prec un peu trop serré pour semt2
  337. 'SI' ('>' dq34 tol) ;
  338. 'MESS' '!!! TEST 4 : qmail3 .NE. qmail4' ;
  339. lok = lok 'ET' faux ;
  340. 'FINS' ;
  341. *
  342. * TEST 5 On vérifie qu'en remaillant le maillage précédent avec la même
  343. * métrique isotrope donnée sous forme d'une métrique anisotrope, on ne
  344. * modifie pas le maillage
  345. * Cela serait vrai sauf que, pour les tenseurs anisotropes , on ne fait
  346. * pas encore la moyenne géométrique (c'est plus compliqué !)
  347. *
  348. cmet = ('NOMC' 'G11' cmetf2 'NATU' 'DIFFUS') 'ET'
  349. ('NOMC' 'G22' cmetf2 'NATU' 'DIFFUS') 'ET'
  350. ('NOMC' 'G21' ('*' cmetf2 0.) 'NATU' 'DIFFUS') ;
  351. mail5 = 'REMA' mail3 ('CONT' mail3) cmet ;
  352. * Test 5 : on vérifie que mail5 et mail3 sont identiques ainsi que les
  353. * qualités
  354. dn35= 'NBEL' ('DIFF' mail3 mail5) ;
  355. 'SI' ('NEG' dn35 0) ;
  356. 'MESS' '!!! TEST 5 : mail3 .NE. mail5' ;
  357. lok = lok 'ET' faux ;
  358. 'FINS' ;
  359. qmail5 = 'INDI' 'TOPO' 'COHE' 'DENS' mail5 cmet ;
  360. dq35 = 'MAXI' ('-' qmail5 qmail3) 'ABS' ;
  361. * VALE prec un peu trop serré pour semt2
  362. 'SI' ('>' dq35 tol) ;
  363. 'MESS' '!!! TEST 5 : qmail3 .NE. qmail5' ;
  364. lok = lok 'ET' faux ;
  365. 'FINS' ;
  366. *
  367. * TEST 6 Une petite boucle avec de la r-adaptation (DEDU ADAP) pour voir si on peut
  368. * améliorer la qualité du maillage mail3.
  369. *
  370. * La réponse est oui, on peut effectivement avoir une amélioration mais
  371. * après quelque itérations la qualité oscille sans s'alméliorer entre
  372. * r-adaptation et remaillage car les critères optimisés ne sont pas les
  373. * mêmes aux deux étapes.
  374. *
  375. *
  376. nopt = 2 ; iopt = 0 ;
  377. * Paramètres de DEDUADAP
  378. thdedu = 0.2 ; rdepa = 1. ; nitm = 1 ;
  379. maili = mail3 ;
  380. ldep = 'PROG' ; lqmin = 'PROG' ; lqmed = 'PROG' ;
  381. 'REPE' bclopt nopt ;
  382. iopt = iopt '+' 1 ;
  383. tit = 'CHAI' 'i=' iopt ;
  384. * Partie DEDUADAP
  385. maili1 = maili ;
  386. modi1 = 'MODE' maili1 'MECANIQUE' ;
  387. cden = 'NOMC' 'G' (caltail maili1) ;
  388. cmet = cden '**' -2 ;
  389. cmet = ('NOMC' 'G11' cmet 'NATU' 'DIFFUS') 'ET'
  390. ('NOMC' 'G22' cmet 'NATU' 'DIFFUS') 'ET'
  391. ('NOMC' 'G21' ('*' cmet 0.) 'NATU' 'DIFFUS') ;
  392. ccmet = 'CHAN' 'CHAM' cmet modi1 ;
  393. depa = 'DEDU' 'ADAP' maili1 'METR' ccmet modi1 'THET' thdedu 'NITM' nitm ;
  394. depa = '*' depa rdepa ;
  395. mcdep = 'MAXI' depa 'ABS' ; ldep = ldep 'ET' mcdep ;
  396. 'MESS' tit ' dedu max. dep=' mcdep ;
  397. 'FORM' depa ;
  398. cden = 'NOMC' 'G' (caltail maili1) ;
  399. cmet = cden '**' -2 ;
  400. qmaili1 = 'INDI' 'TOPO' 'COHE' 'DENS' maili1 cmet ;
  401. miq meq maq = MIMEMA qmaili1 'TOPO' ;
  402. 'MESS' 'FORMAT' '(E9.2)' tit ' deduadap : Qmin=' miq ' Qmed=' meq ' Qmax=' maq ;
  403. miq meq maq = MIMEMA qmaili1 'COHE' ;
  404. 'MESS' 'FORMAT' '(E9.2)' tit ' deduadap : Qcohemin=' miq ' Qcohemed=' meq ' Qcohemax=' maq ;
  405. miq meq maq = MIMEMA qmaili1 'DENS' ;
  406. 'MESS' 'FORMAT' '(E9.2)' tit ' deduadap : Qdensmin=' miq ' Qdensmed=' meq ' Qdensmax=' maq ;
  407. 'SI' graph ;
  408. momaili1 = 'MODE' maili1 'THERMIQUE' ;
  409. vdep = 'VECT' depa -1. 'UX' 'UY' 'NOIR' ;
  410. titg = 'CHAI' tit ' deduadap' ;
  411. 'TRAC' ('EXCO' 'TOPO' qmaili1) momaili1 vdep maili1 lqual 'TITR' titg ;
  412. 'FINS' ;
  413. * Partie MAILTOPO
  414. maili2 = 'REMA' maili1 ('CONT' maili1) cmet ;
  415. * Qualités
  416. cden = 'NOMC' 'G' (caltail maili2) ;
  417. cmet = cden '**' -2 ;
  418. qmaili2 = 'INDI' 'TOPO' 'COHE' 'DENS' maili2 cmet ;
  419. miq meq maq = MIMEMA qmaili2 'TOPO' ;
  420. 'MESS' 'FORMAT' '(E9.2)' tit ' mailtopo : Qmin=' miq ' Qmed=' meq ' Qmax=' maq ;
  421. miqa meqa maqa = MIMEMA qmaili2 'COHE' ;
  422. 'MESS' 'FORMAT' '(E9.2)' tit ' mailtopo : Qcohemin=' miqa ' Qcohemed=' meqa ' Qcohemax=' maqa ;
  423. miqe meqe maqe = MIMEMA qmaili2 'DENS' ;
  424. 'MESS' 'FORMAT' '(E9.2)' tit ' mailtopo : Qdensmin=' miqe ' Qdensmed=' meqe ' Qdensmax=' maqe ;
  425. 'SI' graph ;
  426. momaili2 = 'MODE' maili2 'THERMIQUE' ;
  427. titg = 'CHAI' tit ' mailtopo' ;
  428. 'TRAC' ('EXCO' 'TOPO' qmaili2) momaili2 lqual 'TITR' titg ;
  429. 'FINSI' ;
  430. maili = maili2 ;
  431. 'FIN' bclopt ;
  432. * Sur mon linux64 au 06/04/2020 : Qmin= 0.62E+00 Qmed= 0.87E+00 Qmax= 0.99E+00
  433. *miqr = 0.61 ; meqr = 0.86 ; maqr = 0.98 ;
  434. * 2025/11/24
  435. *!!!! Mieux miqar = 0.61 ; meqar = 0.86 ; maqar = 0.98 ;
  436. * 2025/11/24 new
  437. * miqar = 0.60 ; meqar = 0.86 ; maqar = 0.98 ;
  438. * 2026/01/08
  439. miqar = 0.75 ; meqar = 0.93 ; maqar = 0.99 ;
  440. 'MESS' 'FORMAT' '(E9.2)' 'TEST 6 : Qcohemir=' miqar ' Qcohemer=' meqar ' Qcohemar=' maqar ;
  441. 'SI' (('<EG' miqa miqar) 'OU' ('<EG' meqa meqar) 'OU' ('<EG' maqa maqar)) ;
  442. 'MESS' '!!! TEST 6 coherence failed' ;
  443. lok = lok 'ET' faux ;
  444. 'FINS' ;
  445. * 2025/11/24
  446. * miqer = 0.61 ; meqer = 0.86 ; maqer = 0.98 ;
  447. * 2026/01/08
  448. miqer = 0.53 ; meqer = 0.74 ; maqer = 0.97 ;
  449. 'MESS' 'FORMAT' '(E9.2)' 'TEST 6 : Qdensmir=' miqer ' Qdensmer=' meqer ' Qdensmar=' maqer ;
  450. 'SI' (('<EG' miqe miqer) 'OU' ('<EG' meqe meqer) 'OU' ('<EG' maqe maqer)) ;
  451. 'MESS' '!!! TEST 6 density distribution failed' ;
  452. lok = lok 'ET' faux ;
  453. 'FINS' ;
  454. *
  455. * Test final
  456. *
  457. 'SI' ('NON' lok) ;
  458. 'ERREUR' 5 ;
  459. 'SINON' ;
  460. 'SAUT' 1 'LIGN' ;
  461. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  462. 'FINSI' ;
  463. *
  464. 'SI' interact ;
  465. 'OPTION' 'ECHO' 1 ;
  466. 'OPTION' 'DONN' 5 ;
  467. 'FINSI' ;
  468. *
  469. * End of dgibi file MATO-2D2
  470. *
  471. 'FIN' ;
  472.  
  473.  
  474.  

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