L'étape initiale réside dans le processus de germination qui
va fixer les positions des centres des grains sur la trame.
Une propagation isotrope à partir cet ensemble de points
va ensuite déterminer leur fonction distance
euclidienne [Gratin92a,Gratin93].
Une telle opération est assimilable à un processus de croissance
où chaque centre se comporte comme une source. Le résultat est
représenté sous la forme d'une image dont les niveaux de gris
indiquent en chaque point la distance à la source la plus proche.
L'image de la Figure 1a est
obtenue dans le cas d'une source unique. Dans le cas de
plusieurs sources, le même algorithme calcule en chaque point de
l'image sa distance à la source la plus proche (Figure 1b).
Pour optimiser les temps de calcul (cette étape en représente
la plus grande partie) , nous faisons
appel à la technique très efficace des files d'attentes hierarchiques
[Meyer90a,Gratin92b,Gratin93].
L'espace mémoire
requis est aussi considérable puisqu'elle nécessite de créer
une image intermédiaire de nombres flottants. Par exemple, 63 Mo sont
utilisés pour le calcul d'un domaine de voxels.
A présent, si l'on souhaite obtenir une résolution analytique du problème,
il reste possible d'utiliser les informations de voisinage entre grains
présentes dans l'image discrète du milieu. Lorsque le
volume des grains (en nombre de voxels) est suffisant, ces relations
de voisinage (graphe de Delaunay) ne comportent aucune erreur.
Le calcul des intersections entre plans médiateurs en est alors fortement
simplifié et permet par exemple d'obtenir les coordonnées précises
des sommets des polyèdres dans le domaine continu. Un maillage peut
ensuite être établi à partir de la microstructure.
Les temps d'exécution de l'algorithme proposé sont relativement courts, et négligeables en comparaison avec la durée des calculs par éléments finis qui exploitent ensuite la microstructure générée. De plus, la complexité des calculs dépend presque uniquement du nombre de voxels du domaine à générer, et non du nombre de polyèdres. A titre d'exemple, sur un micro-ordinateur de type PC sous Linux (133 MHz, 64Mo de mémoire), 200 secondes sont nécessaires pour produire un domaine cubique de voxels contenant aussi bien 1000 que 3000 polyèdres.