HyperAI

VASP-Grundlagen: Berechnung Der Zustandsdichte Und Bandbreiten in Silizium

1. Einführung in das Tutorial

* Video-Tutorial:[VASP-Tutorial für den Einstieg] Berechnung der Zustandsdichte und Energiebänder von Silizium

Einführung in VASP

VASP (Vienna Ab initio Simulation Package)  Es handelt sich um ein Computerprogramm zur Materialmodellierung auf atomarer Ebene ausgehend von Grundprinzipien, wie etwa Berechnungen der elektronischen Struktur und quantenmechanische Molekulardynamik.

VASP kann Näherungslösungen für die Vielteilchen-Schrödingergleichung berechnen, indem entweder die Kohn-Sham-Gleichung in der Dichtefunktionaltheorie (DFT) oder die Roothaan-Gleichung in der Hartree-Fock-Näherung (HF) gelöst wird. Es werden auch Hybridfunktionale implementiert, die die Hartree-Fock-Methode mit der Dichtefunktionaltheorie kombinieren. Darüber hinaus sind in VASP Green'sche Funktionsmethoden (GW-Quasiteilchen und ACFDT-RPA) und die Vielteilchen-Störungstheorie (Møller-Plesset zweiter Ordnung) verfügbar.

In VASP werden zentrale Größen wie einzelne Elektronenorbitale, Elektronenladungsdichte und lokales Potenzial mithilfe von Basissätzen ebener Wellen dargestellt. Die Wechselwirkungen zwischen Elektronen und Ionen werden mithilfe von Normerhaltungs- oder ultraweichen Pseudopotentialen oder projektorgestützten Wellenmethoden beschrieben.

Zur Bestimmung des elektronischen Grundzustands nutzt VASP effiziente iterative Matrixdiagonalisierungstechniken wie die Methode der Residualminimierung mit direkter Inversion des iterierten Subraums (RMM-DIIS) oder den Block-Davidson-Algorithmus. Diese werden mit effizienten Broyden- und Pulay-Dichtemischschemata kombiniert, um die selbstkonsistente Schleife zu beschleunigen.

Tutorial-Inhalte

  1. Strukturoptimierung
  2. Selbstkonsistente Berechnungen (Zustandsdichte)
  3. Energiebandberechnung

Durch dieses Tutorial lernen Sie die Funktionen der vier grundlegenden Eingabedateien von vasp kennen: INCAR (vasp-Funktionssteuerungsdatei), POSCAR (Strukturdatei), POTCAR (Pseudopotentialdatei) und KPOINTS (reziproke Gitterpunkte) und lernen, wie Sie selbst Eingabedateien schreiben.

2. Eingabedatei

Lassen Sie mich zunächst die für dieses Tutorial erforderlichen Eingabedateien vorstellen.

1. Strukturoptimierung

INCAR

ISTART =  1            (读取初始波函数 WAVECAR 文件)
ISPIN  =  1            (本次计算为不考虑自旋的 DFT 计算)
# ICHARG =  11         (非自洽计算:用于计算能带本征值)
LREAL  = .FALSE.       (不在实空间投影计算)
LWAVE  = .TRUE.        (计算完毕输出并保存 WAVECAR)
LCHARG = .TRUE.        (计算完毕输出并保存 CHGCAR)
ADDGRID= .TRUE.        (增加格点密度加速收敛)
 

NSW    =  300          (最多运行 300 步离子步)
ISMEAR =  -5           (采用 Blöchl 修正的 tetrahedron 方法) 
IBRION =  2            (采用 2-CG 算法进行收敛)
ISIF   =  3            (优化期间原胞形状、体积和内部原子位置都将发生变化)
EDIFFG = -1.5E-02      (离子步收敛条件 eV/A)

POSCAR

Si #(体系名称)
1.0 #(放大系数  下面 3 行对应 3 个晶格矢量 )
0.0 2.75 2.75
2.75 0.0 2.75
2.75 2.75 0.0
Si #(元素)
2 #(对应元素原子数)
Direct #(采用分数坐标,下列为 2 个原子的分数坐标)
0 0 0
0.25 0.25 0.25

KPUNKTE

K-Spacing Value to Generate K-Mesh: 0.020 #采用 GAMMA 方法取样 
0
Gamma
  16  16  16
0.0  0.0  0.0

#取 16x16x16 个格点

POTCAR

Die Pseudopotentialkombination der entsprechenden Elemente des Systems, hier das Pseudopotential von Si

2. Selbstkonsistente Berechnung (Zustandsdichteberechnung)

INCAR

ISTART =  1            (读取初始波函数 WAVECAR 文件)
ISPIN  =  1            (本次计算为不考虑自旋的 DFT 计算)
# ICHARG =  11         (非自洽计算:用于计算能带本征值)
LREAL  = .FALSE.       (不在实空间投影计算)
LWAVE  = .TRUE.        (计算完毕输出并保存 WAVECAR)
LCHARG = .TRUE.        (计算完毕输出并保存 CHGCAR)
ADDGRID= .TRUE.        (增加格点密度加速收敛)
 

ISMEAR =  -5           (采用 Blöchl 修正的 tetrahedron 方法)
NELM   =  60           (SCF 自洽步数最多为 60 步)
EDIFF  =  1E-08        (SCF 能量收敛条件)

POSCAR

Verwenden Sie die CONTCAR-Ausgabe aus dem vorherigen Schritt „1. Strukturoptimierung“ und benennen Sie sie in POSCAR um

KPUNKTE

Wie "1. Strukturoptimierung"

POTCAR

Wie "1. Strukturoptimierung"

3. Energiebandberechnung

INCAR

ISTART =  1            (读取初始波函数 WAVECAR 文件)
ISPIN  =  1            (本次计算为不考虑自旋的 DFT 计算)
ICHARG =  11         (非自洽计算:用于计算能带本征值)
LREAL  = .FALSE.       (不在实空间投影计算)
LWAVE  = .TRUE.        (计算完毕输出并保存 WAVECAR)
LCHARG = .TRUE.        (计算完毕输出并保存 CHGCAR)
 

ISMEAR =  0            (能带计算需要使用高斯方法)
SIGMA  =  0.05         (高斯展宽)
NELM   =  60           (SCF 自洽步数最多为 60 步)
EDIFF  =  1E-08        (SCF 能量收敛条件)

POSCAR

Gleich wie "2. Selbstkonsistente Berechnung (Zustandsdichteberechnung)"

KPUNKTE

K-Path Generated by VASPKIT.
   20   #k 点之间的间隔
Line-Mode
Reciprocal
   0.0000000000   0.0000000000   0.0000000000     GAMMA          
   0.5000000000   0.0000000000   0.5000000000     X              
 
   0.5000000000   0.0000000000   0.5000000000     X              
   0.6250000000   0.2500000000   0.6250000000     U              
 
   0.3750000000   0.3750000000   0.7500000000     K              
   0.0000000000   0.0000000000   0.0000000000     GAMMA          
 
   0.0000000000   0.0000000000   0.0000000000     GAMMA          
   0.5000000000   0.5000000000   0.5000000000     L              
 
   0.5000000000   0.5000000000   0.5000000000     L              
   0.5000000000   0.2500000000   0.7500000000     W              
 
   0.5000000000   0.2500000000   0.7500000000     W              
   0.5000000000   0.0000000000   0.5000000000     X    

POTCAR

Wie "1. Strukturoptimierung"

3. Praktische Bedienungsschritte

Nun geht es an die praktische Umsetzung. Dieses Tutorial hat das erforderliche Open-Source-Paket (tutorials.zip) vorbereitet. Sie können den Container direkt klonen. Andere Pseudopotentialdateien müssen aus urheberrechtlichen Gründen gemäß dem Tutorial heruntergeladen und hochgeladen werden.

1. Klonen und starten Sie den Container

Nachdem der Container geladen wurde, klicken Sie auf „Arbeitsbereich öffnen“

2. Eingabedatei hochladen

2.1 Terminal öffnen

2.2 Entpacken Sie das Paket

unzip tutorials.zip

2.3 Geben Sie das Verzeichnis ein

cd tutorials

2.4 Laden Sie das vorbereitete Silizium-Pseudopotential hoch

Hier können Sie das Beispiel der „offiziellen Website“ verwenden:https://www.vasp.at/wiki/images/d/d1/5_4_Si_bandstructure.tgz Pseudopotentielles POTCAR

Setzen Sie das Pseudopotential in 1_str ein.

3. Führen Sie vasp aus

Festlegen von OpenMP-Parametern

export OMP_NUM_THREADS=1

3.1 Strukturoptimierung

Geben Sie 1_str ein

cd 1_str
mpirun -n 2 --allow-run-as-root vasp_std 

Kopieren Sie nach Abschluss des Vorgangs POTCAR, WAVECAR, CHGCAR und CHG nach 2_scf

Und kopieren Sie CONTCAR nach 2_scf und ändern Sie es in POSCAR

cp POTCAR WAVECAR CHG* ../2_scf
cp CONTCAR ../2_scf/POSCAR

Geben Sie das Verzeichnis ../2_scf ein

cd ../2_scf

3.2 Selbstkonsistente Berechnung (Berechnung der Zustandsdichte)

Geben Sie zum Ausführen den folgenden Code ein:

mpirun -n 2 --allow-run-as-root vasp_std 

Zu diesem Zeitpunkt liest vasp die in Schritt 3.1 kopierten WAVECAR und CHGCAR.

Kopieren Sie nach Abschluss des Vorgangs POSCAR, POTCAR, WAVECAR, CHGCAR und CHG nach 3_band

cp POSCAR POTCAR WAVECAR CHG*  ../3_band

Geben Sie das Verzeichnis ../3_band ein

cd ../3_band

3.3 Energiebandberechnung

Geben Sie zum Ausführen den folgenden Code ein:

mpirun -n 2 --allow-run-as-root vasp_std 

Zu diesem Zeitpunkt liest vasp die in Schritt 3.2 kopierten WAVECAR, CHGCAR und CHG und führt eine Eigenwertberechnung durch.

Zurück zum Hauptverzeichnis der Eingabedatei

cd ..

4. Installieren Sie vaspkit

4.1 Python-Abhängigkeiten installieren

pip install numpy scipy matplotlib

4.2 Vaspkit konfigurieren

chmod 777 setupvk.sh
./setupvk.sh
source ~/.bashrc 
cd tutorials

5. Verwenden Sie Vaspkit zur Datenverarbeitung

5.1 Darstellung der Zustandsdichte

Geben Sie 2_scf ein

cd 2_scf

Verwenden Sie Vaspkit, um Daten zu verarbeiten und zu plotten

vaspkit
111
1

Das Zustandsdichtediagramm wird in 2_scf generiert

TDOS

Zurück zum Inhaltsverzeichnis

cd ..

5.2 Energiebanddiagramme zeichnen

Geben Sie 3_band ein

cd 3_band

Verwenden Sie Vaspkit, um Daten zu verarbeiten und zu plotten

vaspkit
211
1

Sie können sehen, dass das Banddiagramm in 3_band generiert wird

BAND