atomsk --diff <fichier1> <fichier2> [options]
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>:
i dr species
" (i
=indice de l'atome, dr
=norme du déplacement).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.
atomsk --diff initial.grs final.xsf
Ceci calculera les différences de positions atomiques entre initial.grs
et final.xsf
.