Télécharger voro3d.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : voro3d.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *----------------------------------------------------------------------*
  5. * voro3d.dgibi est un exemple d'utilisation dans un cas tridimensionel *
  6. * de la procedure MAILVORO de maillage d'agregats cubiques de polyedres*
  7. * de Voronoi. Cette procedure fait appel a l'operateur VORO *
  8. * La procedure @POINTIR permet de "tirer" aleatoirement un ensemble *
  9. * de points servant de germe de la partition de Voronoi. *
  10. *----------------------------------------------------------------------*
  11. * *
  12. * *
  13. * *
  14. *----------------------------------------------------------------------*
  15. * Maillage d'un agregat cubique de polyedres de Voronoi *
  16. *----------------------------------------------------------------------*
  17. * *
  18. *-------------------- Parametres de la realisation --------------------*
  19. * *
  20. * NBG1 : Nombre de polyedres. *
  21. * DEXC1 : Distance d'exclusion entre points germes des polyedres. *
  22. * Attention, si la distance est trop importante, le nombre *
  23. * de polyedres demandes ne pourra pas etre atteint. *
  24. * DENS1 : Densite (taille) moyenne des elements du maillage. *
  25. * Par defaut, vaut 1/5 de la taille moyenne des polyedres. *
  26. * IGER1 : Germe du generateur de nombres aleatoires. *
  27. * Mot-cle 'AUTO' => processus de congruence initialise a 1 *
  28. * ITRAC1 : VRAI => affichage resultats. *
  29. NBG1 = 4 ** 3 ;
  30. DEXC1 = 0.20 ;
  31. DENS1 = 0.25 * (('FLOT' NBG1) ** (-1. / 3.)) ;
  32. IGER1 = 1 ;
  33. ITRAC1 = FAUX ;
  34. *----------------------------------------------------------------------*
  35. 'OPTI' 'ECHO' 1 ;
  36. VECH1 = 'VALE' 'ECHO' ;
  37. VTRA1 = 'VALE' 'TRAC' ;
  38. * *
  39. *--------------------- Maillage d'un cube unite -----------------------*
  40. * *
  41. 'OPTI' 'DIME' 3 'ELEM' 'TET4' ;
  42. * *
  43. O1 = 0. 0. 0. ;
  44. X1 = 1. 0. 0. ;
  45. Y1 = 0. 1. 0. ;
  46. Z1 = 0. 0. 1. ;
  47. * *
  48. MCUB1 = ((O1 'DROI' 1 X1) 'TRAN' 1 Y1) 'VOLU' 'TRAN' 1 Z1 ;
  49. ACUB1 = ('ARET' MCUB1) 'COUL' 'VERT' ;
  50. * *
  51. *--------------- Tirage des points germes des polyedres ---------------*
  52. * *
  53. 'SAUT' 1 'LIGN' ;
  54. 'MESS' '***** Tirage des points germes des polyedres' ;
  55. MPTS1 = @POINTIR REPU NBG1 SPHE DEXC1 'GERM' IGER1 ;
  56. NBG1 = 'NBNO' MPTS1 ;
  57. * *
  58. 'SI' ITRAC1 ;
  59. 'TITR' ('CHAI' NBG1 ' germes tires ') ;
  60. 'TRAC' (ACUB1 'ET' MPTS1) ;
  61. 'FINS' ;
  62. * *
  63. *---------------- Partition de Voronoi du cube unite ------------------*
  64. * *
  65. * Construction d'une enveloppe orientee constituee que de TRI3 : *
  66. MCUB1 = 'CHAN' 'TET4' MCUB1 ;
  67. ENV1 = 'ENVE' MCUB1 ;
  68. ENV1 = 'INVE' ('ORIE' ENV1 'POIN' ('BARY' ENV1)) ;
  69. * *
  70. 'SAUT' 1 'LIGN' ;
  71. 'MESS' '***** Partition du cube unite en cellules de Voronoi ' ;
  72. 'TEMP' 'ZERO' ;
  73. TPVORO1 = 'VORO' MPTS1 ENV1 ;
  74. 'TEMP' ;
  75. * *
  76. 'SI' ITRAC1 ;
  77. 'TITR' ' Partition du cube unite en cellules de Voronoi ' ;
  78. 'TRAC' (TPVORO1 . 'VISU' 'ET' (MPTS1 'COUL' 'ROUG')) ;
  79. 'FINS' ;
  80. * *
  81. *--------------------- Maillage de la partition -----------------------*
  82. * *
  83. 'SAUT' 1 'LIGN' ;
  84. 'MESS' '***** Maillage de la partition ' ;
  85. TMVORO1 = MAILVORO TPVORO1 ENV1 'COUL';
  86. 'TEMP' ;
  87. * *
  88. *----------------------- Affichages / Donnees -------------------------*
  89. * *
  90. 'SI' ITRAC1 ;
  91. 'TITR' ' Visualisation du maillage ' ;
  92. 'TRAC' 'FACE' TMVORO1 . 'MAIL' ;
  93. * *
  94. * Structures de la table de resultat : *
  95. PTS1 = MPTS1 'POIN' 1 ;
  96. 'TITR' ' Le maillage de chaque polyedre est indice par son germe ' ;
  97. 'TRAC' 'FACE' (TMVORO1 . CELL. PTS1 . 'MAIL' 'ET' ACUB1) ;
  98. * *
  99. MAILG1 = TMVORO1 . CELL . PTS1 . 'MAIL' ;
  100. PTS2 = TMVORO1 . CELL . PTS1 . 'VOIS' 'POIN' 1 ;
  101. 'TITR' ' Les germes des voisins sont au sous-indice "VOIS" ' ;
  102. 'TRAC' 'FACE' (MAILG1 'ET' TMVORO1 . CELL .PTS2 . 'MAIL' 'ET' ACUB1) ;
  103. 'FINS' ;
  104. * *
  105. 'FIN' ;
  106. 'OPTI' 'ECHO' 1 ;
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  

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