Retour au menu principal

## Mode : polycrystal

#### Syntax

`atomsk --polycrystal <germe> <fichier_param> <fichiersortie> [<formats>] [options]`

#### Description

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 :

- par les indices de Miller (voir comment spécifier les indices de Miller). Notez que ceci suppose que l'orientation du système dans le <germe> donné est X=[100], Y=[010], Z=[001].
- par trois angles en degrés, entrés comme nombres réels (le symbole degré [°] peut apparaître après chaque nombre, mais n'est pas obligatoire). Le germe sera tourné du premier angle autour de l'axe X, puis du second angle autour de Y, et enfin du troisième angle autour de Z.
- "random", auquel cas le programme appliquera une matrice de rotation aléatoire.

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.

Le mot-clé clearance peut être utilisé pour contrôler l'épaisseur de la zone autour des joints de grains où les atomes sont supprimés. Tous les atomes situés à ±clearance du joint seront supprimés. La valeur par défaut est clearance = 0,1 Å.

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 :

- *_id-size.txt : fichier texte contenant les numéros de grains (grainID), le nombre d'atomes qu'ils contiennent, et leur volume.
- *_size-dist.dat : fichier de données (fichier texte) contenant la distribution de tailles de grains.
- *_nodes.xsf : fichier au format XSF contenant les positions des nœuds utilisées pour générer le polycrystal. Chaque nœud est représenté par un atome d'hydrogène.
- *_grains-com.xsf : fichier au format XSF contenant les positions des centres de masse de chaque grain du polycrystal. Chaque centre de masse est représenté par un atome d'hydrogène.
- *_param.txt (seulement si le mot-clé "random" a été utilisé) : fichier texte contenant les nombres aléatoires générés par Atomsk. Ce fichier a le format d'un fichier de paramètres (<fichier_param>), et peut donc être utilisé pour générer un polycrystal identique.

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.

#### Examples

- ##### voronoi_random.txt

  `# 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`.

- ##### voronoi_lattice.txt

  `# 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.

- ##### mon_polycristal.txt

  `# 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.

- ##### bcc_polycrystal.txt

  `# 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).

Retour au menu principal