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

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