Download voro3d.dgibi

Back to the list

* fichier : voro3d.dgibi
*----------------------------------------------------------------------*
* voro3d.dgibi est un exemple d'utilisation dans un cas tridimensionel *
* de la procedure MAILVORO de maillage d'agregats cubiques de polyedres*
* de Voronoi. Cette procedure fait appel a l'operateur VORO            *
* La procedure @POINTIR permet de "tirer" aleatoirement un ensemble    *
* de points servant de germe de la partition de Voronoi.               *
*----------------------------------------------------------------------*
*                                                                      *
*                                                                      *
*                                                                      *
*----------------------------------------------------------------------*
*        Maillage d'un agregat cubique de polyedres de Voronoi         *
*----------------------------------------------------------------------*
*                                                                      *
*-------------------- Parametres de la realisation --------------------*
*                                                                      *
* NBG1     : Nombre de polyedres.                                      *
* DEXC1    : Distance d'exclusion entre points germes des polyedres.   *
*            Attention, si la distance est trop importante, le nombre  *
*            de polyedres demandes ne pourra pas etre atteint.         *
* DENS1    : Densite (taille) moyenne des elements du maillage.        *
*            Par defaut, vaut 1/5 de la taille moyenne des polyedres.  *
* IGER1    : Germe du generateur de nombres aleatoires.                *
*            Mot-cle 'AUTO' => processus de congruence initialise a 1  *
* ITRAC1   : VRAI => affichage resultats.                              *
NBG1     = 4 ** 3 ;
DEXC1    = 0.20 ;
DENS1    = 0.25 * (('FLOT' NBG1) ** (-1. / 3.)) ;
IGER1    = 1 ;
ITRAC1   = FAUX ;
*----------------------------------------------------------------------*
'OPTI' 'ECHO' 1 ;
VECH1    = 'VALE' 'ECHO' ;
VTRA1    = 'VALE' 'TRAC' ;
*                                                                      *
*--------------------- Maillage d'un cube unite -----------------------*
*                                                                      *
'OPTI' 'DIME' 3 'ELEM' 'TET4' ;
*                                                                      *
O1       = 0. 0. 0. ;
X1       = 1. 0. 0. ;
Y1       = 0. 1. 0. ;
Z1       = 0. 0. 1. ;
*                                                                      *
MCUB1    = ((O1 'DROI' 1 X1) 'TRAN' 1 Y1) 'VOLU' 'TRAN' 1 Z1 ;
ACUB1    = ('ARET' MCUB1) 'COUL' 'VERT' ;
*                                                                      *
*--------------- Tirage des points germes des polyedres ---------------*
*                                                                      *
'SAUT' 1 'LIGN' ;
'MESS' '***** Tirage des points germes des polyedres' ;
MPTS1    = @POINTIR REPU NBG1 SPHE DEXC1 'GERM' IGER1 ;
NBG1     = 'NBNO' MPTS1 ;
*                                                                      *
'SI' ITRAC1 ;
  'TITR' ('CHAI' NBG1 ' germes tires ') ;
  'TRAC' (ACUB1 'ET' MPTS1) ;
'FINS' ;
*                                                                      *
*---------------- Partition de Voronoi du cube unite ------------------*
*                                                                      *
* Construction d'une enveloppe orientee constituee que de TRI3 :       *
MCUB1    = 'CHAN' 'TET4' MCUB1 ;
ENV1     = 'ENVE' MCUB1 ;
ENV1     = 'INVE' ('ORIE' ENV1 'POIN' ('BARY' ENV1)) ;
*                                                                      *
'SAUT' 1 'LIGN' ;
'MESS' '***** Partition du cube unite en cellules de Voronoi ' ;
'TEMP' 'ZERO' ;
TPVORO1   = 'VORO' MPTS1 ENV1 ;
'TEMP' ;
*                                                                      *
'SI' ITRAC1 ;
  'TITR' ' Partition du cube unite en cellules de Voronoi ' ;
  'TRAC' (TPVORO1 . 'VISU' 'ET' (MPTS1 'COUL' 'ROUG')) ;
'FINS' ;
*                                                                      *
*--------------------- Maillage de la partition -----------------------*
*                                                                      *
'SAUT' 1 'LIGN' ;
'MESS' '***** Maillage de la partition ' ;
TMVORO1  = MAILVORO TPVORO1 ENV1 'COUL';
'TEMP' ;
*                                                                      *
*----------------------- Affichages / Donnees -------------------------*
*                                                                      *
'SI' ITRAC1 ;
  'TITR' ' Visualisation du maillage ' ;
  'TRAC' 'FACE' TMVORO1 . 'MAIL' ;
*                                                                      *
* Structures de la table de resultat :                                 *
  PTS1     = MPTS1 'POIN' 1 ;
  'TITR' ' Le maillage de chaque polyedre est indice par son germe ' ;
  'TRAC' 'FACE' (TMVORO1 . CELL. PTS1 . 'MAIL' 'ET' ACUB1) ;
*                                                                      *
  MAILG1   = TMVORO1 . CELL . PTS1 . 'MAIL' ;
  PTS2     = TMVORO1 . CELL . PTS1 . 'VOIS' 'POIN' 1 ;
  'TITR' ' Les germes des voisins sont au sous-indice "VOIS" ' ;
  'TRAC' 'FACE' (MAILG1 'ET' TMVORO1 . CELL .PTS2 . 'MAIL' 'ET' ACUB1) ;
'FINS' ;
*                                                                      *
'FIN' ;
'OPTI' 'ECHO' 1 ;

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer