atomsk --polycrystal <germe> <fichier_param> <fichiersortie> [<formats>] [options]
Ce mode génère un polycristal à partir d'une cellule élémentaire, en utilisant la méthode de Voronoi et les paramètres fournis dans le fichier <fichier_param>. Les positions et orientations cristallographiques des grains peuvent être explicitement données, ou bien générées aléatoirement.
Le fichier <germe> doit contenir un système atomique dans l'un des formats supportés. Habituellement il s'agit d'une cellule élémentaire d'un matériau (de tels systèmes simples peuvent être créés grâce au mode --create
). Cependant le <germe> peut également être une super-cellule, un système complexe contenant des défauts, un polycristal, ou bien n'importe quel autre système atomique.
Le <fichier_param> est un fichier texte qui doit contenir des mots-clés suivis des valeurs appropriées. Les lignes vides et celles commençant par un croisillon (#) sont ignorées.
Le mot-clé box est obligatoire et doit apparaître avant tout autre mot-clé. Il doit être suivi (sur la même ligne) de trois nombres réels indiquant les dimensions de la boîte finale (en Å). La boîte finale ne peut être qu'un parallélépipède.
Le mot-clé random <N> peut être utilisé pour générer une structure aléatoire constituée de <N> grains. Les positions et les orientations cristallographiques des grains seront générées aléatoirement par le programme. Notez que cette option tente de définir des nombres au hasard, elle est donc largement non-reproductible, c-à-d. qu'en partant du même germe et du même <fichier_param> il est très probable d'obtenir des résultats différents. Atomsk créera un nouveau fichier de paramètres, dont le nom se terminera par "_param.txt", contenant les positions et orientations aléatoires des grains qui ont été générées. Ce nouveau fichier de paramètres peut être réutilisé afin de reproduire le même polycrystal.
Avec le mot-clé lattice, suivi d'un type de réseau, les positions des grains seront similaires à celles du réseau donné. Les types de réseau supportés sont "bcc", "fcc", "diamond", "hcp". Par exemple avec un réseau "fcc", les germes seront placés à chaque coin de la boîte ainsi qu'au centre de chaque face. Les orientations cristallographiques des grains seront définies de façon aléatoire par le programe.
Le mot-clé node peut être utilisé pour définir explicitement la position (x,y,z) et l'orientation cristallographique d'un grain. Les coordonnées x, y, z sont habituellement données en Å. Il est également possible de spécifier une distance relative aux dimensions de la boîte avec le mot-clé BOX et une opération (voir cette page). Pour chaque grain, l'orientation cristallographique peut être donnée de l'une des façons suivantes :
Chaque ligne commençant avec le mot-clé node définit les propriétés d'un grain.
Les mots-clés random, lattice et node sont mutuellement exclusifs. Un seul de ces mots-clé peut être utilisé dans un fichier de paramètres.
Les grains sont construits en utilisant une méthode de tessellation de type Voronoï en 3-D : le <germe> est placé à la position d'un nœud, et multiplié dans les trois directions de l'espace à l'intérieur de son polyèdre de Voronoï.
Si une dimension de la boîte est plus petite que la dimension du <germe> fourni, alors une tessellation de Voronoï en 2-D sera automatiquement utilisée. La dimension de la boîte finale sera automatiquement égale à la dimension correspondante du <germe>. Si les grains doivent avoir une orientation aléatoire alors le réseau cristallin ne sera tourné qu'autour de cet axe, i.e. tous les grains auront la même orientation cristallographique suivant cet axe. Notez qu'il est ensuite possible d'utiliser l'option -duplicate
pour générer une structure colonnaire.
Si le <germe> initial contient des coquilles (dans le cadre d'un modèle ionique cœur-coquille) celles-ci sont dupliquées en même temps que les atomes (ou cœurs). Si des propriétés auxiliaires sont définies pour chaque atome dans le <germe> initial, alors les répliques des atomes possèderont les mêmes propriétés que les atomes originaux.
Le mode --polycrystal
créera une nouvelle propriété auxiliaire pour chaque atome : le "grainID", c'est-à-dire le numéro du grain auquel l'atome appartient. Ceci permet de facilement sélectionner les grains, par exemple avec l'option -select
. Notez que les propriétés auxiliaires ne peuvent être écrites que dans certains formats de fichiers, par exemple le format CFG d'Atomeye.
Une fois le polycristal généré, Atomsk produira les fichiers supplémentaires suivants :
Si ce mode est employé avec une ou plusieurs options, celles-ci seront appliquées au polycristal.
Après la génération du polycristal certains atomes peuvent se trouver à l'extérieur de la boîte de simulation, ce qui peut être corrigé en utilisant l'option -wrap
. Par ailleurs certains atomes peuvent être trop près les uns des autres (aux joints de grains), ce qui peut être résolu grâce à l'option -remove-doubles
.
Beware that the system you create with this mode is not relaxed nor optimized.
# Polycristal avec 12 grains aléatoires
box 250 250 200
random 12
atomsk --polycrystal fcc_cellule.xsf voronoi_random.txt fcc_polycristal.cfg lmp
Voici la façon la plus simple de construire un polycristal avec Atomsk. Dans le fichier voronoi_random.txt
on demande à construire un système de taille 250x250x200 Å3, comprenant douze grains dont les positions et orientations cristallographiques seront aléatoires. Le germe est contenu dans le fichier fcc_cellule.xsf
. Le résultat final sera écrit dans les fichiers fcc_polycristal.cfg
et fcc_polycristal.lmp
.
# Polycrystal de Voronoi avec un arrangement cfc
box 200 200 200
lattice fcc
atomsk --polycrystal cellule.xsf voronoi_lattice.txt polycrystal.cfg lmp
Ceci créera un système de taille 200x200x200 Å3, où les grains seront arrangés de façon similaire à un réseau cfc.
# Paramètres pour construire un polycristal avec atomsk
box 300 300 300
node 0 0 0 [100] [010] [001]
node 40 80 60 56° -83° 45°
node 80 60 90 [11-1] [112] [1-10]
node 50 5 60 [110] [1-10] [001]
node 0.75*box 0.75*box 0.95*box -31.4° 28.7° 90.0°
node 60 100 80 random
atomsk --polycrystal fcc_cellule.xsf mon_polycristal.txt fcc_polycristal.cfg lmp
Ceci construira un polycristal dans une boîte de taille 300x300x300 Å3. Les positions des grains sont définies explicitement. Pour certains grains l'orientation est donnée par des indices de Miller, pour d'autres par des angles. Enfin pour le dernier grain, le programme générera une orientation cristallographique aléatoire.
# Paramètres pour construire un polycristal colonnaire avec atomsk
box 300 300 0
random 12
atomsk --polycrystal bcc_cellule.xsf bcc_polycrystal.txt bcc_polycrystal.xsf -wrap -duplicate 1 1 16
Supposons que le fichier bcc_cellule.xsf
contienne une cellule unité d'un métal bcc de paramètre de maille 2.9 Å. Le fichier bcc_polycrystal.txt
indique de construire un système de taille 300x300x0 Å3, avec 12 grains générés aléatoirement. Puisque la taille du système suivant Z (0 Å) est plus petite que le paramètre de maille, il sera automatiquement modifié pour être égal au paramètre de maille (2.9 Å), et un polycristal en 2-D sera généré (i.e. les grains auront tous la même orientation crystallographique suivant Z). Après que le polycristal aura été généré, l'option -wrap
va remettre tous les atomes dans la boîte. Pour terminer, l'option -duplicate
va répéter le système 16 fois suivant Z, créant ainsi un système colonnaire.
D'autres exemples sont fournis dans le dossier "examples" fourni avec le programme. Le dossier "Al_polycrystal
" contient un script bash construisant un polycristal d'aluminium cubique faces centrées. Le dossier "Fe_polycrystal
" montre comment créer un polycristal de fer cubique centré. Le dossier "MgO_2Dpolycrystal
" contient un script bash qui construit un polycristal en 2-D d'oxyde de magnésium (MgO).