Method Article
Les fusions et les fluides sont des vecteurs omniprésents de transport de masse dans les systèmes naturels. Nous avons développé un progiciel open source pour analyser les simulations de dynamique moléculaire ab initio de tels systèmes. Nous calculons les propriétés structurelles (liaison, clusterisation, spéciation chimique), de transport (diffusion, viscosité) et thermodynamiques (spectre vibratoire).
Nous avons développé un paquet open-source basé sur Python pour analyser les résultats issus de simulations de dynamique moléculaire ab initio de fluides. L’emballage est le mieux adapté aux applications sur les systèmes naturels, comme les fondus de silicate et d’oxyde, les fluides à base d’eau et divers fluides supercritiques. Le paquet est une collection de scripts Python qui incluent deux bibliothèques majeures traitant des formats de fichiers et de la cristallographie. Tous les scripts sont exécutés sur la ligne de commande. Nous proposons un format simplifié pour stocker les trajectoires atomiques et les informations thermodynamiques pertinentes des simulations, qui sont enregistrées dans des fichiers UMD, pour Universal Molecular Dynamics. Le package UMD permet le calcul d’une série de propriétés structurelles, de transport et thermodynamiques. En commençant par la fonction de distribution par paires, il définit les longueurs de liaison, construit une matrice de connectivité interatomique et détermine finalement la spéciation chimique. La détermination de la durée de vie de l’espèce chimique permet d’effectuer une analyse statistique complète. Ensuite, des scripts dédiés calculent les déplacements moyens-carrés pour les atomes ainsi que pour les espèces chimiques. L’analyse d’autocorrélation mise en œuvre des vitesses atomiques donne les coefficients de diffusion et le spectre vibratoire. La même analyse appliquée sur les contraintes donne la viscosité. Le package est disponible via le site Web GitHub et via sa propre page dédiée du projet ERC IMPACT en tant que package en libre accès.
Les fluides et les fondus sont des vecteurs de transport chimiques et physiques actifs dans les environnements naturels. Les taux élevés de diffusion atomique favorisent les échanges et les réactions chimiques, la faible viscosité associée à une flottabilité variable favorise un transfert de masse important, et les relations de densité cristal-fusion favorisent la superposition à l’intérieur des corps planétaires. L’absence de réseau périodique, les températures élevées typiques requises pour atteindre l’état fondu et la difficulté de trempe rendent la détermination expérimentale d’une série de propriétés évidentes, telles que la densité, la diffusion et la viscosité, extrêmement difficile. Ces difficultés font des méthodes de calcul alternatives des outils solides et utiles pour étudier cette classe de matériaux.
Avec l’avènement de la puissance de calcul et la disponibilité des superordinateurs, deux techniques majeures de simulations atomistiques numériques sont actuellement utilisées pour étudier l’état dynamique d’un système atomistique non cristallin, Monte Carlo1 et la dynamique moléculaire (MD)1,2. Dans les simulations de Monte Carlo, l’espace de configuration est échantillonné de manière aléatoire ; Les méthodes de Monte Carlo montrent une mise à l’échelle linéaire en parallélisation si toutes les observations d’échantillonnage sont indépendantes les unes des autres. La qualité des résultats dépend de la qualité du générateur de nombres aléatoires et de la représentativité de l’échantillonnage. Les méthodes de Monte Carlo montrent une mise à l’échelle linéaire en parallélisation si l’échantillonnage est indépendant les uns des autres. En dynamique moléculaire (MD), l’espace de configuration est échantillonné par des trajectoires atomiques dépendantes du temps. A partir d’une configuration donnée, les trajectoires atomiques sont calculées en intégrant les équations newtoniennes du mouvement. Les forces interatomiques peuvent être calculées à l’aide de potentiels interatomiques modèles (dans la DM classique) ou à l’aide de méthodes de premiers principes (in ab initio, ou premiers principes, MD). La qualité des résultats dépend de la longueur de la trajectoire et de sa capacité à ne pas être attirée par les minima locaux.
Les simulations de dynamique moléculaire contiennent une pléthore d’informations, toutes liées au comportement dynamique du système. Les propriétés moyennes thermodynamiques, comme l’énergie interne, la température et la pression, sont plutôt standard à calculer. Ils peuvent être extraits du ou des fichiers de sortie des simulations et moyennés, tandis que les quantités directement liées au mouvement des atomes ainsi qu’à leur relation mutuelle doivent être calculées après extraction des positions atomiques et des vitesses.
Par conséquent, beaucoup d’efforts ont été consacrés à la visualisation des résultats, et divers paquets sont disponibles aujourd’hui, sur différentes plateformes, open source ou non [Ovito3, VMD4, Vesta5, Travis6, etc.]. Tous ces outils de visualisation traitent efficacement les distances interatomiques et, en tant que tels, ils permettent le calcul efficace des fonctions de distribution des paires et des coefficients de diffusion. Divers groupes effectuant des simulations de dynamique moléculaire à grande échelle disposent d’un logiciel propriétaire pour analyser diverses autres propriétés résultant des simulations, parfois dans des sharewares ou d’autres formes d’accès limité à la communauté, et parfois limités dans la portée et l’utilisation à certains paquets spécifiques. Des algorithmes sophistiqués pour extraire des informations sur la liaison interatomique, les motifs géométriques et la thermodynamique sont développés et mis en œuvre dans certains de ces packages3,4,5,6,7, etc.
Nous proposons ici le paquet UMD - un paquet open-source écrit en Python pour analyser le résultat des simulations de dynamique moléculaire. Le package UMD permet de calculer un large éventail de propriétés structurelles, dynamiques et thermodynamiques (Figure 1). Le package est disponible via le site Web GitHub (https://github.com/rcaracas/UMD_package) et via une page dédiée (http://moonimpact.eu/umd-package/) du projet ERC IMPACT en tant que package en libre accès.
Pour le rendre universel et plus facile à manipuler, notre approche consiste d’abord à extraire toutes les informations relatives à l’état thermodynamique et aux trajectoires atomiques du fichier de sortie de l’exécution de la dynamique moléculaire réelle. Ces informations sont stockées dans un fichier dédié, dont le format est indépendant du package MD d’origine où la simulation a été exécutée. Nous nommons ces fichiers « umd » files, ce qui signifie Universal Molecular Dynamics. De cette façon, notre package UMD peut être facilement utilisé par n’importe quel groupe ab initio avec n’importe quel logiciel, le tout avec un minimum d’effort d’adaptation. La seule exigence pour utiliser le package actuel est d’écrire l’analyseur approprié à partir de la sortie du logiciel MD particulier dans le format de fichier umd, si celui-ci n’existe pas encore. Pour le moment, nous fournissons de tels analyseurs pour les packages VASP8 et QBox9 .
Figure 1 : Organigramme de la bibliothèque UMD.
Les propriétés physiques sont en bleu, et les principaux scripts Python et leurs options sont en rouge. Veuillez cliquer ici pour voir une version agrandie de cette figure.
Les fichiers umd sont des fichiers ASCII ; l’extension typique est « umd.dat » mais pas obligatoire. Tous les composants d’analyse peuvent lire les fichiers ASCII du format umd, quelle que soit l’extension de nom réelle. Cependant, certains des scripts automatiques conçus pour effectuer des statistiques rapides à grande échelle sur plusieurs simulations recherchent spécifiquement des fichiers avec l’extension umd.dat. Chaque propriété physique est exprimée sur une ligne. Chaque ligne commence par un mot-clé. De cette façon, le format est très adaptable et permet d’ajouter de nouvelles propriétés au fichier umd, tout en préservant sa lisibilité tout au long des versions. Les 30 premières lignes du fichier umd de la simulation de pyrolite à 4,6 GPa et 3000 K, utilisées ci-dessous dans la discussion, sont illustrées à la figure 2.
Figure 2 : Début du fichier umd décrivant la simulation de pyrolite liquide à 4,6 GPa et 3000 K.
L’en-tête est suivi de la description de chaque instantané. Chaque propriété est écrite sur une ligne, contenant le nom de la propriété physique, la ou les valeurs et les unités, toutes séparées par des espaces. Veuillez cliquer ici pour voir une version agrandie de cette figure.
Tous les fichiers umd contiennent un en-tête décrivant le contenu de la cellule de simulation : le nombre d’atomes, d’électrons et de types atomiques, ainsi que des détails pour chaque atome, tels que son type, son symbole chimique, le nombre d’électrons de valence et sa masse. Une ligne vide marque la fin de l’en-tête et le sépare de la partie principale du fichier umd.
Ensuite, chaque étape de la simulation est détaillée. Tout d’abord, les paramètres thermodynamiques instantanés sont donnés, chacun sur une ligne différente, en spécifiant (i) le nom du paramètre, comme l’énergie, les contraintes, la pression hydrostatique équivalente, la densité, le volume, les paramètres du réseau, etc., (ii) sa ou ses valeurs, et (iii) ses unités. Un tableau décrivant les atomes vient ensuite. Une ligne d’en-tête donne les différentes mesures, comme les positions cartésiennes, les vitesses, les charges, etc., et leurs unités. Ensuite, chaque atome est détaillé sur une ligne. Par groupes de trois, correspondant aux trois axes x, y, z , les entrées sont : les positions réduites, les positions cartésiennes repliées dans la cellule de simulation, les positions cartésiennes (qui tiennent correctement compte du fait que les atomes peuvent traverser plusieurs cellules unitaires au cours d’une simulation), les vitesses atomiques et les forces atomiques. Les deux dernières entrées sont des scalaires : charge et moment magnétique.
Deux grandes bibliothèques assurent le bon fonctionnement de l’ensemble du paquet. La bibliothèque umd_process.py traite des fichiers umd, comme la lecture et l’impression. La bibliothèque crystallography.py traite de toutes les informations relatives à la structure atomique réelle. La philosophie sous-jacente de la bibliothèque crystallography.py est de traiter le réseau comme un espace vectoriel. Les paramètres de la cellule unitaire ainsi que leur orientation représentent les vecteurs de base. L'« Espace » possède une série d’attributs scalaires (volume spécifique, densité, température et nombre spécifique d’atomes), des propriétés thermodynamiques (énergie interne, pression, capacité thermique, etc.) et une série de propriétés tensorielles (contrainte et élasticité). Les atomes peuplent cet espace. La classe « Lattice » définit cet ensemble, à côté de quelques calculs courts, comme le volume spécifique, la densité, l’obtention du réseau réciproque à partir du réseau direct, etc. La classe « Atoms » définit les atomes. Ils sont caractérisés par une série de propriétés scalaires (nom, symbole, masse, nombre d’électrons, etc.) et une série de propriétés vectorielles (la position dans l’espace, soit par rapport à la base vectorielle décrite dans la classe de Réseau, soit par rapport aux coordonnées cartésiennes universelles, vitesses, forces, etc.). En dehors de ces deux classes, la bibliothèque crystallography.py contient une série de fonctions pour effectuer une variété de tests et de calculs, tels que les distances atomiques ou la multiplication cellulaire. Le tableau périodique des éléments est également inclus sous forme de dictionnaire.
Les différents composants du package umd écrivent plusieurs fichiers de sortie. En règle générale, ce sont tous des fichiers ASCII, toutes leurs entrées sont séparées par des onglets et elles sont rendues aussi explicites que possible. Par exemple, ils indiquent toujours clairement la propriété physique et ses unités. Les fichiers umd.dat sont entièrement conformes à cette règle.
1. Analyse des cycles de dynamique moléculaire
REMARQUE: Le package est disponible via le site Web GitHub (https://github.com/rcaracas/UMD_package) et via une page dédiée (http://moonimpact.eu/umd-package/) du projet ERC IMPACT en tant que package en libre accès.
Drapeau | Signification | Script l’utilisant | Valeur par défaut |
-h | Aide courte | tout | |
-f | Nom du fichier UMD | tout | |
-i | Étapes de thermalisation à jeter | tout | 0 |
-i | Fichier d’entrée contenant les liaisons interatomiques | spéciation | bonds.input |
-s | Échantillonnage de la fréquence | msd, spéciation | 1 (chaque étape est prise en compte) |
-a | Liste des atomes ou anions | spéciation | |
-c | Liste des cations | spéciation | |
-l | Longueur de la liaison | spéciation | 2 |
-t | Température | vibrations, rhéologie | |
-v | Discrétisation de la largeur de la fenêtre d’échantillonnage de la trajectoire pour l’analyse du déplacement moyen-carré | Msd | 20 |
-z | Discrétisation du début de la fenêtre d’échantillonnage de la trajectoire pour l’analyse du déplacement moyen-carré | Msd | 20 |
Tableau 1 : Indicateurs les plus couramment utilisés dans le package UMD et leur signification la plus courante.
2. Effectuer l’analyse structurelle
Figure 3 : Détermination de la fonction de distribution des paires.
a) Pour chaque atome d’une espèce (par exemple rouge), tous les atomes de l’espèce coordinatrice (par exemple gris et/ou rouge) sont comptés en fonction de la distance. (b) Le graphique de distribution de distance résultant pour chaque instantané, qui à ce stade n’est qu’un ensemble de fonctions delta, est ensuite moyenné sur tous les atomes et tous les instantanés et pondéré par la distribution de gaz idéale pour générer (c) la fonction de distribution de paire qui est continue. Le premier minimum de g(r) est le rayon de la première sphère de coordination, utilisé plus tard dans l’analyse de spéciation. Veuillez cliquer ici pour voir une version agrandie de cette figure.
3. Effectuer l’analyse de spéciation
Figure 4 : Identification des amas atomiques.
Les polyèdres de coordination sont définis à l’aide de distances interatomiques. Tous les atomes à une distance inférieure à un rayon spécifié sont considérés comme liés. Ici, le seuil correspond à la première sphère de coordination (les cercles rouge clair), définie à la figure 1. La polymérisation et donc les espèces chimiques sont obtenues à partir des réseaux des atomes liés. Notez le cluster central Red1Grey2, qui est isolé des autres atomes, qui forment un polymère infini. Veuillez cliquer ici pour voir une version agrandie de cette figure.
4. Calculer les coefficients de diffusion
5. Fonctions de corrélation temporelle
6. Paramètres thermodynamiques issus des simulations.
La pyrolite est un modèle de silicate fondu multi-composants (0,5Na2O 2CaO 1,5Al2O3 4FeO 30MgO 24SiO2) qui se rapproche le mieux de la composition du silicate en vrac de la Terre – la moyenne géochimique ou notre planète entière, à l’exception de son noyau à base de fer19. La Terre primitive a été dominée par une série d’événements de fonte à grande échelle20, le dernier pourrait avoir englouti la planète entière, après sa condensation pour le disque protolunaire21. La pyrolite représente la meilleure approximation de la composition de ces océans magmatiques à l’échelle planétaire. Par conséquent, nous avons étudié de manière approfondie les propriétés physiques de la pyrolite fondue dans la plage de température de 3 000 à 000 K et la plage de pression de 0 0 052150 GPa à partir de simulations de dynamique moléculaire ab initio dans la mise en œuvre du VASP. Ces conditions thermodynamiques caractérisent entièrement les conditions océaniques magmatiques les plus extrêmes de la Terre. Notre étude est un excellent exemple d’utilisation réussie du package UMD pour l’ensemble de l’analyse approfondie des fondus22. Nous avons calculé la distribution et les longueurs moyennes des liaisons, nous avons tracé les changements dans la coordination cation-oxygène et comparé nos résultats à des études expérimentales et informatiques antérieures sur des silicates amorphes de diverses compositions. Notre analyse approfondie a permis de décomposer les nombres de coordination standard en leurs constituants de base, de décrire la présence de polyèdres de coordination exotiques dans la fonte et d’extraire les durées de vie de tous les polyèdres de coordination. Il a également souligné l’importance de l’échantillonnage dans les simulations en termes de longueur de la trajectoire et de nombre d’atomes présents dans le système modélisé. En ce qui concerne le post-traitement, l’analyse UMD est indépendante de ces facteurs, mais ils doivent être pris en compte lors de l’interprétation des résultats fournis par le package UMD. Ici, nous montrons quelques exemples de la façon dont le package UMD peut être utilisé pour extraire plusieurs caractéristiques des fondus, avec une application à la pyrolite fondue.
La fonction de distribution de paire Si-O obtenue à partir de l’écriture gofrs_umd.py montre que le rayon de la première sphère de coordination, qui est le premier minimum de la fonction g(r), se situe autour de 2,5 angströms à T = 3000 K et P = 4,6 GPa. Le maximum du g(r) se situe à 1,635 Å, c’est la meilleure approximation de la longueur de courbure. La longue queue est due à la température. En utilisant cette limite comme distance de liaison Si-O, l’analyse de spéciation montre que les unités SiO4, qui peuvent durer jusqu’à quelques picosecondes, dominent la fonte (Figure 5). Il y a une partie importante de la fonte qui montre une polymérisation partielle, reflétée par la présence de dimères comme Si2O7, et de trimères comme les unités Si3Ox. Leur durée de vie correspondante est de l’ordre de la picoseconde. Les polymères d’ordre supérieur ont tous une durée de vie considérablement plus courte.
Figure 5 : Durée de vie de l’espèce chimique Si-O.
La spéciation est identifiée dans une fusion multi-composants à 4,6 GPa et 3000 K. Les étiquettes marquent les monomères SiO3, SiO4 et SiO5 et les différents polymères SixOy. Veuillez cliquer ici pour voir une version agrandie de cette figure.
Les différentes valeurs des étapes verticales et horizontales, définies par les indicateurs –z et –v ci-dessus, donnent lieu à divers échantillonnages du TMS (figure 6). Même de grandes valeurs de z et v suffisent à définir les pentes et donc les coefficients de diffusion des différents atomes. Le gain de temps pour le post-traitement est remarquable lorsque l’on passe à de grandes valeurs de z et v. Le MSD offre un critère de validation très fort pour la qualité des simulations. Si la partie diffusion du MSD n’est pas suffisamment longue, c’est un signe que la simulation est trop courte et n’atteint pas l’état fluide au sens statistique. L’exigence minimale pour la partie diffusive du MSD dépend fortement du système. On peut exiger que tous les atomes changent de site au moins une fois dans la structure de la fonte pour qu’elle soit considérée comme un fluide10. Un excellent exemple d’applications en sciences planétaires est la fusion complexe de silicate à des pressions élevées proches ou même inférieures à leur ligne liquidus11. Les atomes de Si, les principaux cations formant des réseaux, changent de site après plus de deux douzaines de picosecondes. Des simulations plus courtes que ce seuil sous-échantillonneraient considérablement l’espace de configuration possible. Cependant, comme les anions coordonnateurs, à savoir les atomes O, se déplacent plus rapidement que les atomes Si centraux, ils peuvent compenser une partie de la lente mobilité de Si. En tant que tel, l’ensemble du système pourrait en effet couvrir un meilleur échantillonnage de l’espace de configuration que ce que l’on suppose uniquement à partir des déplacements Si.
Figure 6 : Déplacements quadratiques moyens (TMS).
Les TMS sont illustrés pour quelques types atomiques d’un silicate fondu multi-composants. L’échantillonnage avec différentes étapes horizontales et verticales, z et v, donne des résultats cohérents. Cercles pleins : -z 50 –v 50. Cercles ouverts : -z 250 –v 500. Veuillez cliquer ici pour voir une version agrandie de cette figure.
Enfin, les fonctions VAC atomiques produisent le spectre vibratoire de la fusion. La figure 7 montre le spectre dans les mêmes conditions de pression et de température que ci-dessus. Nous représentons les contributions des atomes Mg, Si et O, ainsi que la valeur totale. À fréquence nulle, il existe une valeur finie du spectre, qui correspond au caractère de diffusion de la fonte. L’extraction des propriétés thermodynamiques du spectre vibratoire doit éliminer ce caractère diffusif gazeux de zéro mais aussi prendre en compte correctement sa désintégration à des fréquences plus élevées.
Figure 7 : Spectre vibratoire de la pyrolite fondue.
La partie réelle de la transformée de Fourier de la fonction d’autocorraction vitesse-vitesse atomique donne le spectre vibratoire. Ici, le spectre est calculé pour une fusion de silicate multi-composants. Les fluides ont un caractère diffusif de type gaz non nul à fréquence nulle. Veuillez cliquer ici pour voir une version agrandie de cette figure.
Le package UMD a été conçu pour mieux fonctionner avec les simulations ab initio, où le nombre d’instantanés est généralement limité à des dizaines à des centaines de milliers d’instantanés, avec quelques centaines d’atomes par unité de cellule. Des simulations plus importantes sont également accessibles à condition que la machine sur laquelle le post-traitement s’exécute dispose de suffisamment de ressources de mémoire active. Le code se distingue par la variété des propriétés qu’il peut calculer et par sa licence open-source.
Les fichiers umd.dat sont adaptés aux ensembles qui préservent le nombre de particules inchangé tout au long de la simulation. Le package UMD peut lire des fichiers issus de calculs où la forme et le volume de la boîte de simulation varient. Ceux-ci couvrent les calculs les plus courants, comme NVT et NPT, où le nombre de particules, N, la température T, le volume, V et / ou la pression, P, sont maintenus constants.
Pour le moment où commencez, la fonction de distribution des paires ainsi que tous les scripts nécessaires pour estimer les distances interatomiques, comme les scripts de spéciation, ne fonctionnent que pour les cellules unitaires orthogonales, c’est-à-dire pour les cellules cubiques, tétragonales et orthorhombiques, où les angles entre les axes sont de 90 °.
Les principales lignes de développement de la version 2.0 sont la suppression de la restriction d’orthogonalité pour les distances et l’ajout de fonctionnalités supplémentaires pour les scripts de spéciation: analyser les liaisons chimiques individuelles, analyser les angles interatomiques et mettre en œuvre la deuxième sphère de coordination. Avec l’aide d’une collaboration externe, nous travaillons sur le portage du code sur un GPU pour une analyse plus rapide dans les systèmes plus grands.
Les auteurs n’ont rien à divulguer.
Ces travaux ont été soutenus par le Conseil européen de la recherche (CER) dans le cadre du programme de recherche et d’innovation Horizon 2020 de l’Union européenne (numéro de convention de subvention 681818 IMPACT à RC), par la Direction de la physique et de la chimie extrêmes de l’Observatoire du carbone profond et par le Conseil norvégien de la recherche par le biais de son programme de financement des centres d’excellence, numéro de projet 223272. Nous reconnaissons l’accès aux supercalculateurs GENCI par le biais de la série stl2816 de subventions de calcul eDARI, au supercalculateur Irene AMD par le biais du projet PRACE RA4947 et au supercalculateur Fram par le biais de l’UNINETT Sigma2 NN9697K. FS a été soutenu par un projet Marie Skłodowska-Curie (convention de subvention ABISSE n° 750901).
Name | Company | Catalog Number | Comments |
getopt library | open-source | ||
glob library | open-source | ||
matplotlib library | open-source | ||
numpy library | open-source | ||
os library | open-source | ||
Python software | The Python Software Foundation | Version 2 and 3 | open-source |
random library | open-source | ||
re library | open-source | ||
scipy library | open-source | ||
subprocess library | open-source | ||
sys library | open-source |
Demande d’autorisation pour utiliser le texte ou les figures de cet article JoVE
Demande d’autorisationThis article has been published
Video Coming Soon