Télécharger mato-2d6.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : mato-2d6.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTION' 'ECHO' 0 ;
  5. ************************************************************************
  6. * NOM : MATO-2D6
  7. * DESCRIPTION : Test du MAilleur TOpologique pour mailler un simple
  8. * cercle de manière régulière en quadratique.
  9. *
  10. * On teste la qualité des éléments obtenus.
  11. *
  12. * Issu de mato-2d1.dgibi
  13. *
  14. *
  15. * LANGAGE : GIBIANE-CAST3M
  16. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SEMT/LTA)
  17. * mél : stephane.gounand@cea.fr
  18. **********************************************************************
  19. * VERSION : v1, 04/10/2020, version initiale
  20. * HISTORIQUE : v1, 04/10/2020, création
  21. * HISTORIQUE :
  22. * HISTORIQUE :
  23. ************************************************************************
  24. *
  25. interact = faux ;
  26. graph = faux ;
  27. complet = FAUX ;
  28. *
  29. * Mini, mediane et maxi d'un LISTREEL
  30. 'DEBP' MIMEMA ;
  31. 'ARGU' ch*'MCHAML' ;
  32. 'ARGU' cmp*'MOT' ;
  33. lr = 'EXTR' (CHGRAV ch) 'VALE' cmp ;
  34. lro = 'ORDO' lr ; dlr = 'DIME' lr ;
  35. mil = 'EXTR' lro 1 ; mal = 'EXTR' lro dlr ;
  36. mel = 'EXTR' lro ('/' ('+' 1 dlr) 2) ;
  37. 'FINP' mil mel mal ;
  38. * Passage au gravite d'un MCHAML
  39. 'DEBP' CHGRAV ch*'MCHAML';
  40. 'FINP' ('CHAN' ch ('MODE' ('EXTR' ch 'MAIL') 'THERMIQUE') 'GRAVITE') ;
  41. *
  42. 'OPTION' 'DIME' 2 'ELEM' 'TRI6' ;
  43. *
  44. 'SI' ('NON' interact) ;
  45. 'OPTION' 'TRAC' 'PSC' ;
  46. 'SINON' ;
  47. 'OPTION' 'TRAC' 'X' ;
  48. 'FINSI' ;
  49. lqual = 'PROG' 0. 'PAS' 0.05 1. ;
  50. tol= ('VALE' prec) '*' 10. ;
  51. *
  52. * Création du contour
  53. *
  54. *vden = 1.4 ;
  55. vden = 0.28 ;
  56. 'OPTI' 'DENS' vden ;
  57. pC = 1.1 0.707 ; pA = 3.14 3.41 ;
  58. cnt = 'CERC' 'ROTA' 360. pA pC 'ELIM' ;
  59. cntl = 'CHAN' 'LINE' cnt ;
  60. *
  61. 'SI' graph ;
  62. tit = 'CHAI' 'Contour ' ;
  63. 'TRACER' 'CACH' cnt 'TITR' tit 'NOEU' ;
  64. 'FINSI' ;
  65. *
  66. * Tests divers (consistance...)
  67. *
  68. lok = VRAI ;
  69. *
  70. * TEST 1 Création d'un maillage sans ajouter de noeuds
  71. *
  72. * tparam = 'TABL' ;
  73. * tparam . 'debug' = 0 ;
  74. * tparam . 'graph' = vrai ;
  75. * mail1 = MAILTOPO 'TRIA' cnt 'NOAJ' tparam ;
  76. mail1 = 'TRIA' 'TOPO' cnt 'NOAJ' ;
  77. mail1l = 'CHAN' 'LINE' mail1 ;
  78. 'SI' graph ;
  79. tit = 'CHAI' 'Maillage genere sans noeud supplémentaire' ;
  80. 'TRAC' mail1 'TITR' tit 'NOEU' ;
  81. 'FINSI' ;
  82. * Test 1 : on vérifie que le nombre de noeuds est conservé
  83. nno1 = 'NBNO' cntl ;
  84. nno2 = 'NBNO' mail1l ;
  85. 'SI' ('NEG' nno1 nno2) ;
  86. 'MESS' '!!! TEST 1 : nombre de noeuds non conserve' ;
  87. lok = lok 'ET' faux ;
  88. 'FINS' ;
  89. *
  90. * TEST 2 Création d'un maillage en ajoutant des noeuds interieurs
  91. *
  92. mail2 = 'TRIA' 'TOPO' cnt 'AJNO' ;
  93. mail2l = 'CHAN' 'LINE' mail2 ;
  94. 'SI' graph ;
  95. tit = 'CHAI' 'Maillage genere en ajoutant des noeuds interieurs' ;
  96. 'TRAC' mail2l 'TITR' tit 'NOEU' ;
  97. * 'TRAC' mail2l 'TITR' tit ;
  98. 'FINSI' ;
  99. * Test 2 : on vérifie que les qualités mini, mediane et maxi des éléments sont bonnes
  100. qmail2 = 'INDI' 'TOPO' 'EQLT' mail2l ;
  101. miqo meqo maqo = MIMEMA qmail2 'TOPO' ;
  102. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2 : Qmin=' miqo ' Qmed=' meqo ' Qmax=' maqo ;
  103. miqa meqa maqa = MIMEMA qmail2 'EQLT' ;
  104. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2 : Qeqltmin=' miqa ' Qeqltmed=' meqa ' Qeqltmax=' maqa ;
  105. 'SI' graph ;
  106. momail2 = 'MODE' mail2l 'THERMIQUE' ;
  107. tit = 'CHAI' 'Qualite equilateralite maillage avec noeuds interieurs' ;
  108. 'TRAC' ('EXCO' 'EQLT' qmail2) momail2 lqual 'TITR' tit ;
  109. 'FINSI' ;
  110. * Sur mon linux64 au 04/10/2024 : qmin=0.10 qmoy=0.10 qmax=0.10
  111. *miqr = 0.09 ; meqr = 0.09 ; maqr = 0.09 ;
  112. * 2025/11/21
  113. miqar = 0.13 ; meqar = 0.13 ; maqar = 0.13 ;
  114. 'MESS' 'FORMAT' '(E9.2)' 'TEST 2 : Qeqltmir=' miqar ' Qeqltmer=' meqar ' Qeqltmar=' maqar ;
  115. 'SI' (('<EG' miqa miqar) 'OU' ('<EG' meqa meqar) 'OU' ('<EG' maqa maqar)) ;
  116. 'MESS' '!!! TEST 2 failed' ;
  117. lok = lok 'ET' faux ;
  118. 'FINS' ;
  119. * Partie REMA
  120. mail2b = 'REMA' mail2 ('CONT' mail2) ;
  121. mail2bl = 'CHAN' 'LINE' mail2b ;
  122. * Qualités
  123. qmail2b = 'INDI' 'TOPO' mail2bl ;
  124. miq meq maq = MIMEMA qmail2b 'TOPO' ;
  125. 'MESS' 'FORMAT' '(E9.2)' ' REMA : Qmin=' miq ' Qmed=' meq ' Qmax=' maq ;
  126. 'SI' graph ;
  127. momail2b = 'MODE' mail2bl 'THERMIQUE' ;
  128. tit = 'CHAI' 'Qualite equilateralite maillage avec noeuds interieurs apres REMA'
  129. ' sans metrique';
  130. 'TRAC' qmail2b momail2b lqual 'TITR' tit ;
  131. 'FINSI' ;
  132. *
  133. * TEST 3 Remaillage du précédent avec une métrique uniforme constante
  134. * en espace
  135. *
  136. metva = vden ;
  137. mail3 = 'REMA' mail2 ('CONT' mail2) metva ;
  138. mail3l = 'CHAN' 'LINE' mail3 ;
  139. 'SI' graph ;
  140. tit = 'CHAI' 'Maillage avec metrique constante uniforme' ;
  141. 'TRAC' mail3 'TITR' tit 'NOEU' ;
  142. 'FINSI' ;
  143. * Test 3 : on vérifie que les qualités mini et mediane des éléments sont
  144. * bonnes
  145. qmail3 = 'INDI' 'TOPO' 'COHE' 'DENS' mail3l metva ;
  146. miq meq maq = MIMEMA qmail3 'TOPO' ;
  147. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qmin=' miq ' Qmed=' meq ' Qmax=' maq ;
  148. miqa meqa maqa = MIMEMA qmail3 'COHE' ;
  149. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qcohemin=' miqa ' Qcohemed=' meqa ' Qcohemax=' maqa ;
  150. 'SI' graph ;
  151. momail3 = 'MODE' mail3l 'THERMIQUE' ;
  152. tit = 'CHAI' 'Qualite coherence maillage avec noeuds interieurs' ;
  153. 'TRAC' ('EXCO' 'COHE' qmail3) momail3 lqual 'TITR' tit ;
  154. 'FINSI' ;
  155. * Sur mon linux64 au 02/04/2020 : qmin=0.624 qmoy=0.847 qmax=1.00
  156. *miqr = 0.61 ; meqr = 0.83 ; maqr = 0.99 ;
  157. * 2025/11/21
  158. * miqar = 0.61 ; meqar = 0.92 ; maqar = 0.99 ;
  159. * 2026/01/08
  160. miqar = 0.13 ; meqar = 0.13 ; maqar = 0.13 ;
  161. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qcohemir=' miqar ' Qcohemer=' meqar ' Qcohemar=' maqar ;
  162. 'SI' (('<EG' miqa miqar) 'OU' ('<EG' meqa meqar) 'OU' ('<EG' maqa maqar)) ;
  163. 'MESS' '!!! TEST 3 coherence failed' ;
  164. lok = lok 'ET' faux ;
  165. 'FINS' ;
  166. miqe meqe maqe = MIMEMA qmail3 'DENS' ;
  167. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qdensmin=' miqe ' Qdensmed=' meqe ' Qdensmax=' maqe ;
  168. 'SI' graph ;
  169. tit = 'CHAI' 'Qualite density distribution maillage avec noeuds interieurs' ;
  170. 'TRAC' ('EXCO' 'DENS' qmail3) momail3 lqual 'TITR' tit ;
  171. 'FINSI' ;
  172. * Sur mon linux64 au 02/04/2020 : qmin=0.624 qmoy=0.847 qmax=1.00
  173. *miqr = 0.61 ; meqr = 0.83 ; maqr = 0.99 ;
  174. * 2025/11/21
  175. * miqer = 0.55 ; meqer = 0.86 ; maqer = 0.99 ;
  176. * 2026/01/08
  177. miqer = 0.26 ; meqer = 0.26 ; maqer = 0.26 ;
  178. 'MESS' 'FORMAT' '(E9.2)' 'TEST 3 : Qdensmir=' miqer ' Qdensmer=' meqer ' Qdensmar=' maqer ;
  179. 'SI' (('<EG' miqe miqer) 'OU' ('<EG' meqe meqer) 'OU' ('<EG' maqe maqer)) ;
  180. 'MESS' '!!! TEST 3 density distribution failed' ;
  181. lok = lok 'ET' faux ;
  182. 'FINS' ;
  183. *
  184. * TEST 4 On vérifie qu'en remaillant le maillage précédent avec la même
  185. * métrique uniforme constante donnée sous forme d'un champ isotrope
  186. * constant, on ne modifie pas le maillage
  187. *
  188. vcnx = '**' vden -2 ;
  189. cmet = 'MANU' 'CHPO' mail3 1 'G' vcnx ;
  190. mail4 = 'REMA' mail3 ('CONT' mail3) cmet ;
  191. mail4l = 'CHAN' 'LINE' mail4 ;
  192. * Test 4 : on vérifie que mail4 et mail3 sont identiques ainsi que les
  193. * qualités
  194. dn34= 'NBEL' ('DIFF' mail3 mail4) ;
  195. 'SI' ('NEG' dn34 0) ;
  196. 'MESS' '!!! TEST 4 : mail3 .NE. mail4' ;
  197. lok = lok 'ET' faux ;
  198. 'FINS' ;
  199. qmail4 = 'INDI' 'TOPO' 'COHE' 'DENS' mail4l cmet ;
  200. qmail4 = 'REDU' qmail4 mail3l ;
  201. dq34 = 'MAXI' ('-' qmail4 qmail3) 'ABS' ;
  202. 'SI' ('>' dq34 tol) ;
  203. 'MESS' '!!! TEST 4 : qmail3 .NE. qmail4' ;
  204. lok = lok 'ET' faux ;
  205. 'FINS' ;
  206. *
  207. * TEST 5 On vérifie qu'en remaillant le maillage précédent avec la même
  208. * métrique uniforme constante donnée sous forme d'un champ anisotrope
  209. * constant, on ne modifie pas le maillage
  210. *
  211. vcnx = '**' vden -2 ;
  212. cmet = 'MANU' 'CHPO' mail3 3 'G11' vcnx 'G22' vcnx
  213. 'G21' 0. ;
  214. mail5 = 'REMA' mail3 ('CONT' mail3) cmet ;
  215. mail5l = 'CHAN' 'LINE' mail5 ;
  216. * Test 5 : on vérifie que mail5 et mail3 sont identiques ainsi que les
  217. * qualités
  218. dn35= 'NBEL' ('DIFF' mail3 mail5) ;
  219. 'SI' ('NEG' dn35 0) ;
  220. 'MESS' '!!! TEST 5 : mail3 .NE. mail5' ;
  221. lok = lok 'ET' faux ;
  222. 'FINS' ;
  223. qmail5 = 'INDI' 'TOPO' 'COHE' 'DENS' mail5l cmet ;
  224. qmail5 = 'REDU' qmail5 mail3l ;
  225. dq35 = 'MAXI' ('-' qmail5 qmail3) 'ABS' ;
  226. * VALE prec un peu trop serré pour semt2
  227. 'SI' ('>' dq35 tol) ;
  228. 'MESS' '!!! TEST 5 : qmail3 .NE. qmail5' ;
  229. lok = lok 'ET' faux ;
  230. 'FINS' ;
  231. *
  232. * Test final
  233. *
  234. 'SI' ('NON' lok) ;
  235. 'ERREUR' 5 ;
  236. 'SINON' ;
  237. 'SAUT' 1 'LIGN' ;
  238. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  239. 'FINSI' ;
  240. *
  241. 'SI' interact ;
  242. 'OPTION' 'ECHO' 1 ;
  243. 'OPTION' 'DONN' 5 ;
  244. 'FINSI' ;
  245. *
  246. * End of dgibi file MATO-2D6
  247. *
  248. 'FIN' ;
  249.  
  250.  
  251.  

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