Télécharger tria.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : tria.dgib
  2. ************************************************************************
  3. ************************************************************************
  4. ************************************************************************
  5. * tria.dgibi : CAS TEST de l'operateur TRIA *
  6. * Triangulation de Delaunay d'un maillage de points (type POI1). *
  7. * On teste plusieurs cas : en 1D, 2D et 3D, avec, a chaque fois : *
  8. * - un nuage de points distribues aleatoirement ; *
  9. * - un reseau regulier (test de robustesse de l'algorithme). *
  10. ************************************************************************
  11.  
  12. ** INDICATEUR DE TRACE
  13. ITRAC = FAUX ;
  14. OPTI 'ECHO' 1 'TRAC' 'X' ;
  15.  
  16.  
  17. ************************************************************************
  18. * EN DIMENSION 1 *
  19. ************************************************************************
  20.  
  21. OPTI 'DIME' 1 'ELEM' 'SEG2' ;
  22.  
  23. ** POINTS ALEATOIRES
  24. N1 = 10 ;
  25. LX = BRUI 'BLAN' 'UNIF' 0.5 0.5 N1 ;
  26. REPE B1 N1 ;
  27. SI (&B1 EGA 1) ;
  28. MAIL1 = POIN (EXTR LX &B1) ;
  29. SINO ;
  30. MAIL1 = MAIL1 ET (POIN (EXTR LX &B1)) ;
  31. FINS ;
  32. FIN B1 ;
  33. MAIL1 = MAIL1 COUL 'ROUG' ;
  34. MAIL2 = TRIA MAIL1 ;
  35. SI ITRAC ;
  36. TRAC (MAIL2 ET MAIL1) 'TITR' 'Points aleatoires (1D)' ;
  37. FINS ;
  38.  
  39.  
  40.  
  41.  
  42. ************************************************************************
  43. * EN DIMENSION 2 *
  44. ************************************************************************
  45.  
  46. OPTI 'DIME' 2 'ELEM' 'TRI3' ;
  47.  
  48. ** POINTS ALEATOIRES DANS LE PLAN
  49. N1 = 8 ;
  50. LX = BRUI 'BLAN' 'UNIF' 0.5 0.5 N1 ;
  51. LY = BRUI 'BLAN' 'UNIF' 0.5 0.5 N1 ;
  52. REPE B1 N1 ;
  53. SI (&B1 EGA 1) ;
  54. MAIL1 = ((EXTR LX &B1) (EXTR LY &B1)) ;
  55. SINO ;
  56. MAIL1 = MAIL1 ET ((EXTR LX &B1) (EXTR LY &B1)) ;
  57. FINS ;
  58. FIN B1 ;
  59. MAIL1 = MAIL1 COUL 'ROUG' ;
  60. MAIL2 = TRIA MAIL1 ;
  61. MAIL21 = TRIA MAIL1 'CONV' ;
  62. MAIL22 = TRIA MAIL1 0.2 ;
  63. MAIL23 = TRIA MAIL1 0.2 'CONV' ;
  64. MAIL3 = CONT MAIL2 ;
  65. MES2 = MESU MAIL2 ;
  66. MES3 = MESU MAIL3 'SURF' ;
  67. SI (('ABS' (MES2 - MES3)) '>' 1.E-13) ;
  68. MESS ' ****** Erreur dans TRIA :'
  69. MESS ' Les mesures des deux triangulations ne sont pas identiques' ;
  70. ERRE 5 ;
  71. FINS ;
  72. SI ITRAC ;
  73. TRAC (MAIL2 ET MAIL1) 'TITR' 'Points aleatoires (2D)' ;
  74. TRAC (MAIL21 ET MAIL1) 'TITR' 'Points aleatoires (2D) + CONV' ;
  75. TRAC (MAIL22 ET MAIL1) 'TITR' 'Points aleatoires (2D) + 0.2' ;
  76. TRAC (MAIL23 ET MAIL1) 'TITR' 'Points aleatoires (2D) + 0.2 + CONV' ;
  77. FINS ;
  78.  
  79.  
  80.  
  81. ** POINTS REPARTIS SUR UN RESEAU CARRE REGULIER
  82. N1 = 3 ;
  83. L1 = D N1 (0. 0.) (1. 0.) ;
  84. MAIL1 = (CHAN 'POI1' (L1 TRAN N1 (0. 1.))) COUL 'ROUG' ;
  85. MAIL2 = TRIA MAIL1 ;
  86. MAIL21 = TRIA MAIL1 'CONV' ;
  87. MAIL22 = TRIA MAIL1 0.2 ;
  88. MAIL23 = TRIA MAIL1 0.2 'CONV' ;
  89. MAIL3 = CONT MAIL2 ;
  90. MES2 = MESU MAIL2 ;
  91. MES3 = MESU MAIL3 'SURF' ;
  92. SI (('ABS' (MES2 - MES3)) '>' 1.E-13) ;
  93. MESS ' ****** Erreur dans TRIA :'
  94. MESS ' Les mesures des deux triangulations ne sont pas identiques' ;
  95. ERRE 5 ;
  96. FINS ;
  97. SI ITRAC ;
  98. TRAC (MAIL2 ET MAIL1) 'TITR' 'Points reguliers (2D)' ;
  99. TRAC (MAIL21 ET MAIL1) 'TITR' 'Points reguliers (2D) + CONV' ;
  100. TRAC (MAIL22 ET MAIL1) 'TITR' 'Points reguliers (2D) + 0.2' ;
  101. TRAC (MAIL23 ET MAIL1) 'TITR' 'Points reguliers (2D) + 0.2 + CONV' ;
  102. FINS ;
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110. ** POINTS ALEATOIRES MAIS ALIGNES
  111. N1 = 5 ;
  112. LX = BRUI 'BLAN' 'UNIF' 0.5 0.5 N1 ;
  113. REPE B1 (DIME LX) ;
  114. SI (&B1 EGA 1) ;
  115. MAIL1 = ((EXTR LX &B1) 0.) ;
  116. SINO ;
  117. MAIL1 = MAIL1 ET ((EXTR LX &B1) 0.) ;
  118. FINS ;
  119. FIN B1 ;
  120. DEPL MAIL1 'PROJ' 'DIRE' (0. 1.) 'DROI' (0. 2.) (2. 3.) ;
  121. MAIL1 = MAIL1 COUL 'ROUG' ;
  122. MAIL2 = TRIA MAIL1 ;
  123. MAIL21 = TRIA MAIL1 'CONV' ;
  124. MAIL22 = TRIA MAIL1 0.05 ;
  125. MAIL23 = TRIA MAIL1 0.05 'CONV' ;
  126. SI ITRAC ;
  127. TRAC (MAIL2 ET MAIL1) 'ELEM' 'TITR' 'Points aleatoires alignes (2D)' ;
  128. TRAC (MAIL21 ET MAIL1) 'ELEM' 'TITR'
  129. 'Points aleatoires alignes (2D) + CONV' ;
  130. TRAC (MAIL22 ET MAIL1) 'ELEM' 'TITR'
  131. 'Points aleatoires alignes (2D) + 0.05' ;
  132. TRAC (MAIL23 ET MAIL1) 'ELEM' 'TITR'
  133. 'Points aleatoires alignes (2D) + 0.05 + CONV' ;
  134. FINS ;
  135.  
  136.  
  137.  
  138.  
  139. ************************************************************************
  140. * EN DIMENSION 3 *
  141. ************************************************************************
  142. OPTI 'DIME' 3 'ELEM' 'TET4' ;
  143.  
  144. R1 = @REPERE (-0.5 -0.5 -0.5) (PROG 1. 1. 1.) VRAI 'VERT' ;
  145.  
  146. ** POINTS ALEATOIRES DANS L'ESPACE
  147. N1 = 30 ;
  148. LX = BRUI 'BLAN' 'UNIF' 0.5 0.5 N1 ;
  149. LY = BRUI 'BLAN' 'UNIF' 0.5 0.5 N1 ;
  150. LZ = BRUI 'BLAN' 'UNIF' 0.5 0.5 N1 ;
  151. REPE B1 N1 ;
  152. SI (&B1 EGA 1) ;
  153. MAIL1 = ((EXTR LX &B1) (EXTR LY &B1) (EXTR LZ &B1)) ;
  154. SINO ;
  155. MAIL1 = MAIL1 ET ((EXTR LX &B1) (EXTR LY &B1) (EXTR LZ &B1)) ;
  156. FINS ;
  157. FIN B1 ;
  158. MAIL1 = MAIL1 COUL 'ROUG' ;
  159. MAIL2 = TRIA MAIL1 ;
  160. MAIL21 = TRIA MAIL1 'CONV' ;
  161. MAIL22 = TRIA MAIL1 0.4 ;
  162. MAIL23 = TRIA MAIL1 0.4 'CONV' ;
  163. MAIL3 = ENVE MAIL2 ;
  164. MES2 = MESU MAIL2 ;
  165. MES3 = MESU MAIL3 'VOLU' ;
  166. SI (('ABS' (MES2 - MES3)) '>' 1.E-13) ;
  167. MESS ' **** Erreur dans TRIA:' ;
  168. MESS ' Les mesures des deux triangulations ne sont pas identiques' ;
  169. ERRE 5 ;
  170. FINS ;
  171. SI ITRAC ;
  172. TRAC (MAIL2 ET MAIL1 ET R1) 'TITR' 'Points aleatoires (3D)' ;
  173. TRAC (MAIL21 ET MAIL1 ET R1) 'TITR' 'Points aleatoires (3D) + CONV' ;
  174. TRAC (MAIL22 ET MAIL1 ET R1) 'TITR' 'Points aleatoires (3D) + 0.4' ;
  175. TRAC (MAIL23 ET MAIL1 ET R1) 'TITR'
  176. 'Points aleatoires (3D) + 0.4 + CONV' ;
  177. FINS ;
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184. ** POINTS REPARTIS SUR UN RESEAU CUBIQUE REGULIER
  185. N1 = 3 ;
  186. L1 = D N1 (0. 0. 0.) (1. 0. 0.) ;
  187. S1 = L1 TRAN N1 (0. 1. 0.) ;
  188. MAIL1 = (CHAN 'POI1' (S1 VOLU 'TRAN' N1 (0. 0. 1.))) COUL 'ROUG' ;
  189. MAIL2 = TRIA MAIL1 ;
  190. MAIL21 = TRIA MAIL1 'CONV' ;
  191. MAIL22 = TRIA MAIL1 0.2 ;
  192. MAIL23 = TRIA MAIL1 0.2 'CONV' ;
  193. MAIL3 = ENVE MAIL2 ;
  194. MES2 = MESU MAIL2 ;
  195. MES3 = MESU MAIL3 'VOLU' ;
  196. SI (('ABS' (MES2 - MES3)) '>' 1.E-13) ;
  197. MESS ' ****** Erreur dans TRIA :'
  198. MESS ' Les mesures des deux triangulations ne sont pas identiques' ;
  199. ERRE 5 ;
  200. FINS ;
  201. SI ITRAC ;
  202. TRAC (MAIL2 ET MAIL1 ET R1) 'TITR' 'Points reguliers (3D)' ;
  203. TRAC (MAIL21 ET MAIL1 ET R1) 'TITR' 'Points reguliers (3D) + CONV' ;
  204. TRAC (MAIL22 ET MAIL1 ET R1) 'TITR' 'Points reguliers (3D) + 0.2' ;
  205. TRAC (MAIL23 ET MAIL1 ET R1) 'TITR'
  206. 'Points reguliers (3D) + 0.2 + CONV' ;
  207. FINS ;
  208.  
  209.  
  210.  
  211.  
  212.  
  213. ** POINTS ALEATOIRES MAIS COPLANAIRES
  214. N1 = 20 ;
  215. LX = BRUI 'BLAN' 'UNIF' 0.5 0.5 N1 ;
  216. LY = BRUI 'BLAN' 'UNIF' 0.5 0.5 N1 ;
  217. REPE B1 N1 ;
  218. SI (&B1 EGA 1) ;
  219. MAIL1 = ((EXTR LX &B1) (EXTR LY &B1) 0.) ;
  220. SINO ;
  221. MAIL1 = MAIL1 ET ((EXTR LX &B1) (EXTR LY &B1) 0.) ;
  222. FINS ;
  223. FIN B1 ;
  224. DEPL MAIL1 'PROJ' 'DIRE' (0. 0. 1.) 'PLAN'
  225. (0. 0. 1.) (0. 1. 1.5) (1. 0. 0.) ;
  226. MAIL1 = MAIL1 COUL 'ROUG' ;
  227. MAIL2 = TRIA MAIL1 ;
  228. MAIL21 = TRIA MAIL1 'CONV' ;
  229. MAIL22 = TRIA MAIL1 0.2 ;
  230. MAIL23 = TRIA MAIL1 0.2 'CONV' ;
  231. SI ITRAC ;
  232. TRAC (MAIL2 ET MAIL1 ET R1) 'TITR'
  233. 'Points aleatoires coplanaires (3D)' ;
  234. TRAC (MAIL21 ET MAIL1 ET R1) 'TITR'
  235. 'Points aleatoires coplanaires (3D) + CONV' ;
  236. TRAC (MAIL22 ET MAIL1 ET R1) 'TITR'
  237. 'Points aleatoires coplanaires (3D) + 0.2' ;
  238. TRAC (MAIL23 ET MAIL1 ET R1) 'TITR'
  239. 'Points aleatoires coplanaires (3D) + 0.2 + CONV' ;
  240. FINS ;
  241.  
  242.  
  243. ** POINTS REPARTIS SUR UN RESEAU CARRE COPLANAIRES
  244. N1 = 4 ;
  245. L1 = D N1 (0. 0. 0.) (1. 0. 0.) ;
  246. MAIL1 = L1 TRAN N1 (0. 1. 0.) ;
  247. DEPL MAIL1 'PROJ' 'DIRE' (0. 0. 1.) 'PLAN'
  248. (0. 0. 0.3) (0. 1. 0.5) (1. 0. 0.) ;
  249. MAIL1 = (CHAN 'POI1' MAIL1) COUL 'ROUG' ;
  250. MAIL2 = TRIA MAIL1 ;
  251. MAIL21 = TRIA MAIL1 'CONV' ;
  252. MAIL22 = TRIA MAIL1 0.1 ;
  253. MAIL23 = TRIA MAIL1 0.1 'CONV' ;
  254. SI ITRAC ;
  255. TRAC (MAIL2 ET MAIL1 ET R1) 'TITR'
  256. 'Points reguliers coplanaires (3D)' ;
  257. TRAC (MAIL21 ET MAIL1 ET R1) 'TITR'
  258. 'Points reguliers coplanaires (3D) + CONV' ;
  259. TRAC (MAIL22 ET MAIL1 ET R1) 'TITR'
  260. 'Points reguliers coplanaires (3D) + 0.1' ;
  261. TRAC (MAIL23 ET MAIL1 ET R1) 'TITR'
  262. 'Points reguliers coplanaires (3D) + 0.1 + CONV' ;
  263. FINS ;
  264.  
  265.  
  266. ** POINTS ALEATOIRES MAIS ALIGNES
  267. N1 = 4 ;
  268. LX = BRUI 'BLAN' 'UNIF' 0.5 0.5 N1 ;
  269. REPE B1 N1 ;
  270. SI (&B1 EGA 1) ;
  271. MAIL1 = ((EXTR LX &B1) 0. 0.) ;
  272. SINO ;
  273. MAIL1 = MAIL1 ET ((EXTR LX &B1) 0. 0.) ;
  274. FINS ;
  275. FIN B1 ;
  276. DEPL MAIL1 'PROJ' 'DIRE' (0. 1. 0.) 'PLAN'
  277. (0. 0. 0.) (0. 0. 1.) (1. 2. 0.) ;
  278. DEPL MAIL1 'PROJ' 'DIRE' (0. 0. 1.) 'PLAN'
  279. (0. 0. 0.5) (1. 0. 1.) (0. 1. 1.) ;
  280. MAIL1 = MAIL1 COUL 'ROUG' ;
  281. MAIL2 = TRIA MAIL1 ;
  282. MAIL21 = TRIA MAIL1 'CONV' ;
  283. MAIL22 = TRIA MAIL1 0.2 ;
  284. MAIL23 = TRIA MAIL1 0.2 'CONV' ;
  285. SI ITRAC ;
  286. TRAC (MAIL2 ET MAIL1 ET R1) 'ELEM' 'TITR'
  287. 'Points aleatoires coplanaires (3D)' ;
  288. TRAC (MAIL21 ET MAIL1 ET R1) 'ELEM' 'TITR'
  289. 'Points aleatoires coplanaires (3D) + CONV' ;
  290. TRAC (MAIL22 ET MAIL1 ET R1) 'ELEM' 'TITR'
  291. 'Points aleatoires coplanaires (3D) + 0.2' ;
  292. TRAC (MAIL23 ET MAIL1 ET R1) 'ELEM' 'TITR'
  293. 'Points aleatoires coplanaires (3D) + 0.2 + CONV' ;
  294. FINS ;
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303. ************************************************************************
  304. * MAILLAGE A PARTIR D'UN CONTOUR/SURFACE (EN DIMENSION 2) *
  305. * ENVELOPPE/VOLUME (EN DIMENSION 3) *
  306. ************************************************************************
  307. OPTI 'DIME' 2 'ELEM' 'TRI3' ;
  308.  
  309. ** TRIANGULATION A PARTIR D'UN CONTOUR FERME EN U
  310. X1 = 0.05 ;
  311. N1 = 15 ;
  312. N2 = 4 ;
  313. L1 = D N1 (0. 0.) (1. 0.) ;
  314. L2 = D N1 L1 (1. 1.) ;
  315. L3 = D N2 L2 ((0.5+X1) 1.) ;
  316. L4 = D N1 L3 ((0.5+X1) 0.1) ;
  317. L5 = D N2 L4 ((0.5-X1) 0.1) ;
  318. L6 = D N1 L5 ((0.5-X1) 1.) ;
  319. L7 = D N2 L6 (0. 1.) ;
  320. L8 = D N1 L7 (0. 0.) ;
  321. ELIM L8 1.E-9 ;
  322. MAIL1 = TRIA L8 0.2 ;
  323. SI ITRAC ;
  324. TRAC MAIL1 'TITR' 'Remplissage a partir du contour' ;
  325. FINS ;
  326. S8 = SURF L8 ;
  327. MAIL1 = TRIA S8 0.2 ;
  328. SI ITRAC ;
  329. TRAC MAIL1 'TITR' 'Re-maillage a partir d une surface' ;
  330. FINS ;
  331.  
  332. OPTI 'DIME' 3 'ELEM' 'TET4' ;
  333. V8 = CHAN 'TET4' (MAIL1 VOLU 'TRAN' 4 (0. 0. 0.5)) ;
  334. ENV8 = ENVE V8 ;
  335. MAIL1 = TRIA ENV8 0.2 ;
  336. SI ITRAC ;
  337. TRAC 'FACE' MAIL1 'TITR' 'Maillage a partir de l enveloppe' ;
  338. FINS ;
  339. MAIL1 = TRIA V8 0.2 ;
  340. SI ITRAC ;
  341. TRAC 'FACE' MAIL1 'TITR' 'Re-maillage a partir d un volume' ;
  342. FINS ;
  343.  
  344.  
  345. FIN ;
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  

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