Retour au menu principal

## Mode : tenseur de Nye

#### Syntaxe

`atomsk --nye <fichier1> <fichier2> [options] [<fichiersortie>] [formats]`

#### Description

Ce mode calcule le tenseur des déformations pour chaque atome, puis le tenseur de Nye, une quantité liée au gradient de déformation locale. Le tenseur de Nye peut être utile pour visualiser des défauts cristallins, comme les défauts ponctuels, les dislocations, ou les défauts planaires (défauts d'empilement, macles, joints de grains...).

Ce mode requiert deux fichiers : un <fichier1> contenant un système de référence, et un <fichier2> contenant le système à analyser. Le système de référence peut être :

- un système de référence complet, c'est-à-dire une supercellule de matériau parfait (non déformé et sans défaut) contenant le même nombre d'atomes que le <fichier2>. De plus, les indices des atomes doivent correspondre entre les deux fichiers, et leurs positions doivent changer relativement peu. Par exemple, si l'on souhaite analyser un <fichier2> contenant une dislocation vis, alors le <fichier1> devrait contenir une supercellule de matériau parfait avec le même nombre d'atomes.
- une maille élémentaire du système à analyser. La maille peut avoir la même orientation cristallographique que le système étudié, ou pas. Atomsk construira les environnements atomiques de référence depuis la maille élémentaire, puis les comparera avec les environnements du système étudié.
- NULL, ce qui signifie qu'aucun système de référence n'est fourni. Atomsk construira alors les environnements atomiques de référence à la volée, en moyennant les environnements trouvés dans le système à analyser. Les atomes qui ont un nombre impair de voisins sont ignorés (non inclus dans la moyenne)

Les deux fichiers <fichier1> et <fichier2> peuvent être du même format, ou bien de formats différents, tant que ces formats font partie de ceux supportés par Atomsk.

Le calcul suit la méthode décrite dans C.S. Hartley, Y. Mishin, Acta Mater. 53 (2005) 1313. Soit une maille de référence définie par un jeu de positions atomiques P et un réseau déformé défini par Q, le tenseur de correspondance G est défini comme la transformation d'un réseau à l'autre :

P = Q · G

Une fois que le tenseur G est calculé pour chaque atome, Atomsk l'utilise pour calculer le tenseur de déformation pour chaque atome (où le symbole de Kronecker δij=1 si i=j, et 0 sinon) :

εij = ½ [ (δij − Gij) + (δji − Gji) ]

De là, les invariants de déformation sont aussi calculés :

I1 = Trace(ε)

I2 = ½ [ Trace(ε)2 − Trace(ε2) ]

I3 = Det(ε)

À partir de G, le tenseur de rotation est aussi calculé pour chaque atome :

Rij = ½ [ (δij − Gij) − (δji − Gji) ]

Enfin, le tenseur de Nye α est calculé à partir des dérivées spatiales de G (εimk est le symbole de Levi-Civita) :

αjk = εimk ∂mGij

Notez que l'article original publié par Hartley et Mishin cité ci-dessus contient une erreur dans cette équation. L'équation implémentée dans Atomsk a été vérifiée pour donner le bon vecteur de Burgers après intégration du tenseur de Nye.

Pour réaliser ce calcul, les voisins jusqu'à une distance NeighFactor × d3 sont utilisés, où d3 est la distance du troisième voisin, et NeighFactor est égal à 1.25 par défaut. De plus, un voisin est utilisé seulement si son vecteur position relatif à l'atome central, entre le système de référence et celui étudié, est plus petit qu'un angle critique θmax. La valeur par défaut est θmax = 27°, ce que Hartley et Mishin one trouvé adapté pour les mailles cfc, puisque c'est à peu près la moitié de l'angle entre premiers voisins (60°).

Les valeurs des paramètres NeighFactor et θmax peuvent être modifiés en créant un fichier de configuration nommé "atomsk.conf" dans le répertoire courant où est effectué le calcul, et contenant les lignes suivantes :

`Nye NeighFactor 1.25
Nye theta_max 27`

Les valeurs définies dans ce fichier seront alors utilisées pour le calcul, au lieu des valeurs par défaut.

Ce mode écrit ses résultats dans plusieurs fichiers de sortie :

- *_G.cfg contient le tenseur de correspondance G (un tenseur 3×3) pour chaque atome ;
- *_strain.cfg contient le tenseur des déformations ε (un tenseur 3×3) pour chaque atome , ainsi que les invariants de déformation I1, I2, I3;
- *_rot.cfg contient le tenseur des rotations R (un tenseur 3×3) pour chaque atome ;
- *_Nye.cfg contient le tenseur de Nye α (un tenseur 3×3) pour chaque atome .

Toutes ces grandeurs sont écrites dans des fichiers au format CFG afin d'être facilement visualisés, par exemple avec OVITO.

Si ce mode est utilisé avec une ou plusieurs options alors celles-ci seront appliquées au <fichier1> et au <fichier2> avant que le tenseur de Nye ne soit calculé.

Notez que ce mode suppose que tous les atomes se trouvent dans la boîte. Si ce n'est pas le cas alors le calcul peut donner de mauvais résultats. Les atomes peuvent être replacés dans la boîte grâce à l'option `-wrap`.

#### Exemples

- `atomsk --nye reference.xsf dislocation.cfg nye.cfg`

  Ceci calculera les valeurs du tenseur de Nye dues aux déplacements dans le fichiers `dislocation.cfg`, en utilisant `reference.xsf` comme système de référence. Les positions et valeurs du tenseur de Nye seront écrites dans le fichier `nye.cfg`.

- `atomsk --nye unitcell.xsf mysystem.cfg nye.cfg`

  Dans cet exemple, une maille élémentaire est fournie comme système de référence. Atomsk construira les environnements atomiques de référence depuis le fichier `unitcell.xsf`, puis calculera le tenseur de Nye. Le résultat final sera écrit dans le fichier `nye.cfg`.

- `atomsk --nye NULL monsysteme.cfg nye.cfg`

  Dans cet exemple, le système de référence est indiqué comme "NULL", c'est-à-dire qu'aucun système de référence n'est fourni. Atomsk va lire les positions des atomes depuis le fichier `monsysteme.cfg`, et moyennera leurs environnements pour construire la référence. Ensuite, il calculera le tenseur de Nye, et écrira le résultat dans `nye.cfg`.

- ##### atomsk.conf

  `# Changer les valeurs des paramètres pour calculer le tenseur de Nye
  Nye NeighFactor 1.2
  Nye theta_max 45
  `

  Si un fichier nommé "atomsk.conf" existe dans le répertoire courant, alors Atomsk utilisera les valeurs des paramètres NeighFactor et theta_max définis dans ce fichier.

Retour au menu principal