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

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