Le couteau suisse pour les simulations atomiques
Ce tutoriel explique comment supprimer des atomes selon différents critères.
▶ Pour plus d'information, référez-vous à la page de documentation correspondante.
Pour ce tutoriel, créons une super-cellule de chlorure de sodium NaCl :
atomsk --create rocksalt 5.64 Na Cl -duplicate 10 10 10 NaCl_supercell.xsf
L'option "-remove-atoms", comme son nom l'indique, permet de supprimer des atomes du système. Elle peut être utilisée de deux façons différentes. Premièrement, elle peut être utilisée pour supprimer tous les atomes d'une espèce chimique donnée. Par exemple, pour supprimer tous les atomes de chlore (Cl) du système :
atomsk NaCl_supercell.xsf -remove-atoms Cl final.cfg
Deuxièmement, elle peut être utilisée pour supprimer un seul atome d'un indice donné. Ceci peut être utilisé pour introduire une lacune dans le système. Par exemple, pour supprimer l'atome numéro 417 du système :
atomsk NaCl_supercell.xsf -remove-atoms 417 final.cfg
Lors de la visualisation avec Atomeye (appuyez sur K), les atomes voisins de la lacune ont une couleur différente :
Notez que si l'indice donné est hors limites (par exemple s'il est nul ou négatif, ou s'il est plus grand que le nombre d'atomes dans le système), alors Atomsk affichera un avertissement, et aucun atome ne sera supprimé.
Une chose importante à noter comme toujours, Atomsk applique les options séquentiellement, dans l'ordre où elles sont invoquées dans la ligne de commande. Donc, si vous voulez supprimer deux atomes, l'ordre dans lequel vous les supprimez a une importance. Supprimez toujours en premier, l'atome qui a l'indice le plus élevé. Par exemple, si vous voulez supprimer les atomes numéros 210 et 417, la commande suivante donnera bien le bon résultat :
atomsk NaCl_supercell.xsf -remove-atoms 417 -remove-atoms 210 final.cfg
Cependant, si vous inversez les options, alors vous n'obtiendrez pas le bon résultat :
atomsk NaCl_supercell.xsf -remove-atoms 210 -remove-atoms 417 final.cfg
Comment cela se fait-il ? Avec cette dernière commande, Atomsk commence par supprimer l'atome numéro 210. Du coup, tous les atomes d'indice plus élevé sont re-numérotés, leurs indices changent donc par rapport au système d'origine : l'atome 211 vient remplacer le 210 (qui a été supprimé), le 212 devient 211, et ainsi de suite. Alors, lorsque Atomsk applique la seconde option "-remove-atoms" pour supprimer l'atome 417, ce n'est pas le bon atome qui est supprimé, mais l'atome qui portait au départ le numéro 418, ce qui n'est pas ce que nous voulions.
Bien entendu, lorsque l'on souhaite introduire de nombreuses lacune, il peut devenir fastidieux d'utiliser l'option "-remove-atoms" pour supprimer les atomes un à un. Si vous souhaitez supprimer 20 ou 300 atomes du système, vous trouverez peu pratique d'invoquer l'option "-remove-atomes" autant de fois. Heureusement, il existe des alternatives.
L'option "-select" permet de sélectionner des atomes suivant différents critères. Essayons d'explorer ces différentes possibilités.
D'abord, l'option "-select" peut être utilisée pour sélectionner tous les atomes d'une espèce chimique donnée. Par exemple, pour sélectionner tous les atomes de chlore (Cl) :
atomsk NaCl_supercell.xsf -select Cl final.cfg
Comprenez que cette "sélection" est interne à Atomsk, en réalité elle ne touche pas au système atomique en lui-même. Dans cette commande, les atomes de chlore sont sélectionné, mais rien ne leur est fait (il n'ont pas été supprimés, ni translatés, ni rien du tout). Donc, au moment d'écrire le fichier final "final.cfg", Atomsk écrit toutes les positions des atomes, peu importe s'ils sont sélectionnés ou pas.
Cependant, cette sélection modifie le comportement des autres options de Atomsk. Au lieu de s'appliquer à tous les atomes, la plupart des options ne s'appliqueront qu'aux atomes sélectionnés. Par exemple, si vous utilisez "-select Cl", puis l'option "-remove-atoms Cl", alors seuls les atomes de Cl sélectionnés sont supprimés :
atomsk NaCl_supercell.xsf -select Cl -remove-atoms Cl final.cfg
Cette dernière option peut aussi être utilisée pour supprimer les atomes sélectionnés, en utilisant "select" au lieu d'un symbole chimique :
atomsk NaCl_supercell.xsf -select Cl -remove-atoms select final.cfg
Pour l'instant, cette possibilité n'a que peu d'intérêt car elle a le même effet que d'invoquer simplement "-remove-atoms Cl". Cependant elle devient utile lorsque la sélection est un peu plus compliquée.
L'option "-select" peut être utilisée pour sélectionner des atomes ayant des indices donnés. Contrairement à l'option "-remove-atoms" qui n'accepte qu'un seul indice, l'option "-select" peut être utilisée pour sélectionner plusieurs atomes, en séparant leurs indices par des virgules (et sans espace) :
atomsk NaCl_supercell.xsf -select 210,417,618 -remove-atoms select final.cfg
Ceci peut être pratique pour sélectionner plusieurs atomes à la fois. Encore une fois, comprenez que l'option "-select" ne fait que sélectionner des atomes, et ensuite l'option "-remove-atoms select" supprime tous les atomes sélectionnés, sans se préoccuper de leur espèce chimique.
Il est aussi possible de donner une fouchette d'indices, en utilisant un deux-points :
atomsk NaCl_supercell.xsf -select 210,417,600:670,18,90 -remove-atoms select final.cfg
Dans ce cas, seront sélectionnés les atomes numéros 210, 417, 600 à 670, 18, et 90 ; ensuite ils sont supprimés du système. Notez que cette fois, les numéros des atomes peuvent être donnés dans n'importe quel ordre, puisque la sélection s'applique au système courant, et que l'option "-select" ne re-numérote aucun atome. Il n'y a donc aucun risque de se tromper d'indice.
Il est possible de sélectionner des atomes aléatoirement dans le système. Pour cela, spécifiez le nombre d'atomes et leur espèce. Par exemple, pour supprimer 30 atomes de sodium (Na) de façon aléatoire, utilisez :
atomsk NaCl_supercell.xsf -select random 30 Na -remove-atoms select final.cfg
Il est aussi possible de supprimer une certaine proportion d'atomes, en utilisant le symbole "%". Par exemple, pour supprimer 1.5% des atomes de sodium (Na) du système :
atomsk NaCl_supercell.xsf -select random 1.5% Na -remove-atoms select final.cfg
Si vous voulez supprimer des atomes de Na et Cl aléatoirement, alors remplacez le symbole chimique par le mot-clé "any" :
atomsk NaCl_supercell.xsf -select random 30 any -remove-atoms select final.cfg
L'option "-select" possède d'autres critères, comme sélecionner des atomes dans une boîte, une sphère, ou un cylindre. Ils sont discutés dans les tutoriels suivants.