Nom : fichier d'entrée pour le General Utility Lattice Package (GULP)
Extension : gin, grs ou res
Spécification : documentation de GULP
Programmes de visualisation : gdis
Atomsk peut lire les fichiers d'entrée de GULP (gin, res ou grs) sous certaines conditions. Les "noms" des atomes dans la première colonne doivent commencer par le symbole atomique, suivi de n'importe quelle chaîne de caractères (par ex. O1, Ti_2, etc.). Si les vitesses des atomes existent, elles sont lues et enregistrées coomme propriétés auxiliaires.
Si des coquilles sont présentes (dans le sens d'un potentiel ionique de type cœur-coquille) leurs positions sont aussi lues, mais notez qu'elles ne seront transférées que lors de la conversion vers des formats de fichiers qui le supportent (tels que les fichiers d'entrée de GULP eux-mêmes, ou par exemple les fichiers CONFIG de DL_POLY). Pour que Atomsk associe correctement les cœur et coquilles, la position de chaque coquille doit apparaître directement après celle du cœur correspondant (comme dans l'exemple ci-dessous), ou bien les positions de tous les cœur doivent être suivies par les positions de toutes les coquilles dans le même ordre. Si ce n'est pas le cas (par ex. si les cœur et coquilles sont écrits dans n'importe quel autre ordre arbitraire) alors il est possible de les ré-associer grâce à l'option -bind-shells
.
Si les charges électriques des cœur (et coquilles) sont définies dans la section "species" alors Atomsk les enregistrera comme propriétés auxiliaires. Si les charges apparaissent après les coordonnées de chaque particule, alors elles écraseront les valeurs définies dans la section "species".
La lecture des fichiers de GULP a principalement deux restrictions. Premièrement les opérations de symétrie ne sont pas prises en compte. Si les coordonnées sont définies dans un réseau primitif avec des opérations de symétrie, seules ces positions seront lues (les opérations de symétrie ne seront pas appliquées). La prise en charge de la symétrie n'est pas simple à implémenter, ça n'a donc pas été fait dans ce programme. Deuxièmement, depuiss que la méthode Nudged Elastic band (NEB) est implémentée dans GULP (>3.4) les fichiers res ou grs peuvent contenir les positions atomiques de toutes les images du calcul NEB. Ceci n'est pas non plus reconnu, et Atomsk ne lira les positions que de la première image NEB.
Atomsk peut écrire un fichier basique au format GIN, contenant les vecteurs de boîte et les positions des cœur (et shells) :
opti
title
<commentaire>
end
vectors
<H(1,1)> <H(1,2)> <H(1,3)>
<H(2,1)> <H(2,2)> <H(2,3)>
<H(3,1)> <H(3,2)> <H(3,3)>
[1 1 1 1 1 1]
cartesian
<atom1> core <x1> <y1> <z1> [q1 [occ1 [0.0]]] [fixx1 fixy1 fixz1]
<atom1> shel <x1> <y1> <z1> [qs1 [occ1 [rad1]]] [1 1 1]
<atom2> core <x2> <y2> <z2> [q2 [occ2 [0.0]]] [fixx2 fixy2 fixz2]
<atom2> shel <x2> <y2> <z2> [qs2 [occ2 [rad2]]] [1 1 1]
... ... ...
<atomN> core <xN> <yN> <zN> [qN [occN [0.0]]] [fixxN fixyN fixzN]
<atomN> shel <xN> <yN> <zN> [qsN [occN [radN]]] [1 1 1]
[velocities angs/ps]
[...]
Comme le montre cet exemple, si un atome est constitué d'un cœur et d'une coquille alors les coordonnées de la coquille apparaissent juste après celles de son cœur.
Les valeurs entre crochets ne seront écriites par Atomsk que si elles sont définies, soit parce qu'elles ont été lues depuis un fichier d'entrée, soit après avoir été définies grâce à l'option -properties
.
Si les charges électriques (q) sont définies, elles seront écrites. Comme indiqué dans la documentation de GULP, si les charges électriques sont écrites alors les occupations partielles des sites (occ) peuvent aussi être écrites (si elles sont définies). De la même manière, si les charges et les occupations sont définies alors le rayon pour les breathing shells (rad) peuvent aussi être écrites. Notez que le nombre de colonnes est toujours le même pour les cœur et les shells. Un couple cœur-coquille aura la même occupation de site, et le rayon pour le breathing shell sera attribué seulement à la coquille (pour le cœur cette valeur sera zéro).
Les trois entiers ("fixx fixy fixz
") à la fin de chaque ligne indique si les particules sont libres (1) ou fixes (0) dans chacune des trois directions de l'espace. Ces valeurs seront écrites seulement si elles sont définies (par ex. à travers l'option -fix
). Les shells ne seront jamais fixées et auront donc toujours les valeurs "1 1 1
". Les six entiers "1 1 1 1 1 1
" après les vecteurs de boîte apparaissent seulement si certains atoms sont fixés, et indiquent que les normes des vecteurs de boîte a,b,c
ainsi que leurs angles α,β,γ
seront optimisés. Il faut remplacer ces entiers par des 0 pour fixer un ou plusieurs de ces paramètres. Notez que ces valeurs peuvent avoir un sens différent si certains mots-clés sont utilisés en en-tête (comme conv
ou conp
) : référez-vous au manuel de GULP pour plus d'informations.
Si les vitesses des atomes sont définies, elles seont écrites dans unee section à part après les positions de toutes les particules.
Toutes les propriétés décrites ci-avant sont transférées lors de la conversion d'un fichie GULP vers un autre fichier GULP. Notez toutefois que seules les particules et leurs propriétés sont transférées, et pas les autres sections du fichier d'origine (comme les potentiels interatomiques, etc.).
Par défaut les coordonnées sont écrites dans la base cartésienne. La conversion vers des coordonnées réduites peut se faire grâce à l'option -frac
.
Notez que le fichier GIN écrit par Atomsk n'est qu'un brouillon, il n'est PAS préparé pour une simulation. Il appartient à l'utilisateur de vérifier et compléter ce fichier selon ses besoins (mots-clés, potentiels interatomiques, options pour la relaxation/dynamique moléculaire, etc.) avant d'exécuter une simulation.
atomsk mon_systeme.xsf -frac gin
Ceci va lire le fichier mon_systeme.xsf
, convertir les positions des atomes en coordonnées réduites, et écrira le résultat final dans mon_systeme.gin
.
atomsk relax.grs -sort species pack xsf
Ceci va lire le fichier de redémarrage de GULP relax.grs
, triera les atomes selon leur espèce chimique, et écrira le résultat final dans relax.xsf
.