* fichier : inclusions.dgibi *----------------------------------------------------------------------* *----------------------------------------------------------------------* * Maillage d'un echantillon cubique * * de particules spheriques en inclusion dans une matrice * *----------------------------------------------------------------------* * * *-------------------- Parametres de la realisation --------------------* * NBG1 : Nombre de particules. * * 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 = 3 ** 3 ; DEXC1 = 0.33 ; 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 ------------------* * * 'SAUT' 1 'LIGN' ; 'MESS' '***** Partition du cube unite en cellules de Voronoi ' ; 'TEMP' 'ZERO' ; TPVORO1 = @P_BOIT2 (@P_VORO MPTS1) ; 'TEMP' ; * * 'SI' ITRAC1 ; 'TITR' ' Partition du cube unite en cellules de Voronoi ' ; 'TRAC' (TPVORO1 . 'MAV' 'ET' (MPTS1 'COUL' 'ROUG')) ; 'FINS' ; * * *--------------------- Maillage des inclusions ------------------------* * * * On prend pour diametre des inclusions 0,97 fois la dist. d'exclusion * TAB1 = @INCLUSI TPVORO1 (0.95 * DEXC1) DEXC1 (DENS1) (ITRAC1) ; * * *----------------------- Affichages / Donnees -------------------------* * * 'SI' ITRAC1 ; 'TITR' ' Visualisation du maillage de la matrice ' ; 'TRAC' 'FACE' TAB1 . 'MATR' ; 'TITR' ' Visualisation du maillage des inclusions ' ; 'TRAC' 'FACE' TAB1 . 'PART' ; 'TITR' ' Visualisation du maillage "total"' ; 'TRAC' 'FACE' TAB1 . 'MAIL' ; * * * Structure de la table de resultat : * PTS1 = MPTS1 'POIN' 1 ; 'TITR' ' Le maillage de chaque inclusion est indice par son centre ' ; 'TRAC' 'FACE' (TAB1 . PTS1 . 'PART' 'ET' ACUB1) ; 'TITR' ' Ainsi que la portion de matrice relative a la cellule de Voronoi' ; 'TRAC' 'FACE' (TAB1 . PTS1 . 'MATR' 'ET' ACUB1) 'COUP' PTS1 (PTS1 'PLUS' Y1) (PTS1 'PLUS' Z1) ; * * MAILG1 = TAB1 . PTS1 . 'MAIL' ; PTS2 = TAB1 . PTS1 . 'MPT' 'POIN' 2 ; 'TITR' 'Les centres des inclusions voisines sont au sous-indice "MPT"' ; 'TRAC' 'FACE' (MAILG1 'ET' TAB1 . PTS1 . 'MPT' 'ET' ACUB1) ; 'TITR' 'Ce qui donne acces aux maillages relatifs a ces inclusions voisines' ; 'TRAC' 'FACE' (('ARET' MAILG1) 'ET' TAB1 . PTS2 . 'MAIL' 'ET' ACUB1) ; MAILG2 = TAB1 . PTS2 . 'MAIL' ; AG1G2 = 'ARET' (MAILG1 'ET' MAILG2) ; 'TITR' 'La face a 2 inclusions voisines sont sous-indicees par leurs centres' ; 'TRAC' 'FACE' (TAB1 . PTS1 . PTS2 . 'MATR' 'ET' ACUB1 'ET' AG1G2) ; 'FINS' ; * * 'FIN' ; 'OPTI' 'ECHO' 1 ;