Télécharger mato-2d5.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : mato-2d5.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTION' 'ECHO' 0 ;
  5. ************************************************************************
  6. * NOM : MATO-2D5
  7. * DESCRIPTION : Test du MAilleur TOpologique pour mailler un carré
  8. * avec une métrique isotrope constante en espace
  9. * dans le but d'obtenir 1x1 mailles.
  10. * Au départ, le carré est 10x10. Concernant la frontière,
  11. * on contraint le mailleur, soit à ne pas la modifier,
  12. * soit à en modifier une partie, soit la totalité.
  13. *
  14. * On teste la qualité des éléments obtenus.
  15. *
  16. * Issu de mato-2d4.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, 23/12/2025, version initiale
  24. * HISTORIQUE : v1, 23/12/2025, création
  25. * HISTORIQUE :
  26. * HISTORIQUE :
  27. ************************************************************************
  28. *
  29. interact = faux ;
  30. graph = faux ;
  31. * Mini, mediane et maxi d'un LISTREEL
  32. 'DEBP' MIMEMA ;
  33. 'ARGU' ch*'MCHAML' ;
  34. 'ARGU' cmp*'MOT' ;
  35. lr = 'EXTR' (CHGRAV ch) 'VALE' cmp ;
  36. lro = 'ORDO' lr ; dlr = 'DIME' lr ;
  37. mil = 'EXTR' lro 1 ; mal = 'EXTR' lro dlr ;
  38. mel = 'EXTR' lro ('/' ('+' 1 dlr) 2) ;
  39. 'FINP' mil mel mal ;
  40. * Passage au gravite d'un MCHAML
  41. 'DEBP' CHGRAV ch*'MCHAML';
  42. 'FINP' ('CHAN' ch ('MODE' ('EXTR' ch 'MAIL') 'THERMIQUE') 'GRAVITE') ;
  43. *
  44. 'OPTION' 'DIME' 2 'ELEM' 'TRI3' ;
  45. *
  46. 'SI' ('NON' interact) ;
  47. 'OPTION' 'TRAC' 'PSC' ;
  48. 'SINON' ;
  49. 'OPTION' 'TRAC' 'X' ;
  50. 'FINSI' ;
  51. lqual = 'PROG' 0. 'PAS' 0.05 1. ;
  52. *
  53. * Création du contour
  54. *
  55. nx = 10 ; nv = 2 ;
  56. pA = 0. 0. ; pB = 1. 0. ; pC = 1. 1. ; pD = 0. 1. ;
  57. lAB = 'DROI' nx pA pB ;
  58. lBC = 'DROI' nx pB pC ;
  59. lCD = 'DROI' nx pC pD ;
  60. lDA = 'DROI' nx pD pA ;
  61. *
  62. cnt = lAB 'ET' lBC 'ET' lCD 'ET' lDA ;
  63. *
  64. 'SI' graph ;
  65. tit = 'CHAI' 'Contour ' ;
  66. 'TRACER' 'CACH' cnt 'TITR' tit 'NOEU' ;
  67. 'FINSI' ;
  68. *
  69. * Tests divers (consistance...)
  70. *
  71. lok = VRAI ;
  72. *
  73. * TEST 1 Création d'un maillage sans ajouter de noeuds
  74. *
  75. mail1 = 'TRIA' 'TOPO' cnt 'NOAJ' ;
  76. 'SI' graph ;
  77. tit = 'CHAI' 'Maillage genere sans noeud supplémentaire' ;
  78. 'TRAC' mail1 'TITR' tit 'NOEU' ;
  79. 'FINSI' ;
  80. * Test 1 : on vérifie que le nombre de noeuds est conservé
  81. nno1 = 'NBNO' cnt ;
  82. nno2 = 'NBNO' mail1 ;
  83. 'SI' ('NEG' nno1 nno2) ;
  84. 'MESS' '!!! TEST 1 : nombre de noeuds non conserve' ;
  85. lok = lok 'ET' faux ;
  86. 'FINS' ;
  87. *
  88. * TEST 2 Remaillage de mail1 avec une taille voulue de 1. sans
  89. * toucher le bord
  90. *
  91. mail2 = 'REMA' mail1 ('CONT' mail1) ('/' 1. nv) ;
  92. 'SI' graph ;
  93. tit = 'CHAI' 'Maillage genere sans toucher le bord' ;
  94. 'TRAC' mail2 'TITR' tit 'NOEU' ;
  95. 'FINSI' ;
  96. * Test 2 : on vérifie que les qualités mini, mediane et maxi des éléments sont bonnes
  97. qmail2 = 'INDI' 'TOPO' 'COHE' 'DENS' mail2 ('/' 1. nv) ;
  98. miqo meqo maqo = MIMEMA qmail2 'TOPO' ;
  99. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2 : Qmin=' miqo ' Qmed=' meqo ' Qmax=' maqo ;
  100. miqa meqa maqa = MIMEMA qmail2 'COHE' ;
  101. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2 : Qcohemin=' miqa ' Qcohemed=' meqa ' Qcohemax=' maqa ;
  102. 'SI' graph ;
  103. momail2 = 'MODE' mail2 'THERMIQUE' ;
  104. tit = 'CHAI' 'Qualite coherence maillage avec noeuds interieurs' ;
  105. 'TRAC' ('EXCO' 'COHE' qmail2) momail2 lqual 'TITR' tit ;
  106. 'FINSI' ;
  107. * Sur mon linux64 au 07/04/2020 : Qmin= 0.91E-01 Qmoy= 0.82E+00 Qmax= 0.10E+01
  108. *!!!! Mieux miqr = 0.08 ; meqr = 0.81 ; maqr = 0.99 ;
  109. *miqr = 0.02 ; meqr = 0.79 ; maqr = 0.99 ;
  110. * 2025/11/24
  111. *!!!! Mieux ou different ?? miqar = 0.08 ; meqar = 0.89 ; maqar = 0.99 ;
  112. * 2025/11/24
  113. * miqar = 0.86 ; meqar = 0.86 ; maqar = 0.86 ;
  114. * 2026/01/08
  115. miqar = 0.36 ; meqar = 0.77 ; maqar = 0.99 ;
  116. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2 : Qcohemir=' miqar ' Qcohemer=' meqar ' Qcohemar=' maqar ;
  117. 'SI' (('<EG' miqa miqar) 'OU' ('<EG' meqa meqar) 'OU' ('<EG' maqa maqar)) ;
  118. 'MESS' '!!! TEST 2 coherence failed' ;
  119. lok = lok 'ET' faux ;
  120. 'FINS' ;
  121. miqe meqe maqe = MIMEMA qmail2 'DENS' ;
  122. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2 : Qdensmin=' miqe ' Qdensmed=' meqe ' Qdensmax=' maqe ;
  123. 'SI' graph ;
  124. tit = 'CHAI' 'Qualite density distribution maillage avec noeuds interieurs' ;
  125. 'TRAC' ('EXCO' 'DENS' qmail2) momail2 lqual 'TITR' tit ;
  126. 'FINSI' ;
  127. * Sur mon linux64 au 07/04/2020 : Qmin= 0.91E-01 Qmoy= 0.82E+00 Qmax= 0.10E+01
  128. *!!!! Mieux miqr = 0.08 ; meqr = 0.81 ; maqr = 0.99 ;
  129. *miqr = 0.02 ; meqr = 0.79 ; maqr = 0.99 ;
  130. * 2025/11/24
  131. * miqer = 0.14 ; meqer = 0.80 ; maqer = 0.99 ;
  132. * 2026/01/08
  133. miqer = 0.20 ; meqer = 0.32 ; maqer = 0.74 ;
  134. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2 : Qdensmir=' miqer ' Qdensmer=' meqer ' Qdensmar=' maqer ;
  135. 'SI' (('<EG' miqe miqer) 'OU' ('<EG' meqe meqer) 'OU' ('<EG' maqe maqer)) ;
  136. 'MESS' '!!! TEST 2 density distribution failed' ;
  137. lok = lok 'ET' faux ;
  138. 'FINS' ;
  139. *
  140. * TEST 3 Remaillage de mail1 avec une taille voulue de 0.1 en touchant
  141. * le bord sauf lAB
  142. *
  143. mail3 = 'REMA' mail1 lAB ('/' 1. nv) ;
  144. 'SI' graph ;
  145. tit = 'CHAI' 'Maillage genere sans toucher lAB' ;
  146. 'TRAC' mail3 'TITR' tit 'NOEU' ;
  147. 'FINSI' ;
  148. * Test 3 : on vérifie que les qualités mini, mediane et maxi des éléments sont bonnes
  149. qmail3 = 'INDI' 'TOPO' 'COHE' 'DENS' mail3 ('/' 1. nv) ;
  150. miq meq maq = MIMEMA qmail3 'TOPO' ;
  151. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qmin=' miq ' Qmed=' meq ' Qmax=' maq ;
  152. miqa meqa maqa = MIMEMA qmail3 'COHE' ;
  153. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qcohemin=' miqa ' Qcohemed=' meqa ' Qcohemax=' maqa ;
  154. 'SI' graph ;
  155. momail3 = 'MODE' mail3 'THERMIQUE' ;
  156. tit = 'CHAI' 'Qualite coherence maillage avec noeuds interieurs' ;
  157. 'TRAC' ('EXCO' 'COHE' qmail3) momail3 lqual 'TITR' tit ;
  158. 'FINSI' ;
  159. * Sur mon linux64 au 07/04/2020 : Qmin= 0.13E+00 Qmoy= 0.90E+00 Qmax= 0.10E+01
  160. *!!!!!!!Mieux miqr = 0.12 ; meqr = 0.89 ; maqr = 0.99 ;
  161. *miqr = 0.0076 ; meqr = 0.02 ; maqr = 0.02 ;
  162. * 2025/11/24
  163. *!!!! Mieux ou different ?? miqar = 0.11 ; meqar = 0.89 ; maqar = 0.99 ;
  164. * 2025/11/24 new
  165. *miqar = 0.80 ; meqar = 0.86 ; maqar = 0.97 ;
  166. * 2026/01/08
  167. miqar = 0.40 ; meqar = 0.66 ; maqar = 0.95 ;
  168. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qcohemir=' miqar ' Qcohemer=' meqar ' Qcohemar=' maqar ;
  169. 'SI' (('<EG' miqa miqar) 'OU' ('<EG' meqa meqar) 'OU' ('<EG' maqa maqar)) ;
  170. 'MESS' '!!! TEST 3 coherence failed' ;
  171. lok = lok 'ET' faux ;
  172. 'FINS' ;
  173. miqe meqe maqe = MIMEMA qmail3 'DENS' ;
  174. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qdensmin=' miqe ' Qdensmed=' meqe ' Qdensmax=' maqe ;
  175. 'SI' graph ;
  176. tit = 'CHAI' 'Qualite density distribution maillage avec noeuds interieurs' ;
  177. 'TRAC' ('EXCO' 'DENS' qmail3) momail3 lqual 'TITR' tit ;
  178. 'FINSI' ;
  179. * 2025/11/24
  180. *!!!!! Mieux miqer = 0.13 ; meqer = 0.82 ; maqer = 0.99 ;
  181. * 2025/11/24 new
  182. *miqer = 0.08 ; meqer = 0.20 ; maqer = 0.89 ;
  183. * 2025/11/24 new
  184. miqer = 0.24 ; meqer = 0.38 ; maqer = 0.95 ;
  185. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qdensmir=' miqer ' Qdensmer=' meqer ' Qdensmar=' maqer ;
  186. 'SI' (('<EG' miqe miqer) 'OU' ('<EG' meqe meqer) 'OU' ('<EG' maqe maqer)) ;
  187. 'MESS' '!!! TEST 3 density distribution failed' ;
  188. lok = lok 'ET' faux ;
  189. 'FINS' ;
  190. *
  191. * TEST 4 Remaillage de mail1 avec une taille voulue de 0.1 en touchant
  192. * tout le bord
  193. *
  194. mail4 = 'REMA' mail1 ('/' 1. nv) ;
  195. 'SI' graph ;
  196. tit = 'CHAI' 'Maillage genere en modifiant le bord' ;
  197. 'TRAC' mail4 'TITR' tit 'NOEU' ;
  198. 'FINSI' ;
  199. * Test 4 : on vérifie que les qualités mini, mediane etmaxi des éléments sont bonnes
  200. qmail4 = 'INDI' 'TOPO' 'COHE' 'DENS' mail4 ('/' 1. nv) ;
  201. miq meq maq = MIMEMA qmail4 'TOPO' ;
  202. 'MESS' 'FORMAT' '(E9.2)' 'TEST 4 : Qmin=' miq ' Qmed=' meq ' Qmax=' maq ;
  203. miqa meqa maqa = MIMEMA qmail4 'COHE' ;
  204. 'MESS' 'FORMAT' '(E9.2)' 'TEST 4 : Qcohemin=' miqa ' Qcohemed=' meqa ' Qcohemax=' maqa ;
  205. 'SI' graph ;
  206. momail4 = 'MODE' mail4 'THERMIQUE' ;
  207. tit = 'CHAI' 'Qualite coherence maillage avec noeuds interieurs' ;
  208. 'TRAC' ('EXCO' 'COHE' qmail4) momail4 lqual 'TITR' tit ;
  209. 'FINSI' ;
  210. * Sur mon linux64 au 07/04/2020 : Qmin= 0.65E+00 Qmoy= 0.91E+00 Qmax= 0.10E+01
  211. *!!!!! Mieux miqr = 0.64 ; meqr = 0.90 ; maqr = 0.99 ;
  212. * 2025/11/24
  213. * !!!! Pas si mal miqar = 0.57 ; meqar = 0.90 ; maqar = 0.99 ;
  214. * 2025/11/24 new
  215. *miqar = 0.73 ; meqar = 0.88 ; maqar = 0.99 ;
  216. * 2026/01/08
  217. miqar = 0.68 ; meqar = 0.68 ; maqar = 0.75 ;
  218. 'MESS' 'FORMAT' '(E9.2)' 'TEST 4 : Qcohemir=' miqar ' Qcohemer=' meqar ' Qcohemar=' maqar ;
  219. 'SI' (('<EG' miqa miqar) 'OU' ('<EG' meqa meqar) 'OU' ('<EG' maqa maqar)) ;
  220. 'MESS' '!!! TEST 3 coherence failed' ;
  221. lok = lok 'ET' faux ;
  222. 'FINS' ;
  223. miqe meqe maqe = MIMEMA qmail4 'DENS' ;
  224. 'MESS' 'FORMAT' '(E9.2)' 'TEST 4 : Qdensmin=' miqe ' Qdensmed=' meqe ' Qdensmax=' maqe ;
  225. 'SI' graph ;
  226. tit = 'CHAI' 'Qualite density distribution maillage avec noeuds interieurs' ;
  227. 'TRAC' ('EXCO' 'DENS' qmail4) momail4 lqual 'TITR' tit ;
  228. 'FINSI' ;
  229. * 2025/11/24
  230. *miqer = 0.59 ; meqer = 0.86 ; maqer = 0.99 ;
  231. * 2026/01/08
  232. miqer = 0.59 ; meqer = 0.60 ; maqer = 0.81 ;
  233. 'MESS' 'FORMAT' '(E9.2)' 'TEST 4 : Qdensmir=' miqer ' Qdensmer=' meqer ' Qdensmar=' maqer ;
  234. 'SI' (('<EG' miqe miqer) 'OU' ('<EG' meqe meqer) 'OU' ('<EG' maqe maqer)) ;
  235. 'MESS' '!!! TEST 4 density distribution failed' ;
  236. lok = lok 'ET' faux ;
  237. 'FINS' ;
  238. *
  239. * TEST 5 Remaillage de mail4 avec une taille voulue de 0.1 en ne touchant
  240. * plus le bord. On s'attend à ne pas changer le maillage mais
  241. * c'est sans compter avec l'algorithme du noeud fictif qui nous
  242. * a deja fait des blagues
  243. *
  244. mail5 = 'REMA' mail4 ('CONT' mail4) ('/' 1. nv) ;
  245. 'SI' graph ;
  246. tit = 'CHAI' 'Maillage genere sans toucher le bord' ;
  247. 'TRAC' mail5 'TITR' tit 'NOEU' ;
  248. 'FINSI' ;
  249. * Test 5 : on vérifie que mail5 et mail4 sont identiques ainsi que les
  250. * qualités
  251. dn45= 'NBEL' ('DIFF' mail4 mail5) ;
  252. 'SI' ('NEG' dn45 0) ;
  253. 'MESS' '!!! TEST 5 : mail4 .NE. mail5' ;
  254. lok = lok 'ET' faux ;
  255. 'FINS' ;
  256. *
  257. * Test final
  258. *
  259. 'SI' ('NON' lok) ;
  260. 'ERREUR' 5 ;
  261. 'SINON' ;
  262. 'SAUT' 1 'LIGN' ;
  263. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  264. 'FINSI' ;
  265. *
  266. 'SI' interact ;
  267. 'OPTION' 'ECHO' 1 ;
  268. 'OPTION' 'DONN' 5 ;
  269. 'FINSI' ;
  270. *
  271. * End of dgibi file MATO-2D5
  272. *
  273. 'FIN' ;
  274.  
  275.  
  276.  

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