VASP-Tutorial: 1-1. DFT-Berechnung Eines Isolierten Sauerstoffatoms
1. Einführung in das Tutorial
In diesem Tutorial wird VASP als Beispiel verwendet, um die Durchführung von Berechnungen im Hochleistungsrechnen von Grund auf vorzustellen.
VASP, der vollständige Name von Vienna Ab-initio Simulation Package, ist ein Softwarepaket für elektronische Strukturberechnungen und Quantenmechanik-Molekulardynamik-Simulationen, das von der Hafner-Gruppe an der Universität Wien entwickelt wurde. Es ist derzeit eine der beliebtesten kommerziellen Software in der Materialsimulation und rechnergestützten Materialwissenschaftsforschung. Aufgrund seiner hohen Genauigkeit und leistungsstarken Funktionen ist es ein wichtiges Werkzeug für Forscher zur Vorhersage und Gestaltung von Materialeigenschaften , Chemie, Molekulardynamik und andere Bereiche. VASP verwendet Pseudopotentiale und ebene Wellenbasissätze zur Simulation elektronischer Strukturen und eignet sich besonders für Systeme, die mit periodischen Randbedingungen umgehen, wie z. B. Kristalle, Oberflächen und Nanostrukturen.
通过本教程的学习,您将能够:
* 在伪代码层面解释密度泛函理论 (DFT) 计算
* 创建输入文件以运行孤立原子的 DFT 计算
* 识别 stdout 和 OUTCAR 的基本结构
* 提取分子和原子的相关能量
* 从之前的 Kohn-Sham (KS) 轨道重新开始 DFT 计算
Lernziele
Dieses Tutorial ist Offizielles VASP-TutorialImplementierung von DFT-Berechnungen durch VASP, Erlernen der Erstellung von Eingabedateien, Verständnis der Grundstruktur von Ausgabedateien und Extrahieren relevanter Energiedaten.
DFT ist ein Rahmenwerk, in dem die Freiheitsgrade von Elektronen behandelt werden. Auf Pseudocode-Ebene umfasst es die folgenden Schritte:
- Unter Berücksichtigung der Elektronenladungsdichte kann der Hamilton-Operator definiert werden.
- Berechnen Sie die Eigenfunktionen und Eigenwerte des Hamilton-Operators.
- Elektronenladungsdichte aktualisieren.
- Wiederholen Sie die Schritte 1-3 bis zur Konvergenz. Ausführliche Informationen zur Implementierung in VASP finden Sie unter VASP-Algorithmus zur Berechnung des Grundzustands von Elektronen.
2. Bedienungsschritte
1. Bereiten Sie Eingabedateien und Skripte vor (dieses Tutorial wurde vorbereitet)
Bei der Durchführung von VASP-Optimierungsberechnungen müssen 4 Schlüsseldateien vorbereitet werden (Diese Tutorial-Datei dient nur als Referenz. Wenn Sie sie verwenden müssen, beantragen Sie bitte die Erlaubnis auf der offiziellen Website.):POSCAR , INCAR , KPUNKTE Und POTCAR, alle Beispieldateien wurden eingefügt /home/Oatom
Runter:
POSCAR: Die Datei enthält die Atomstrukturinformationen des Berechnungsmodells, einschließlich Elementarzellenparameter und Koordinatenpositionen jedes Atoms. Sie ist der Hauptteil von VASP für die Strukturanalyse und -optimierung.
POSCAR
O atom in a box
1.0 ! universal scaling parameters
8.0 0.0 0.0 ! lattice vector a(1)
0.0 8.0 0.0 ! lattice vector a(2)
0.0 0.0 8.0 ! lattice vector a(3)
1 ! number of atoms
cart ! positions in cartesian coordinates
0 0 0
Wir verwenden Single-Atom-POSCAR-Dateien. Wählen Sie Gitterparameter, die groß genug sind, dass keine (signifikanten) Wechselwirkungen zwischen Atomen in benachbarten Elementarzellen auftreten.
INCAR: Die Datei definiert die Aufgabentypen und Berechnungsparameter von VASP-Berechnungen und weist VASP an, welche physikalischen Eigenschaften zu berechnen sind und wie diese Berechnungen durchzuführen sind.
SYSTEM = O atom in a box
ISMEAR = 0 ! Gaussian smearing
KPUNKTE: Die Datei enthält die für die Berechnung erforderlichen K-Punkt-Gitterinformationen. Der K-Punkt ist der Punkt, an dem der elektronische Zustand in der Brillouin-Zone abgetastet wird.
Gamma-point only
0
Monkhorst Pack
1 1 1
0 0 0
Für Atome oder Moleküle reicht ein einzelner k-Punkt aus. Wenn mehr k-Punkte verwendet werden, werden nur die Wechselwirkungen zwischen Atomen (die Null sein sollten) genauer beschrieben.
POTCAR: Die Datei enthält die Pseudopotentialinformationen, die für jedes Atom während der Berechnung verwendet werden.
Skript einreichen: Um VASP-Berechnungen über die Befehlszeile auszuführen, müssen Sie ein Übermittlungsskript (job.sh) schreiben. Dieses Skript enthält die Ressourcen und die Umgebung, die zum Aufrufen von Berechnungen, zum Ausführen ausführbarer VASP-Dateien usw. erforderlich sind. Sie können dieses Skript zur Bereitstellung verwenden Job an den angegebenen Speicherort im Skript.
#
# To run VASP this script calls $vasp_std
# (or posibly $vasp_gam and/or $vasp_ncl).
# These variables can be defined by sourcing vaspcmd
. vaspcmd 2> /dev/null
#
# When vaspcmd is not available and $vasp_std,
# $vasp_gam, and/or $vasp_ncl are not set as environment
# variables, you can specify them here
[ -z "`echo $vasp_std`" ] && vasp_std="mpirun --allow-run-as-root -np 8 /data/app/vasp/6.3.0/gcc-mkl-openmpi/vasp_std"
[ -z "`echo $vasp_gam`" ] && vasp_gam="mpirun --allow-run-as-root -np 8 /data/app/vasp/6.3.0/gcc-mkl-openmpi//vasp_gam"
[ -z "`echo $vasp_ncl`" ] && vasp_ncl="mpirun --allow-run-as-root -np 8 /data/app/vasp/6.3.0/gcc-mkl-openmpi//vasp_ncl"
#
# The real work starts here
#
$vasp_std
Wenn die Umgebungsvariablen vasp_std, vasp_gam, vasp_ncl nicht festgelegt sind, legen Sie sie auf einen Befehl zum Ausführen des VASP-Programms fest. Dadurch wird sichergestellt, dass bei Bedarf immer ein Standardwert für die spätere Verwendung vorhanden ist. Das -np 1 gibt hier die Ausführung eines Prozesses an.
2. Beginnen Sie mit der Berechnung
Erhalten Sie eine Beispielausgabe (stdout) von O-Atomen mit VASP Version 6.3.0. Die anfängliche Ladung entspricht der Ladung isolierter überlappender Atome (POTCAR-Datei). In den ersten 4 Schritten wird die Ladung konstant gehalten, dann wird die Ladung aktualisiert (Spalte rms(c)).
* 具体步骤:
新建一个终端,输入下面命令
cd Oatom/
vasp_std
3. Standardausgabe (stdout): Das Terminal zeigt die Berechnungsergebnisse an
running on 8 total cores
distrk: each k-point on 8 cores, 1 groups
distr: one band on 1 cores, 8 groups
using from now: INCAR
vasp.6.3.0 05Feb16 (build Aug 22 2016 16:46:23) complex
POSCAR found : 1 types and 1 ions
scaLAPACK will be used
LDA part: xc-table for Pade appr. of Perdew
POSCAR, INCAR and KPOINTS ok, starting setup
WARNING: small aliasing (wrap around) errors must be expected
FFT: planning ...
WAVECAR not read
entering main loop
N E dE d eps ncg rms rms(c)
DAV: 1 0.384469664751E+02 0.38447E+02 -0.96726E+02 16 0.293E+02
DAV: 2 0.345965628955E+01 -0.34987E+02 -0.34942E+02 32 0.450E+01
DAV: 3 -0.244485866931E+00 -0.37041E+01 -0.34307E+01 16 0.308E+01
DAV: 4 -0.312557021227E+00 -0.68071E-01 -0.66914E-01 16 0.508E+00
DAV: 5 -0.313520305300E+00 -0.96328E-03 -0.96311E-03 32 0.506E-01 0.286E-01
DAV: 6 -0.314540466589E+00 -0.10202E-02 -0.17853E-03 16 0.332E-01 0.142E-01
DAV: 7 -0.314637222361E+00 -0.96756E-04 -0.22710E-04 16 0.134E-01
1 F= -.31463722E+00 E0= -.16037490E+00 d E =-.308525E+00
writing wavefunctions
Kurze Erklärung der Symbole in OSZICAR- und stdout-Dateien:

4. Sehen Sie sich die Laufergebnisse an
Nach der Ausführung werden die Ergebnisse gespeichert ./Oatom/OUTCAR
, geben Sie den Befehl ein cat OUTCAR
um die Ergebnisse zu sehen.
Im Folgenden werden die verschiedenen Teile der OUTCAR-Datei vorgestellt, getrennt durch horizontale Linien:
- Lesen Sie INCAR, POTCAR, POSCAR
- Nächste-Nachbarn-Abstands- und Symmetrieanalyse
- Detaillierte Jobinformationen
- Informationen zum Gitter, k-Punkten und Positionen
- Basissatzinformationen (Anzahl der ebenen Wellen)
- Nicht-lokale Pseudopotentialinformationen
- Informationen zu jedem elektronischen Schritt (eine Zeile in OSZICAR)
- Zeit- und Energieinformationen
- Informationen zu Eigenwerten
POTLOK: cpu time 0.0878: real time 0.0877
SETDIJ: cpu time 0.0015: real time 0.0014
EDDAV: cpu time 0.0267: real time 0.0434
DOS: cpu time 0.0001: real time 0.0001
--------------------------------------------
LOOP: cpu time 0.1165: real time 0.1346
eigenvalue-minimisations : 16
total energy-change (2. order) : 0.3844697E+02 (-0.9672571E+02)
number of electron 6.0000000 magnetization
augmentation part 6.0000000 magnetization
Free energy of the ion-electron system (eV)
---------------------------------------------------
alpha Z PSCENC = 0.27135287
Ewald energy TEWEN = -91.92708002
-Hartree energ DENC = -281.84385691
-exchange EXHF = 0.00000000
-V(xc)+E(xc) XCENC = 26.11948841
PAW double counting = 245.99840262 -247.84808825
entropy T*S EENTRO = -0.08636665
eigenvalues EBANDS = -44.50008162
atomic energy EATOM = 432.26319604
Solvation Ediel_sol = 0.00000000
---------------------------------------------------
free energy TOTEN = 38.44696648 eV
energy without entropy = 38.53333313 energy(sigma->0) = 38.49014980
- Informationen zum Spannungstensor
E-fermi : -8.8431 XC(G=0): -0.8043 alpha+bet : -0.1463
k-point 1 : 0.0000 0.0000 0.0000
band No. band energies occupation
1 -23.8439 2.00000
2 -8.9040 1.33333
3 -8.9040 1.33333
4 -8.9040 1.33333
5 -0.4676 0.00000
6 1.8633 0.00000
7 1.8633 0.00000
8 1.8633 0.00000
- Energieinformationen
The O atom (Example: Oatom)
FORCE on cell =-STRESS in cart. coord. units (eV):
Direction XX YY ZZ XY YZ ZX
--------------------------------------------------------------------------------------
Alpha Z 0.27135 0.27135 0.27135
Ewald -30.64236 -30.64236 -30.64236 0.00000 0.00000 0.00000
Hartree 93.90244 93.90244 93.90244 -0.00000 -0.00000 -0.00000
E(xc) -27.93035 -27.93035 -27.93035 -0.00000 -0.00000 -0.00000
Local -147.86211 -147.86211 -147.86211 0.00000 0.00000 0.00000
n-local -20.54942 -20.54942 -20.54942 -0.00000 -0.00000 -0.00000
augment 5.55366 5.55366 5.55366 0.00000 -0.00000 0.00000
Kinetic 126.50998 126.50998 126.50997 -0.00000 0.00000 -0.00000
Fock 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
-------------------------------------------------------------------------------------
Total -0.74681 -0.74681 -0.74681 0.00000 -0.00000 -0.00000
in kB -2.33695 -2.33695 -2.33695 0.00000 -0.00000 -0.00000
external pressure = -2.34 kB Pullay stress = 0.00 kB
- Informationen zu Eigenwerten
FREE ENERGIE OF THE ION-ELECTRON SYSTEM (eV)
---------------------------------------------------
free energy TOTEN = -0.31463722 eV
energy without entropy= -0.00611258 energy(sigma->0) = -0.16037490
5. Neu berechnen
Wenn Sie eine Neuberechnung durchführen müssen, können Sie den Befehl erneut eingeben vasp_std
können Sie mit der Berechnung von Grund auf beginnen. Beim Neustart von VASP wird die WAVECAR-Datei gelesen und der Lauf wird mit der vorherigen Wellenfunktion fortgesetzt (schnelle Konvergenz).
6. Bereinigen Sie frühere Berechnungen
Befehl ausführen bash cleanup.sh
, löscht die vorherige Wellenfunktion und startet die Berechnung komplett neu.
3. Zusammenfassung
Dieses Tutorial konzentriert sich auf DFT-Berechnungen isolierter Sauerstoffatome. Wir haben gelernt, wie man eine DFT-Berechnung für ein einzelnes Sauerstoffatom erstellt, um die Energie des isolierten Atoms zu berechnen. Dieser Prozess umfasst die Definition des Hamilton-Operators, die Berechnung der Eigenfunktionen und Eigenwerte des Hamilton-Operators und die Aktualisierung der Elektronenladungsdichte, bis das System konvergiert. Die Vorbereitung der Eingabedateien umfasst POSCAR, INCAR, KPOINTS und POTCAR. Jede Datei hat ihr spezifisches Format und ihre spezifische Rolle. Nachdem die Berechnung abgeschlossen ist, können wir den Berechnungsprozess und die Ergebnisse verstehen, indem wir die stdout- und OUTCAR-Dateien analysieren.