Retour au menu principal

## Mode : difference

#### Syntaxe

`atomsk --diff <fichier1> <fichier2> [options]`

#### Description

Ce mode calcule les différences entre deux configurations atomiques. Les vecteurs de déplacement sont définis comme la soustraction des positions contenues dans le <fichier1> de celles contenues dans le <fichier2> (autrement dit, dx=x2-x1 ). Les deux fichiers peuvent être dans des formats différents, tant que ces formats sont pris en charge par Atomsk. Les deux fichiers devraient correspondre au même type de système (mêmes types d'atomes, même réseau cristallin, etc.) pour que le calcul ait du sens.

Si les deux fichiers contiennent exactement le même nombre d'atomes, alors Atomsk suppose que les atomes sont rangés dans le même ordre. Si ce n'est pas le cas, vous pouvez utiliser le mode "--match-id" pour les ranger dans le même ordre. Le calcul des différences entre les deux systèmes est alors triviale. Si un ou plusieurs atomes changent de numéro atomique entre les deux fichiers, une nouvelle propriété auxiliaire nommée "diff_Z" est aussi créée.

Si les deux fichiers ne contiennent pas le même nombre d'atomes, alors les atomes du <fichier1> sont appairés à ceux du <fichier2> de façon injective, c'est-à-dire que chaque atome du <fichier1> n'est appairé au maximum qu'à un seul atome du <fichier2>. Si le <fichier1> contient le moins d'atomes, alors tous ses atomes devraient être appairés, mais certains atomes du <fichier2> ne seront pas appairés et seront ignorés dans le calcul des différences. Si le <fichier1> contient le plus d'atomes, alors certains de ses atomes ne seront pas appairés. Atomsk crée alors une nouvelle propriété auxiliaire appelée "deleted_atoms" ("atomes supprimés"), qui vaut zéro pour les atomes appairés, et 1 pour les atomes qui n'ont pas d'équivalent dans le <fichier2> (autrement dit, les atomes qui ont été supprimés entre le <fichier1> et le <fichier2>). Les différences ne sont alors calculées que pour les atomes qui ont été appairés.

Si des propriétés auxiliaires existent dans les deux systèmes, alors la différence entre les propriétés correspondantes est aussi calculée, c'est-à-dire pour les propriétés auxiliaires qui ont exactement le même nom dans le deux fichiers d'entrée. Les propriétés qui existent dans l'un des fichiers d'entrée mais pas dans l'autre sont ignorées, et n'apparaîtront pas dans les fichiers de sortie.

Le résultat est écrit dans six fichiers différents dont les noms sont préfixés avec le nom du <fichier2>:

- *_diff.xyz : contient les positions atomiques du <fichier1> et les vecteurs de déplacement (en coordonnées cartésiennes) ; ce fichier est compatible avec le format XYZ.
- *_diff.xsf : contient les mêmes informations que le fichier précédent mais au format XSF, il peut donc être lu par xCrySDen ; notez cependant que xCrySDen interprètera les vecteurs comme des forces (et non comme des déplacements), il peut donc être difficile de les visualiser à la bonne échelle.
- *_both.xsf : contient les positions atomiques des deux fichiers, au format XSF. Il peut parfois être utile de "superposer" les deux configurations pour visualiser leurs différences.
- *_stat.txt : fichier texte contenant les statistiques des déplacements : déplacements minimum/maximum, déplacements moyens, écart type... Ces statistiques sont données pour la totalité du système, ainsi que pour chaque espèce chimique individuelle.
- *_norm.dat : contient les normes des vecteurs de déplacement pour chaque atome (in Å), au format "`i dr species`" (`i`=indice de l'atome, `dr`=norme du déplacement).
- *_hist.dat : contient le nombre d'atomes en fonction de leur déplacement, c-à-d. le nombre d'atomes ayant un déplacement compris entre x et x+dx, pour x compris entre zéro et la valeur maximum des déplacements. Ces données peuvent être visualisées sous forme d'histogramme.

Notez que ce mode suppose que les coodonnées des atomes n'ont pas été translatés ni remis dans la boîte. Si des atomes ont été replacés dans la boîte (soit par le code de simulation utilisé, soit parce que Atomsk a été exécuté avec l'option `-wrap`) alors certains atomes peuvent donner l'impression d'avoir été "téléportés" d'une extrémité de la boîte à l'opposé, et les vecteurs de déplacements peuvent être incorrects. Si des atomes ont été replacés dans la boîte, vous pouvez les déballer avec le mode `--unwrap` avant d'utiliser le mode `--difference`.

Si ce mode est appelé avec des options, alors ces options seront appliquées à chacun des deux systèmes avant le calcul de leur différence.

#### Exemples

- `atomsk --diff initial.grs final.xsf`

  Ceci calculera les différences de positions atomiques entre `initial.grs` et `final.xsf`.

Retour au menu principal