Modul für ab Initio Structure Evolution (Maise) Merkmale
* Neuronales netzwerkbasiertes Beschreibung interatomischer Interaktionen
* Evolutionäre Optimierung
* Strukturanalyse
1. Allgemeine Info
2. Download und Installation
3. Eingang
4. Beispiele
5. Eingabe -Eingabetag Beschreibung einrichten
Maise wurde von entwickelt von
Alexey Kolmogorov [email protected]
Samad hajinazar [email protected]
Ernesto Sandoval [email protected]
Die aktuelle Version 2.9 arbeitet auf Linux -Plattformen und kombiniert 3 Module für die Modellierung, Optimierung und Analyse von Atomstrukturen.
1 Das Modul des neuronalen Netzwerks (NN) erstellt, testet und verwendet NN-Modelle, um interatomische Wechselwirkungen mit nahezu Abschnitt-Initio-Genauigkeit zu niedrigen Rechenkosten im Vergleich zu Berechnungen der Dichtefunktionstheorie zu beschreiben.
Mit dem Hauptziel, NN -Modelle zur Beschleunigung der Struktursuche zu verwenden, besteht die Hauptfunktion des Moduls darin, gegebene Strukturen zu entspannen. Um die NN -Anwendung und den Vergleich zu vereinfachen, haben wir die Input- und Ausgabedateiformate mit denen, die in der VASP -Software verwendet werden, genau übereinstimmen. Zuvor im Verzeichnis 'Modelle/' verfügbaren parametrisierten NN -Modelle wurden erzeugt und für kristalline und/oder nanostrukturierte Materialien umfassend getestet. Zu den ersten praktischen Anwendungen von NNs gehören die Vorhersage neuer synthetisierbarer MG-CA- und M-SN-Legierungen [1-3] sowie die Identifizierung stabilerer Cu-PD-Ag- und Au-Nanopartikel [4,5].
Benutzer können ihre eigenen NN -Modelle mit Maise erstellen, die in der Regel auf die Gesamtenergie und die Atomkraftdaten für relativ kleine Strukturen trainiert werden. Die Erzeugung relevanter und vielfältiger Konfigurationen erfolgt getrennt mit einem in unserer veröffentlichten Arbeiten beschriebenen Protokoll [6]. Der Code führt ein einzigartiges Merkmal, "geschichtete Training", mit dem Aufbau robuster NNs für chemische Systeme mit mehreren Elementen ein [6]. NN -Modelle werden hierarchische Weise entwickelt, zunächst für Elemente, dann für Binärdateien usw., was die Erzeugung wiederverwendbarer Bibliotheken für erweiterte Blöcke in der Periodenkabine ermöglicht.
2 Der implementierte Evolutionsalgorithmus (EA) ermöglicht eine effiziente Identifizierung von Grundzustandskonfigurationen in einer bestimmten chemischen Zusammensetzung. Unsere Studien haben gezeigt, dass der EA im Umgang mit großen Strukturen besonders vorteilhaft ist, wenn kein experimenteller struktureller Input verfügbar ist [7,8].
Die Suchanfragen können für 3D -Schüttgutkristalle, 2D -Filme und 0D -Nanopartikel durchgeführt werden. Die Population von Strukturen kann basierend auf früheren Informationen zufällig oder vordefiniert werden. Wesentliche Operationen sind "Crossover", wenn eine neue Konfiguration basierend auf zwei übergeordneten Strukturen in der vorherigen Generation und "Mutation" erstellt wird, wenn eine übergeordnete Struktur zufällig verzerrt wird. Für 0D -Nanopartikel haben wir einen Multitribe -Evolutionsalgorithmus eingeführt, der eine effiziente gleichzeitige Optimierung von Clustern in einem bestimmten Größenbereich ermöglicht [4].
3 Die Analysefunktionen umfassen den Vergleich von Strukturen auf der Grundlage der Radialverteilungsfunktion (RDF), die Bestimmung der Raumgruppe und die Wyckoff-Positionen mit einem externen SPGLIB-Paket usw. insbesondere das RDF-basierte Strukturprodukt für Struktur-Basis-Produkte für für die DOT-basierte Strukturprodukt Beseitigung doppelter Strukturen in EA-Suchanfragen und Auswahl verschiedener Konfigurationen im Pool der gefundenen Energiestrukturen.
[1] https://pubs.rsc.org/en/content/articlelanding/2018/cp/c8cp05314f#!divabstract
[2] https://www.nature.com/articles/s41524-022-00825-4
[3] https://pubs.rsc.org/en/content/articlelanding/2023/cp/d3cp02817h/unauth
[4] https://pubs.rsc.org/en/content/articlelanding/2019/cp/c9cp00837c#!divabstract
[5] https://pubs.acs.org/doi/10.1021/acs.jpcc.9b08517
[6] https://journals.aps.org/prb/abstract/10.1103/PhysRevb.95.014114
[7] https://journals.aps.org/prl/abstract/10.1103/PhysRevlett.109.075501
[8] https://journals.aps.org/prb/abstract/10.1103/PhysRevb.98.085131
Der Quellcode für Maise kann aus der Befehlszeile durch Ausführen erhalten werden:
git clone git://github.com/maise-guide/maise.git
oder
git clone https://github.com/maise-guide/maise.git
oder
wget -O master.zip https://github.com/maise-guide/maise/archive/master.zip unzip master.zip
1 Verwenden Sie ' make -jobs ' für die vollständige Zusammenstellung. Verwenden Sie zur Neukompilation "Make Clean", um Objektdateien zu entfernen, oder "Clean-All", um Objektdateien und externe Bibliotheken zu entfernen.
2 Während der Maise -Kompilierung prüft "make -jobs", ob zwei externe Bibliotheken, GSL -Bibliothek und SPGLIB V1.11.2.1, Februar 2019, vorhanden sind. Wenn nicht, werden sie automatisch auf ./extdep heruntergeladen und in ./lib auf den meisten Systemen installiert.
3 Wenn die GSL- oder SPGLIB -Installation nicht automatisch abgeschlossen ist, kompilieren Sie sie bitte manuell und kopieren Sie (i) libgsl.a, libgslcblas.a und libsymspg.a in das Subdirektor von './lib'; (ii) das Unterverzeichnis 'spGlib.h' in './lib/include'; und (iii) alle GSL -Header in das Unterverzeichnis './lib/include/gsl'.
4 Ein "Check" -Skript ist im Verzeichnis "./test/" verfügbar, das nach dem Zusammenstellen der ausführbaren Maise -Datei ausgeführt werden kann, um die richtige Funktionalität des Codes zu gewährleisten. Dieses Skript prüft automatisch auf die Leistung des Codes bei der Analyse der Daten, der Schulung des neuronalen Netzwerks und zur Bewertung einer Kristallstruktur. Wenn die Kompilierung in Ordnung ist, wird das "Check" -Skript so ausgegeben. Andernfalls werden Fehlerprotokolle mit weiteren Informationen zum Problem bereitgestellt.
Der Code wurde ausgiebig auf Linux -Plattformen getestet. Wir werden das Feedback der Benutzer zur Installation und Leistung des Pakets auf verschiedenen Plattformen zu schätzen wissen.
Haupteingangsdateien, die eine Simulation definieren, sind "Setup" mit Jobeinstellungen, "Modell" mit NN -Parametern und "POSCAR" mit Atomstrukturparametern im VASP -Format. Die Umwandlung von atomaren Umgebungen in NN-Eingaben während der Parsing-Phase der NN-Entwicklung erfordert eine "Basis" -Datei, die die Funktionen von Behler-Parrinello-Symmetrie-Funktionen spezifiziert.
Evos | Nnet | ZELLE | |||||
SUCHEN | PRÜFUNG | Analysieren | ZUG | PRÜFEN | Simul | PRÜFUNG | |
aufstellen | + | + | + | + | + | + | |
Modell | +* | +# | +# | ||||
Basis | + | $ | |||||
Spg | + | + | |||||
GSL | + | + | |||||
* Für geschichtete Schulungen muss man individuelle Modelle anbieten $ 'Basis', die im analysierten Verzeichnis gespeichert ist # 'Modell' hat 'Basis' am Ende geklebt, sobald das Training fertig ist |
Die Strukturuntersuchungs- und -manipulationsfunktionen werden durch Aufrufen von Maise mit einer Flagge ausgeführt:
maise -flag
Flagge | Flaggenbeschreibung |
---|---|
Mann | Ausgeben die Liste der verfügbaren Flags |
RDF | Berechnen und zeichnen Sie die RDF für POSCAR |
CXC | Berechnen Sie das Punktprodukt für POSCAR0 und POSCAR1 mit RDF |
CMP | Vergleichen Sie RDF, Raumgruppe und Volumen von POSCAR0 und POSCAR1 |
spg | POSCAR in Str.cif, konv, prim konvertieren |
CIF | konvertieren Str.cif in Konv und Prim |
düster | Finden Sie heraus, ob POSCAR periodisch (3) oder nicht periodisch (0) ist |
vol | Berechnen Sie Volumen pro Atom für Kristall- oder Nanostrukturen |
verrotten | Drehen Sie einen Nanopartikel entlang der Eigenvektoren von Trägheitsmomenten |
MOV | Bewegen Sie Atome durch eine konstante Verschiebung entlang einer Richtung entlang |
Kasten | Setzen Sie die Kastengröße für Nanopartikel zurück |
sup | Machen Sie eine Superzelle, die von Na x nb x nc angegeben ist |
Eigen | Schichteinheitszelle in Poscar entlang eines Phonon -Eigenmode |
ord | Atome nach Arten bestellen |
aus | Extrahieren Sie Schnappschüsse aus MD- oder Relaxationstrajektorien in Vasp |
Das Verzeichnis 'Beispiele/' enthält Stichproben von Maise -Jobs für die Analyse und Manipulation von Einheitenzellen, analysieren Sie Daten, Schulungen neuronaler Netzwerke, Simulation von Strukturen mit neuronalen Netzwerkmodellen, evolutionärer Suche nach Grundzustand mit neuronalen Netzwerkmodell, molekularen Dynamik -Lauf und Phononberechnung. EASH -Beispiel hat eine ReadMe -Datei, eine Setup -Datei mit nur relevanten Tags für den jeweiligen Job und die Referenzausgabedateien zum Vergleich.
Hauptjob -Selektor
Struktur-Enviroment
Haupt -Evos
EVOS -Operationen
Evos Crossover/Mutation
Molekulare Dynamik
Arten verwandt
E/O
Allgemeines Modell
Neurales Netzwerkmodell
Neuronales Netzwerktraining
Parsing
Zellentspannung
Jobt
Nmax Mmax
Code Dene kmsh lbox ndim nitr nnjb npop rand runt saTr tini
Blob Chop Invs Mate Mute Pack plnt Refluse -Rube Tetr Tetr Tetr
ACRS ADST ELPS LDST MCRS SCRS SDST
CPLT CPLP ICMP Delt Movi NSTP MDTP TMAX Tmin TSTP
ASPC NSPC TSPC
Cout data depo eval otpt wdir
NCMP nngt nnnnnu nsym
FMRK leg ntrn ntst tefs npar
Emax fmax fmin vmax vmin mmax
Etol Mint Mitr PGPA RLXT -Zeit
ETIKETT | BESCHREIBUNG |
---|---|
Jobt | Strukturanalyse (00) Verwenden von Analysetools, die durch Flags angegeben sind, evolutionäre Suche (10) Ausführen (11) Soft Exit (12) Hartausgang Daten Parsing (30) Bereiten Sie Eingaben für das NN -Training vor, NN Training (40) Vollständiges Training (41) geschichtete Schulung |
CODE | Typ des verwendeten Codes. (0) Maise-Int (1) VASP-EXT (2) Maise-Outd |
Npar | Anzahl der Kerne für paralleles NN -Training oder Zellsimulation |
MINZE | Der Optimierer -Algorithmus für das neuronale Netzwerktraining und die Zelloptimierung. (GSL Minimizer-Typ (0) BFGS2 (1) CG-FR (2) CG-PR (3) Steilster Abstieg |
Mitr | Maximale Anzahl der Optimierungsschritte; Wenn die gewünschte Genauigkeit für NN -Trainings- oder Zelloptimierungsschritte nicht erreicht ist |
Rlxt | Zelloptimierungstyp (2) Nur Kraft (3) Vollzelle (7) Volumen (ISIF in Vasp) |
Etol | Fehlertoleranz für das Training oder die Konvergenz der Zelloptimierung |
Tefs | Trainingszielwert (0) E (1) EF (2) ES (3) EFS (4) Spielzeug |
Fmrk | Bruchteil der Atome, die für EF- oder EFS -Schulungen analysiert werden, |
Cout | Ausgabetyp in der Outcar -Datei in der Zellbewertung und Optimierung |
Nmax | Maximale Anzahl von Atomen in der Einheitszelle |
Mmax | Maximale Anzahl von Nachbarn im Grenzradius |
NSPC | Anzahl der Elementtypen für die evolutionäre Suche, Analyse der Daten und des neuronalen Netzwerks. |
TSPC | Atomzahl der mit NSPC -Tag angegebenen Elemente |
ASPC | Anzahl der Atome jedes Elements für die evolutionäre Suche |
Nsym | Anzahl der Behler-Parrinello-Symmetriefunktionen zum Parsen von Daten mithilfe der "Basis" -Datei |
NCMP | Die Länge des Eingangsvektors des neuronalen Netzwerks |
Ntrn | Anzahl der für das neuronalen Netzwerk -Training verwendeten Strukturen (negativer Zahlungsbedarf prozentual) |
Ntst | Anzahl der für neuronalen Netzwerktests verwendeten Strukturen (negativer Zahlungsmittelanteil) |
Nnnn | Anzahl der versteckten Schichten im neuronalen Netzwerk (enthalten keinen Eingangsvektor und Ausgangsneuron) |
Nnnu | Anzahl der Neuronen in versteckten Schichten |
Nngt | Aktivierungsfunktionstyp für die Neuronen der versteckten Schichten (0) linear (1) tanh |
EMAX | Analysieren nur diesen Bruchteil der niedrigsten Energiestrukturen. Von 0 bis 1 |
Fmax | Analysiert Daten nicht mit Kräften, die größer als dieser Wert sind |
Vmin | Analysiert Daten nicht mit Volumen/Atom kleiner als dieser Wert |
Vmax | Analysiert keine Daten mit Volumen/Atom größer als dieser Wert |
Ndim | Dimensionalität der Einheitszelle in evolutionärer Suche und Zelloptimierung (3) Kristall (2) Film (0) Partikel |
Lbox | Boxdimension zum Erzeugen von Partikeln in der evolutionären Suche in ANGs (für Kristalle ignoriert) |
NPOP | Bevölkerungsgröße bei der evolutionären Suche |
Sitr | Starten der Iteration in der evolutionären Suche (0) beginnen mit zufälligen oder angegebenen Strukturen |
Nitr | Anzahl der Iterationen in der evolutionären Suche (sollte größer sein als SITR) |
Tini | Art des Startens der evolutionären Suche bei Sitr = 0 |
ZEIT | Maximale Zeit für die Zellrelaxation bei evolutionärer Suche und Zelloptimierung |
PGPA | Druck in GPA |
Dene | Speichern Sie unterschiedliche Strukturen, die in der evolutionären Suche in Pool/If innerhalb dieses Fensters für Energie/Atom (EV/Atom) aus dem Grundzustand erzeugt werden |
Kmsh | K-Mesh-Dichte für Vasp-Evos verwendet. Vorgeschlagene Werte: 0,30 für S/C, 0,05 für Metalle |
SAMEN | Saatgut für den Zufallszahlengenerator bei evolutionärer Suche (0) verwendet die Zeit als Samen (+) den Samenwert |
Rand | Saatgut für die Analyse des Datensatzes starten. (0) verwendet die Zeit als Saat |
Tmin | Mindesttemperatur in MD -Läufen (k) |
Tmax | Maximale Temperatur in MD -Läufen (k) |
TSTP | Temperaturschritt in MD läuft (k) in Laufform Tmin zu Tmax |
Delt | Zeitschritt in den MD -Läufen |
NSTP | Anzahl der Schritte pro Temperatur in MD -Läufen |
Cplt | Kopplung konstant im Nasen-Hoover-Thermostat für MD-Läufe. Vorgeschlagen: 25.0 |
CPLP | Kopplung konstant in Brendsen Barostat für MD -Läufe. Vorgeschlagen: 100.0 |
ICMP | Isotherme Kompressibilität im Brendsen -Barostat für MD -Läufe (in 1/GPA) |
MOVI | Anzahl der Schritte, nach denen während des MD -Laufs ein Schnappschuss der Struktur gespeichert wird |
Mdtp | MD-Lauftyp (10) NVE (20) NVT: Nasen-Hoover (30) NPT: Nasen-Hoover- und Brendsen (40) Isobaric (11,21,31,41) läuft mit Velocisitäten, die aus der POSCAR-Datei gelesen wurden |
Depo | Pfad zu den analysierten DFT -Datensätzen |
DATEN | Ort der analysierten Daten zum Analysieren oder Lesen für das Training (wird während der Parsen überschrieben) |
Otpt | Verzeichnis zum Speichern von Modellparametern im Trainingsprozess |
Bewerten | Verzeichnis für Modelltestdaten |
Wdir | Arbeitsverzeichnis für evolutionäre Suche, MD läuft usw. |
Tetr | Fraktion der Strukturen, die zufällig unter Verwendung des Tetris -Betriebs erzeugt wurden. Von 0 bis 1 |
PLNT | Bruchteil der aus Samen erzeugten Strukturen. Von 0 bis 1 |
PACK | Bruchteil der Strukturen, die aus geschlossenen Packstrukturen erzeugt werden. Von 0 bis 1 |
KLECKS | Bruchteil der Strukturen, die zufällig unter Verwendung der Blobform erzeugt wurden. Von 0 bis 1 |
KUMPEL | Bruchteil der durch Crossover erzeugten Strukturen unter Verwendung von zwei Hälften von jedem Elternteil. Von 0 bis 1 |
TAUSCHEN | Bruchteil der durch Crossover erzeugten Strukturen unter Verwendung von Kern und Shell von Eltern. Von 0 bis 1 |
Rube | Bruchteil der Strukturen, die durch Rubik's Cube Operation erzeugt werden. Von 0 bis 1 |
Refl | Bruchteil der durch Symmetrisierung erzeugten Strukturen durch Reflexion. Von 0 bis 1 |
Invs | Bruchteil der durch Symmetrisierung erzeugten Strukturen durch Inversion. Von 0 bis 1 |
HACKEN | Bruchteil der Strukturen, die durch Hacken erzeugt werden, um Facetten herzustellen. Von 0 bis 1 |
STUMM | Bruchteil der Strukturen, die durch zufällige Verzerrungen der Struktur erzeugt werden. Von 0 bis 1 |
Mcrs | 0,50 Mutationsrate bei Crossover |
Scrs | 0,00 Crossover: Austauschrate |
Lcrs | 0,00 Crossover: Mutationsstärke für Gittervektoren |
Acrs | 0,10 Crossover: Mutationsstärke für Atompositionen |
SDST | 0,00 Verzerrung: Austauschrate |
Ldst | 0,00 Verzerrung: Mutationsstärke für Gittervektoren |
Adst | 0,20 Verzerrung: Mutationsstärke für Atompositionen |
Elps | 0,30 zufällig: Elliptizität der Nanopartikel |