Télécharger mato-2d3.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : mato-2d3.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTION' 'ECHO' 0 ;
  5. ************************************************************************
  6. * NOM : MATO-2D3
  7. * DESCRIPTION : Test du MAilleur TOpologique pour mailler un carré de
  8. * avec une métrique anisotrope constante en espace
  9. * dans le but d'obtenir 10x20 mailles, puis 20x10 mailles
  10. * en autorisant le mailleur à modifier les noeuds du bord
  11. * dans ce dernier cas.
  12. *
  13. * On teste la qualité des éléments obtenus.
  14. * On améliore un peu la qualité du dernier maillage obtenu
  15. * avec une boucle entre r-adaptation (DEDU ADAP) et
  16. * remaillage.
  17. *
  18. * Issu de 2d_3.dgibi+tests
  19. *
  20. *
  21. * LANGAGE : GIBIANE-CAST3M
  22. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SEMT/LTA)
  23. * mél : stephane.gounand@cea.fr
  24. **********************************************************************
  25. * VERSION : v1, 07/04/2020, version initiale
  26. * HISTORIQUE : v1, 07/04/2020, création
  27. * HISTORIQUE :
  28. * HISTORIQUE :
  29. ************************************************************************
  30. *
  31. interact = FAUX ;
  32. graph = FAUX ;
  33. *
  34. 'OPTION' 'DIME' 2 'ELEM' 'TRI3' ;
  35. *
  36. 'SI' ('NON' interact) ;
  37. 'OPTION' 'TRAC' 'PSC' ;
  38. 'SINON' ;
  39. 'OPTION' 'TRAC' 'X' ;
  40. 'FINSI' ;
  41. lqual = 'PROG' 0.5 'PAS' 0.025 1. ;
  42. *
  43. * Création du contour
  44. *
  45. d1 = 0.1 ; d2 = 0.05 ;
  46. pA = 0. 0. ; pB = 1. 0. ; pC = 1. 1. ; pD = 0. 1. ;
  47. lAB = 'DROI' pA pB 'DINI' d1 'DFIN' d1 ;
  48. lBC = 'DROI' pB pC 'DINI' d2 'DFIN' d2 ;
  49. lCD = 'DROI' pC pD 'DINI' d1 'DFIN' d1 ;
  50. lDA = 'DROI' pD pA 'DINI' d2 'DFIN' d2 ;
  51. *
  52. cnt = lAB 'ET' lBC 'ET' lCD 'ET' lDA ;
  53. *
  54. 'SI' graph ;
  55. tit = 'CHAI' 'Contour ' ;
  56. 'TRACER' 'CACH' cnt 'TITR' tit 'NOEU' ;
  57. 'FINSI' ;
  58. *
  59. * Tests divers (consistance...)
  60. *
  61. lok = VRAI ;
  62. *
  63. * TEST 1 Création d'un maillage sans ajouter de noeuds
  64. *
  65. mail1 = 'TRIA' 'TOPO' cnt 'NOAJ' ;
  66. 'SI' graph ;
  67. tit = 'CHAI' 'Maillage genere sans noeud supplémentaire' ;
  68. 'TRAC' mail1 'TITR' tit 'NOEU' ;
  69. 'FINSI' ;
  70. * Test 1 : on vérifie que le nombre de noeuds est conservé
  71. nno1 = 'NBNO' cnt ;
  72. nno2 = 'NBNO' mail1 ;
  73. 'SI' ('NEG' nno1 nno2) ;
  74. 'MESS' '!!! TEST 1 : nombre de noeuds non conserve' ;
  75. lok = lok 'ET' faux ;
  76. 'FINS' ;
  77. *
  78. * TEST 2 Création d'un maillage en ajoutant des noeuds interieurs
  79. *
  80. mail2 = 'TRIA' 'TOPO' cnt ;
  81. 'SI' graph ;
  82. tit = 'CHAI' 'Maillage genere en ajoutant des noeuds interieurs' ;
  83. 'TRAC' mail2 'TITR' tit 'NOEU' ;
  84. 'FINSI' ;
  85. * Test 2 : on vérifie que les qualités mini, moyenne et maxi des éléments sont bonnes
  86. qmail2 = 'INDI' 'TOPO' mail2 ;
  87. miq = 'MINI' qmail2 ; moq = MATOUTIL 'MOYECHAM' qmail2 ;
  88. maq = 'MAXI' qmail2 ;
  89. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2 : Qmin=' miq ' Qmoy=' moq ' Qmax=' maq ;
  90. 'SI' graph ;
  91. momail2 = 'MODE' mail2 'THERMIQUE' ;
  92. tit = 'CHAI' 'Qualite maillage avec noeuds interieurs' ;
  93. 'TRAC' qmail2 momail2 lqual 'TITR' tit ;
  94. 'FINSI' ;
  95. * Sur mon linux64 au 07/04/2020 : Qmin= 0.66E+00 Qmoy= 0.87E+00 Qmax= 0.10E+01
  96. miqref = 0.65 ; moqref = 0.86 ; maqref = 0.99 ;
  97. 'SI' ('<EG' miq miqref) ;
  98. 'MESS' '!!! TEST 2 : miq=' miq ' < miqref=' miqref ;
  99. lok = lok 'ET' faux ;
  100. 'FINS' ;
  101. 'SI' ('&lt;EG' moq moqref) ;
  102. 'MESS' '!!! TEST 2 : moq=' moq ' < moqref=' moqref ;
  103. lok = lok 'ET' faux ;
  104. 'FINS' ;
  105. 'SI' ('&lt;EG' maq maqref) ;
  106. 'MESS' '!!! TEST 2 : maq=' maq ' < maqref=' maqref ;
  107. lok = lok 'ET' faux ;
  108. 'FINS' ;
  109. *
  110. * TEST 3 Remaillage du précédent avec une métrique anisotrope constante
  111. * en espace compatible avec le maillage du bord 10x20
  112. *
  113. cmet = 'MANU' 'CHPO' mail2 3 'G11' ('**' d1 -2)
  114. 'G22' ('**' d2 -2)
  115. 'G21' 0. ;
  116. * Facultatif : mettre tout ça dans la notice de ALGOMAIL
  117. * ainsi que les valeurs par défaut
  118. * tparam3 . 'debug' = 2 ;
  119. mail3 = 'REMA' mail2 ('CONT' mail2) cmet ;
  120. 'SI' graph ;
  121. tit = 'CHAI' 'Maillage avec metrique 10x20' ;
  122. 'TRAC' mail3 'TITR' tit 'NOEU' ;
  123. 'FINSI' ;
  124. * Test 3 : on vérifie que les qualités des éléments sont bonnes
  125. cmet = 'MANU' 'CHPO' mail3 3 'G11' ('**' d1 -2)
  126. 'G22' ('**' d2 -2)
  127. 'G21' 0. ;
  128. qmail3 = 'INDI' 'TOPO' mail3 cmet ;
  129. miq = 'MINI' qmail3 ; moq = MATOUTIL 'MOYECHAM' qmail3 ;
  130. maq = 'MAXI' qmail3 ;
  131. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qmin=' miq ' Qmoy=' moq ' Qmax=' maq ;
  132. 'SI' graph ;
  133. momail3 = 'MODE' mail3 'THERMIQUE' ;
  134. tit = 'CHAI' 'Qualite maillage 10x20' ;
  135. 'TRAC' qmail3 momail3 lqual 'TITR' tit ;
  136. 'FINSI' ;
  137. * Sur mon linux64 au 07/04/2020 : Qmin= 0.66E+00 Qmoy= 0.84E+00 Qmax= 0.10E+01
  138. miqref = 0.65 ; moqref = 0.83 ; maqref = 0.99 ;
  139. 'SI' ('&lt;EG' miq miqref) ;
  140. 'MESS' '!!! TEST 3 : miq=' miq ' < miqref=' miqref ;
  141. lok = lok 'ET' faux ;
  142. 'FINS' ;
  143. 'SI' ('&lt;EG' moq moqref) ;
  144. 'MESS' '!!! TEST 3 : moq=' moq ' < moqref=' moqref ;
  145. lok = lok 'ET' faux ;
  146. 'FINS' ;
  147. 'SI' ('&lt;EG' maq maqref) ;
  148. 'MESS' '!!! TEST 3 : maq=' maq ' < maqref=' maqref ;
  149. lok = lok 'ET' faux ;
  150. 'FINS' ;
  151. *
  152. * TEST 4 Remaillage du précédent avec une métrique anisotrope constante
  153. * en espace différente visant à obtenir un maillage 20x10
  154. * On demande au remailleur de modifier les noeuds du bord.
  155. *
  156. cmet = 'MANU' 'CHPO' mail3 3 'G11' ('**' d2 -2)
  157. 'G22' ('**' d1 -2)
  158. 'G21' 0. ;
  159. mail4 = 'REMA' mail3 cmet ;
  160. 'SI' graph ;
  161. tit = 'CHAI' 'Maillage avec metrique anisotrope 20x10' ;
  162. 'TRAC' mail4 'TITR' tit 'NOEU' ;
  163. 'FINSI' ;
  164. * Test 4 : on vérifie que les qualités des éléments sont bonnes
  165. cmet = 'MANU' 'CHPO' mail4 3 'G11' ('**' d2 -2)
  166. 'G22' ('**' d1 -2)
  167. 'G21' 0. ;
  168. qmail4 = 'INDI' 'TOPO' mail4 cmet ;
  169. miq = 'MINI' qmail4 ; moq = MATOUTIL 'MOYECHAM' qmail4 ;
  170. maq = 'MAXI' qmail4 ;
  171. 'MESS' 'FORMAT' '(E9.2)' 'TEST 4 : Qmin=' miq ' Qmoy=' moq ' Qmax=' maq ;
  172. 'SI' graph ;
  173. momail4 = 'MODE' mail4 'THERMIQUE' ;
  174. tit = 'CHAI' 'Qualite maillage 20x10' ;
  175. 'TRAC' qmail4 momail4 lqual 'TITR' tit ;
  176. 'FINSI' ;
  177. * Sur mon linux64 au 07/04/2020 : Qmin= 0.67E+00 Qmoy= 0.85E+00 Qmax= 0.10E+01
  178. miqref = 0.66 ; moqref = 0.84 ; maqref = 0.99 ;
  179. 'SI' ('&lt;EG' miq miqref) ;
  180. 'MESS' '!!! TEST 4 : miq=' miq ' < miqref=' miqref ;
  181. lok = lok 'ET' faux ;
  182. 'FINS' ;
  183. 'SI' ('&lt;EG' moq moqref) ;
  184. 'MESS' '!!! TEST 4 : moq=' moq ' < moqref=' moqref ;
  185. lok = lok 'ET' faux ;
  186. 'FINS' ;
  187. 'SI' ('&lt;EG' maq maqref) ;
  188. 'MESS' '!!! TEST 4 : maq=' maq ' < maqref=' maqref ;
  189. lok = lok 'ET' faux ;
  190. 'FINS' ;
  191. *
  192. * TEST 5 Une petite boucle avec de la r-adaptation (DEDU ADAP) pour voir si on peut
  193. * améliorer la qualité du maillage mail3.
  194. *
  195. * La réponse est oui, on peut effectivement avoir une amélioration mais
  196. * après quelque itérations la qualité oscille sans s'alméliorer entre
  197. * r-adaptation et remaillage car les critères optimisés ne sont pas les
  198. * mêmes aux deux étapes.
  199. *
  200. nopt = 2 ; iopt = 0 ;
  201. * Paramètres de DEDUADAP
  202. thdedu = 0.2 ; rdepa = 1. ; nitm = 1 ;
  203. maili = mail4 ;
  204. ldep = 'PROG' ; lqmin = 'PROG' ; lqmoy = 'PROG' ;
  205. 'REPE' bclopt nopt ;
  206. iopt = iopt '+' 1 ;
  207. tit = 'CHAI' 'i=' iopt ;
  208. * Partie DEDUADAP
  209. maili1 = maili ;
  210. modi1 = 'MODE' maili1 'MECANIQUE' ;
  211. cmet = 'MANU' 'CHPO' maili1 3 'G11' ('**' d2 -2)
  212. 'G22' ('**' d1 -2)
  213. 'G21' 0. ;
  214. ccmet = 'CHAN' 'CHAM' cmet modi1 ;
  215. depa = 'DEDU' 'ADAP' maili1 'METR' ccmet modi1 'THET' thdedu 'NITM' nitm ;
  216. depa = '*' depa rdepa ;
  217. mcdep = 'MAXI' depa 'ABS' ; ldep = ldep 'ET' mcdep ;
  218. 'MESS' tit ' dedu max. dep=' mcdep ;
  219. 'FORM' depa ;
  220. qmaili1 = 'INDI' 'TOPO' maili1 cmet ;
  221. miq = 'MINI' qmaili1 ; moq = MATOUTIL 'MOYECHAM' qmaili1 ;
  222. maq = 'MAXI' qmaili1 ;
  223. 'MESS' 'FORMAT' '(E9.2)' tit ' deduadap : Qmin=' miq ' Qmoy=' moq ' Qmax=' maq ;
  224. 'SI' graph ;
  225. momaili1 = 'MODE' maili1 'THERMIQUE' ;
  226. vdep = 'VECT' depa -1. 'UX' 'UY' 'NOIR' ;
  227. titg = 'CHAI' tit ' deduadap' ;
  228. 'TRAC' qmaili1 momaili1 vdep maili1 lqual 'TITR' titg ;
  229. 'FINS' ;
  230. * Partie MAILTOPO
  231. maili2 = 'REMA' maili1 cmet ;
  232. * Qualités
  233. cmet = 'MANU' 'CHPO' maili2 3 'G11' ('**' d2 -2)
  234. 'G22' ('**' d1 -2)
  235. 'G21' 0. ;
  236. qmaili2 = 'INDI' 'TOPO' maili2 cmet ;
  237. miq = 'MINI' qmaili2 ; moq = MATOUTIL 'MOYECHAM' qmaili2 ;
  238. maq = 'MAXI' qmaili2 ;
  239. 'MESS' 'FORMAT' '(E9.2)' tit ' mailtopo : Qmin=' miq ' Qmoy=' moq ' Qmax=' maq ;
  240. 'SI' graph ;
  241. momaili2 = 'MODE' maili2 'THERMIQUE' ;
  242. titg = 'CHAI' tit ' mailtopo' ;
  243. 'TRAC' qmaili2 momaili2 lqual 'TITR' titg ;
  244. 'FINSI' ;
  245. maili = maili2 ;
  246. 'FIN' bclopt ;
  247. * Sur mon linux64 au 07/04/2020 : Qmin= 0.68E+00 Qmoy= 0.89E+00 Qmax= 0.10E+01
  248. miqref = 0.67 ; moqref = 0.88 ; maqref = 0.99 ;
  249. 'SI' ('&lt;EG' miq miqref) ;
  250. 'MESS' '!!! TEST 5 : miq=' miq ' < miqref=' miqref ;
  251. lok = lok 'ET' faux ;
  252. 'FINS' ;
  253. 'SI' ('&lt;EG' moq moqref) ;
  254. 'MESS' '!!! TEST 5 : moq=' moq ' < moqref=' moqref ;
  255. lok = lok 'ET' faux ;
  256. 'FINS' ;
  257. 'SI' ('&lt;EG' maq maqref) ;
  258. 'MESS' '!!! TEST 5 : maq=' maq ' < maqref=' maqref ;
  259. lok = lok 'ET' faux ;
  260. 'FINS' ;
  261. *
  262. * Test final
  263. *
  264. 'SI' ('NON' lok) ;
  265. 'ERREUR' 5 ;
  266. 'SINON' ;
  267. 'SAUT' 1 'LIGN' ;
  268. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  269. 'FINSI' ;
  270. *
  271. 'SI' interact ;
  272. 'OPTION' 'ECHO' 1 ;
  273. 'OPTION' 'DONN' 5 ;
  274. 'FINSI' ;
  275. *
  276. * End of dgibi file MATO-2D3
  277. *
  278. 'FIN' ;
  279.  
  280.  
  281.  
  282.  

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