Angesichts des jüngsten Hypes um Graphen – ein neues Material, das für seine beispiellose Festigkeit, Leichtigkeit und elektronischen Eigenschaften gelobt wird – wurde ich neugierig und fragte mich, ob ich angesichts seiner einfachen chemischen Struktur (hexagonales Gitter) eine molekulardynamische (MD) Simulation von Graphen durchführen könnte. Als Neuling auf dem Gebiet der MD mit einem Hintergrund in der Front-End-Entwicklung machte ich mich vorsichtig daran, mir an einem Wochenende ein oder zwei Dinge über eine MD-Simulation beizubringen und eine einfache Simulation durchzuführen Rescales Plattform.
Molekulardynamik
Einfach ausgedrückt ist MD eine Computersimulation der Wechselwirkungen zwischen Atomen (oder Molekülen) unter Verwendung einiger grundlegender physikalischer Gesetze. Genauer gesagt handelt es sich um eine Methode zur Bestimmung der Bahnen von Atomen im Phasenraum gemäß Newtons Bewegungsgleichung (F=ma); es wird jedoch nicht versucht, Quantengleichungen zu lösen. Um die Bewegungsgleichungen mit einem Computer zu lösen, würde es lange dauern, bis man die für die grundlegende Mathematik erforderlichen numerischen Methoden (z. B. Differenzierung, Integration usw.) beherrscht. Glücklicherweise gibt es Open-Source-Tools – namentlich Analysecodes –, die optimierte Algorithmen bereitstellen. So kann man sich auf die Lösung physikalischer Fragen konzentrieren.
Analysecode
Es gibt mehrere Analyseprogramme, die sich für die Durchführung einer MD-Simulation eignen. Die Liste der von mir gefundenen Programme umfasst CHARMM, AMBER, NAMD, GROMACS, DL_POLY und LAMMPS. Von diesen sechs Programmen sind die ersten vier (CHARMM, AMBER, NAMD, GROMACS) auf die Biologie (z. B. DNA-Kraftfelder) ausgerichtet, während die letzten beiden gut für die Materialwissenschaften geeignet sind – genau den Typ, den ich suchte. Letztendlich entschied ich mich für LAMMPS, vor allem aufgrund der aktiven Community und der gut geschriebenen Dokumentation.
LAMMPS installieren
Zuerst musste ich LAMMPS auf meinem Rechner installieren, um zu verstehen, wie eine Eingabedatei in LAMMPS funktioniert. Entgegen meiner anfänglichen Befürchtung, eine Linux-Umgebung einrichten zu müssen, dank Derek ThomasIch konnte den Code mit nur wenigen Befehlen direkt in meiner OS X-Umgebung installieren und war innerhalb weniger Minuten bereit, eine MD-Simulation auszuführen. Für eine einfache Plausibilitätsprüfung folgte ich dem grundlegenden Tutorial und führte den Code „in.obstacles“ (Beispiel-Tutorial) mit dem folgenden Befehl aus:
lammps -in in.obstacles
Und um sicherzugehen, dass alles wie vorgesehen funktionierte, habe ich denselben Job auf Rescale ausgeführt, der dieselben Ergebnisse lieferte wie der von meinem Macbook.
Eine größere Herausforderung bestand für mich nun darin, einen Code zu schreiben, der die Bedingungen (z. B. die Temperatur) verändert und die Unterschiede in den physikalischen Eigenschaften von Kohlenstoffatomen (z. B. Position, kinetische Energie, potenzielle Energie usw.) im Laufe der Zeit beobachtet. Da es jedoch schwierig erschien, all dies ohne physikalische Fehler zu implementieren, entschied ich mich, einen vorhandenen Code aus einer wissenschaftlichen Arbeit zu übernehmen.
Einachsiger Zugversuch in LAMMPS
Nach stundenlangem Googeln fand ich die Arbeit „Molecular Dynamics Study of Effects of Geometric Defects on the Mechanical Properties of Graphene“ von Nuwan Dewapriya Mallika Arachchige, die LAMMPS nutzte, um ein ähnliches Ziel zu erreichen wie ich. Der Autor war so freundlich, den Aufbau seines Experiments im Anhang anzuhängen, aber ich musste mein eigenes Graphenblatt erstellen, indem ich ein Python-Skript schrieb, das die Experimentgrenzen und Positionen der Kohlenstoffatome bestimmt.
Nach einigen Versuchen konnte ich bestätigen, dass alles korrekt funktionierte, indem ich die von mir ermittelte Zunahme der potentiellen Energie mit den Ergebnissen in Archchiges Arbeit verglich. Abbildung 1 zeigt die Zunahme der potentiellen Energie im Zeitverlauf.
Abbildung 1. Potentielle Energie im Vergleich zur Zeit
Rescale-Plattform
Nachdem ich eine erfolgreiche Simulation auf meinem Rechner durchgeführt hatte, beschloss ich, sie für eine bessere Leistung auf die Rescale-Plattform zu verschieben. Die Größe meiner Simulation betrug 166,320,000 (1.66e8) – die Größe Ihres Experiments ergibt sich aus dem Produkt aus der Anzahl der Atome (252) und der Anzahl der Zeitschritte (660,000) in MD.
Ich habe den Job mit unterschiedlichen Hardwareeinstellungen ausgeführt, um die Leistungssteigerungen für verschiedene Kerntypen zu demonstrieren. Abbildung 2 zeigt die Unterschiede in der Hardwareleistung für meine Simulation.
Abbildung 2. Übersicht über die Hardwareleistung
Diskussion
Insgesamt war es eine unterhaltsame erste Erfahrung mit einer MD-Simulation. Obwohl die grafische Darstellung des Anstiegs der potentiellen Energie im Laufe der Zeit interessant war, sehe ich bei der Gestaltung des Experiments Spielraum für Kreativität (z. B. scheinen einige Leute unvollkommene Graphenmodelle zu erstellen, um zu sehen, wie sich ein fehlendes Atom auf die Stabilität der Gesamtstruktur auswirkt).
Was die Rechenleistung betrifft, konnte ich durch die Nutzung der Rescale-Plattform meine Simulationszeit linear verkürzen. Wer eine MD-Simulation von Graphen durchführen möchte, kann sich die Ergebnisse der Simulation ansehen und die Eingabedateien herunterladen. werden auf dieser Seite erläutert.
Informationen zum Einrichten und Ausführen von LAMMPS-Simulationen auf Rescale finden Sie unter rescale.com/resources/lammps.
