Atomsk

Le couteau suisse pour les simulations atomiques

Tutoriel : Défauts d'Empilement

Dans ce tutoriel vous allez apprendre à construire un défaut d'empilement généralisé avec Atomsk.

1. Orientation cristalline du système

Pour les besoins de ce tutoriel, supposons que nous voulions étudier un défaut d'empilement dans l'aluminium (Al) cubique à faces centrées (cfc). Puisque le système de glissement le plus facile dans ce type de réseau sont les plans {111}, nous allons étudier les défauts d'empilement dans un plan de ce type, le plan (111). Utilisons Atomsk pour créer une maille d'aluminium avec l'orientation X=[110], Y=[111], Z=[112] :

atomsk --create fcc 4.046 Al orient [-110] [111] [11-2] -duplicate 1 8 1 Al_cell.xsf

De plus, nous avons dupliqué la maille 8 fois suivant Y. Avec une telle super-cellule, le plan du défaut d'empilement sera normal à la direction Y.

2. Translater la partie supérieure du cristal

L'option "-shift" peut être utilisée de deux manières. Si vous utilisez "-shift τX τY τZ", alors tous les atomes sont translatés du vecteur donné, τ=(τXYZ). Toutefois, déplacer tous les atomes d'un même vecteur de translation n'introduit aucun défaut dans le système, ce n'est donc pas ce que nous voulons faire ici.

Pour former un défaut d'empilement, il nous faut translater une partie du cristal par rapport à l'autre. Déplaçons la moitié supérieure du cristal :

atomsk Al_cell.xsf -shift above 0.5*box Y 1.0 0.0 0.0 Al_SF.xsf

Ici, l'option "-shift" est appliquée seulement aux atomes situés au-dessus de la moitié de la boîte ("0.5*box") suivant Y, et le vecteur de translation est (1,0,0). Autrement dit, la partie supérieure du cristal est translatée de 1 Å suivant X, comme le montre la figure ci-dessous:

3. Autre méthode avec l'option "-select"

La méthode ci-dessus fonctionne, mais pour l'exercice nous allons montrer une autre méthode. Dans un précédent tutoriel, nous avons vu que quand des atomes sont sélectionnés avec l'option "-select", alors les options suivantes ne s'appliquent qu'aux atomes sélectionnés. Ici, nous pouvons donc sélectionner les atomes situés dans la moitié supérieure du cristal, puis les translater :

atomsk Al_cell.xsf -select above 0.5*box Y -shift 1.0 0.0 0.0 Al_SF.xsf

Le résultat est exactement le même que précédemment. Selon vos préférences, vous pouvez utiliser l'une ou l'autre méthode.

4. Atomes en-dehors de la boîte

Puisque des atomes ont été translatés, certains peuvent se retrouver en-dehors de la boîte, comme on le voit sur l'image précédente. Afin d'appliquer des conditions aux limites périodiques et de ramener tous les atomes dans la boîte, vous pouvez ajouter l'option "-wrap" à la commande précédente :

atomsk Al_cell.xsf -shift above 0.5*box Y 1.0 0.0 0.0 -wrap Al_SF.xsf

5. Défauts d'empilement généralisés

Grâce aux exemples ci-dessus, vous voyez qu'il est très simple de générer des défauts d'empilement généralisés, en anglais generalized stacking faults (GSF), avec Atomsk. Vous pouvez translater une partie du cristal d'un vecteur arbitraire τ=(τX,0,τZ), et calculer l'énergie du système avec une méthode ab initio ou un potentiel inter-atomique classique. Bien entendu, une taille de 8 mailles suivant Y n'est peut-être pas suffisante pour obtenir des résultats bien convergés : il appartient à l'utilisateur de faire ses propres tests de convergence.

La construction de tels défauts d'empilement peut être automatisée, par exemple à l'aide d'une boucle dans un script bash ou Python, qui incrémenterait les composantes du vecteur de translation τ. Vous trouverez un exemple d'un tel script bash dans le dossier "examples/SrTiO3_gamma_surface" fourni avec le programme. Ce script construit une super-cellule de titanate de strontium SrTiO3 à structure perovskite, construit des défauts d'empilement dans un plan (110), et calcule leurs énergies avec LAMMPS (ce dernier doit donc être installé sur votre machine pour que ce script fonctionne).