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

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