Le couteau suisse pour les simulations atomiques
Ce tutoriel explique comment utiliser Atomsk, en utilisant le silicium comme exemple.
Pour commencer, construisons une super-cellule de silicium, comme expliqué dans un tutoriel précédent :
atomsk --create diamond 5.431 Si -duplicate 30 30 30 Si_supercell.xsf
La super-cellule ainsi créé est écrite dans "Si_supercell.xsf".
Maintenant, nous voulons supprimer des atomes de sorte qu'il ne reste qu'une sphère de silicium. Nous plaçons le centre de la sphère au centre de la boîte, et choisissons un rayon de 70 Å. Les atomes qui sont en-dehors (out) de cette sphère sont sélectionnés, puis supprimés :
atomsk Si_supercell.xsf -select out sphere 0.5*box 0.5*box 0.5*box 70 \
-rmatom select Si_sphere.cfg
Le fichier final ("Si_sphere.cfg") ressemble à cela :
Vous pouvez jouer sur la taille de la boîte initiale, le rayon de la sphère, et même sa position. Vous pourrez ainsi remarquer que, si la sphère est trop proche d'un bord de la boîte, alors elle est tronquée. C'est parce que l'option "-select" n'utilise pas de conditions aux limites périodiques, elle travaille uniquement avec les coordonnées cartésiennes. Ainsi par exemple, si vous placez la sphère à l'origine (0,0,0), alors vous obtiendrez un huitième de sphère.
Maintenant, imaginons que nous voulions couper en deux la sphère précédente (celle qui est centrée dans la boîte). Pour cela, nous pouvons utiliser l'option "-cut" :
atomsk Si_sphere.cfg -cut below 0.5*box Y Si_halfsphere.cfg
La construction ci-dessus a été décomposée en plusieurs commandes, pour des raisons pédagogiques : (1) construire la super-cellule ; (2) couper la sphère ; et (3) couper la sphère en deux. L'inconvénient d'une telle approche est qu'à chaque étape, Atomsk doit lire un fichier, et en écrire un nouveau : "Si_supercell.xsf", puis "Si_sphere.cfg", et enfin "Si_halfsphere.cfg". La lecture et l'écriture de tous ces fichiers intermédiaires sur le disque dur de l'ordinateur, ralentit significativement la procédure.
Pour gagner en temps d'exécution, vous pouvez utiliser toutes les options dans une seule et même ligne de commande :
atomsk --create diamond 5.431 Si \
-duplicate 30 30 30 \
-select out sphere 0.5*box 0.5*box 0.5*box 70 \
-rmatom select \
-cut below 0.5*box Y \
Si_final.cfg
Ainsi, Atomsk effectuera toutes les transformations directement dans la mémoire vive (RAM) : créer la super-cellule, la dupliquer, sélectionner les atomes, sélectionner la sphère, la couper, puis en supprimer la moitié. Les options sont appliquées dans l'ordre, l'une après l'autre, dans l'ordre indiquées par la commande ci-dessus. C'est seulement à la toute fin, que Atomsk écrira le résultat final dans un fichier : "Si_final.cfg". Ce système est strictement identique au précédent ("Si_halfsphere.cfg"), mais il sera produit bien plus rapidement parce que Atomsk n'est exécuté qu'une seule fois, et n'a pas à lire et écrire de fichiers intermédiaires.