$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Flüssigkeiten und Schmelzen sind aktive chemische und physikalische Transportvektoren in natürlichen Umgebungen. Die erhöhten Raten der atomaren Diffusion begünstigen den chemischen Austausch und die Reaktionen, die niedrige Viskosität in Verbindung mit unterschiedlichem Auftrieb begünstigt einen großen Stoffaustausch und die Kristallschmelzedichtebeziehungen begünstigen die Schichtung innerhalb planetarer Körper. Das Fehlen eines periodischen Gitters, typische hohe Temperaturen, die erforderlich sind, um den geschmolzenen Zustand zu erreichen, und die Schwierigkeit beim Abschrecken machen die experimentelle Bestimmung einer Reihe offensichtlicher Eigenschaften wie Dichte, Diffusion und Viskosität extrem schwierig. Diese Schwierigkeiten machen alternative Berechnungsmethoden zu starken und nützlichen Werkzeugen für die Untersuchung dieser Materialklasse.
Mit dem Aufkommen der Rechenleistung und der Verfügbarkeit von Supercomputern werden derzeit zwei wichtige numerische atomistische Simulationstechniken eingesetzt, um den dynamischen Zustand eines nichtkristallinen atomistischen Systems zu untersuchen, Monte Carlo1 und Molekulardynamik (MD)1,2. In Monte-Carlo-Simulationen wird der Konfigurationsraum zufällig abgetastet; Monte-Carlo-Methoden zeigen eine lineare Skalierung in Parallelisierung, wenn alle Stichprobenbeobachtungen unabhängig voneinander sind. Die Qualität der Ergebnisse hängt von der Qualität des Zufallszahlengenerators und der Repräsentativität der Stichprobe ab. Monte-Carlo-Methoden zeigen lineare Skalierung in Parallelisierung, wenn die Stichprobe unabhängig voneinander ist. In der Molekulardynamik (MD) wird der Konfigurationsraum durch zeitabhängige atomare Trajektorien abgetastet. Ausgehend von einer gegebenen Konfiguration werden die atomaren Trajektorien durch Integration der Newtonschen Bewegungsgleichungen berechnet. Die interatomaren Kräfte können mit Hilfe von modellierten interatomaren Potentialen (in klassischer MD) oder mit Methoden der ersten Prinzipien (in ab initio oder first-principles, MD) berechnet werden. Die Qualität der Ergebnisse hängt von der Länge der Trajektorie und ihrer Fähigkeit ab, nicht von lokalen Minima angezogen zu werden.
Molekulardynamik-Simulationen enthalten eine Fülle von Informationen, die alle mit dem dynamischen Verhalten des Systems zusammenhängen. Thermodynamische Durchschnittseigenschaften wie innere Energie, Temperatur und Druck sind eher Standard zu berechnen. Sie können aus den Ausgabedateien der Simulationen extrahiert und gemittelt werden, während Größen, die sich direkt auf die Bewegung der Atome sowie auf ihre gegenseitige Beziehung beziehen, nach Extraktion der atomaren Positionen und Geschwindigkeiten berechnet werden müssen.
Folglich wurde viel Mühe darauf verwendet, die Ergebnisse zu visualisieren, und verschiedene Pakete sind heute auf verschiedenen Plattformen verfügbar, Open Source oder nicht [Ovito3, VMD4, Vesta5, Travis6 usw.]. Alle diese Visualisierungswerkzeuge arbeiten effizient mit interatomaren Abständen und ermöglichen so die effiziente Berechnung von Paarverteilungsfunktionen und Diffusionskoeffizienten. Verschiedene Gruppen, die groß angelegte molekulardynamische Simulationen durchführen, verfügen über proprietäre Software, um verschiedene andere Eigenschaften zu analysieren, die sich aus den Simulationen ergeben, manchmal in Shareware oder anderen Formen des eingeschränkten Zugangs zur Community und manchmal begrenzt in Umfang und Verwendung auf einige bestimmte Pakete. Ausgeklügelte Algorithmen zur Extraktion von Informationen über interatomare Bindungen, geometrische Muster und Thermodynamik werden entwickelt und in einigen dieser Pakete implementiert3,4,5,6,7 usw.
Hier schlagen wir das UMD-Paket vor - ein in Python geschriebenes Open-Source-Paket, um die Ausgabe molekulardynamischer Simulationen zu analysieren. Das UMD-Paket ermöglicht die Berechnung eines breiten Spektrums struktureller, dynamischer und thermodynamischer Eigenschaften (Abbildung 1). Das Paket ist über die GitHub-Website (https://github.com/rcaracas/UMD_package) und über eine eigene Seite (http://moonimpact.eu/umd-package/) des ERC IMPACT-Projekts als Open-Access-Paket verfügbar.
Um es universell und einfacher zu handhaben zu machen, besteht unser Ansatz darin, zunächst alle Informationen über den thermodynamischen Zustand und die atomaren Trajektorien aus der Ausgabedatei des eigentlichen Molekulardynamiklaufs zu extrahieren. Diese Informationen werden in einer dedizierten Datei gespeichert, deren Format unabhängig vom ursprünglichen MD-Paket ist, in dem die Simulation ausgeführt wurde. Wir nennen diese Dateien "umd"-Dateien, was für Universal Molecular Dynamics steht. Auf diese Weise kann unser UMD-Paket von jeder ab initio-Gruppe mit jeder Software einfach und mit minimalem Anpassungsaufwand verwendet werden. Die einzige Voraussetzung für die Verwendung des vorliegenden Pakets besteht darin, den entsprechenden Parser aus der Ausgabe der jeweiligen MD-Software in das umd-Dateiformat zu schreiben, falls dieses noch nicht vorhanden ist. Vorerst stellen wir solche Parser für die Pakete VASP8 und QBox9 zur Verfügung.

Abbildung 1: Flussdiagramm der UMD-Bibliothek.
Physische Eigenschaften sind blau und die wichtigsten Python-Skripte und ihre Optionen sind rot. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.
Die umd-Dateien sind ASCII-Dateien; Typische Erweiterung ist "umd.dat", aber nicht obligatorisch. Alle Analysekomponenten können ASCII-Dateien im umd-Format lesen, unabhängig von der tatsächlichen Namenserweiterung. Einige der automatischen Skripte, die entwickelt wurden, um schnelle umfangreiche Statistiken über mehrere Simulationen hinweg durchzuführen, suchen jedoch speziell nach Dateien mit der Erweiterung umd.dat. Jede physische Eigenschaft wird in einer Zeile ausgedrückt. Jede Zeile beginnt mit einem Schlüsselwort. Auf diese Weise ist das Format sehr anpassungsfähig und ermöglicht das Hinzufügen neuer Eigenschaften zur umd-Datei, während gleichzeitig die Lesbarkeit in allen Versionen erhalten bleibt. Die ersten 30 Zeilen der umd-Datei der Simulation von Pyrolit bei 4,6 GPa und 3000 K, die unten in der Diskussion verwendet werden, sind in Abbildung 2 dargestellt.

Abbildung 2: Der Anfang der umd-Datei, die die Simulation von flüssigem Pyrolit bei 4,6 GPa und 3000 K beschreibt.
Auf den Header folgt die Beschreibung jedes Snapshots. Jede Eigenschaft wird in eine Zeile geschrieben, die den Namen der physischen Eigenschaft, die Werte und die Einheiten enthält, die alle durch Leerzeichen getrennt sind. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.
Alle umd-Dateien enthalten einen Header, der den Inhalt der Simulationszelle beschreibt: die Anzahl der Atome, Elektronen und Atomtypen sowie Details für jedes Atom, wie seinen Typ, sein chemisches Symbol, die Anzahl der Valenzelektronen und seine Masse. Eine leere Zeile markiert das Ende des Headers und trennt ihn vom Hauptteil der umd-Datei.
Dann wird jeder Schritt der Simulation detailliert beschrieben. Zuerst werden die momentanen thermodynamischen Parameter jeweils auf einer anderen Linie angegeben, wobei (i) der Name des Parameters wie Energie, Spannungen, äquivalenter hydrostatischer Druck, Dichte, Volumen, Gitterparameter usw., (ii) seine Werte und (iii) seine Einheiten angegeben werden. Eine Tabelle, die die Atome beschreibt, kommt als nächstes. Eine Kopfzeile gibt die verschiedenen Maße wie kartesische Positionen, Geschwindigkeiten, Ladungen usw. und ihre Einheiten an. Dann wird jedes Atom auf einer Zeile detailliert beschrieben. Durch Dreiergruppen, die den drei x-, y-, z-Achsen entsprechen, sind die Einträge: die reduzierten Positionen, die kartesischen Positionen, die in die Simulationszelle gefaltet sind, die kartesischen Positionen (die die Tatsache berücksichtigen, dass Atome während einer Simulation mehrere Einheitszellen durchqueren können), die Atomgeschwindigkeiten und die Atomkräfte. Die letzten beiden Einträge sind Skalare: Ladung und magnetisches Moment.
Zwei Hauptbibliotheken gewährleisten das ordnungsgemäße Funktionieren des gesamten Pakets. Die umd_process.py Bibliothek befasst sich mit den umd-Dateien, wie Lesen und Drucken. Die crystallography.py Bibliothek befasst sich mit allen Informationen, die sich auf die tatsächliche atomare Struktur beziehen. Die zugrunde liegende Philosophie der crystallography.py Bibliothek besteht darin, das Gitter als Vektorraum zu behandeln. Die Elementarzellenparameter stellen zusammen mit ihrer Orientierung die Basisvektoren dar. Der "Raum" hat eine Reihe von skalaren Attributen (spezifisches Volumen, Dichte, Temperatur und spezifische Anzahl von Atomen), thermodynamische Eigenschaften (innere Energie, Druck, Wärmekapazität usw.) und eine Reihe von Tensorialeigenschaften (Spannung und Elastizität). Atome bevölkern diesen Raum. Die Klasse "Lattice" definiert dieses Ensemble, zusammen mit verschiedenen kurzen Berechnungen, wie spezifisches Volumen, Dichte, Erhalten des reziproken Gitters aus dem direkten usw. Die Klasse "Atoms" definiert die Atome. Sie zeichnen sich durch eine Reihe skalarer Eigenschaften (Name, Symbol, Masse, Anzahl der Elektronen usw.) und eine Reihe von vektoriellen Eigenschaften (die Position im Raum, entweder relativ zu der in der Lattice-Klasse beschriebenen vektoriellen Basis oder relativ zu universellen kartesischen Koordinaten, Geschwindigkeiten, Kräften usw.) aus. Abgesehen von diesen beiden Klassen enthält die crystallography.py Bibliothek eine Reihe von Funktionen zum Ausführen einer Vielzahl von Tests und Berechnungen, z. B. atomare Abstände oder Zellmultiplikation. Das Periodensystem der Elemente ist auch als Wörterbuch enthalten.
Die verschiedenen Komponenten des umd-Pakets schreiben mehrere Ausgabedateien. In der Regel handelt es sich bei allen um ASCII-Dateien, alle ihre Einträge sind durch Tabulatoren getrennt und sie sind so selbsterklärend wie möglich gestaltet. Zum Beispiel zeigen sie immer klar die physische Eigenschaft und ihre Einheiten an. Die umd.dat-Dateien entsprechen vollständig dieser Regel.