HyperAI超神経

VASP 入門: シリコンの状態密度と帯域幅の計算

1. チュートリアルの概要

* ビデオチュートリアル:[VASP 入門チュートリアル] シリコンの状態密度とエネルギーバンドの計算

VASP の紹介

VASP (ウィーン第一原理シミュレーション パッケージ)  これは、電子構造計算や量子力学的分子動力学など、第一原理から原子スケールの材料モデリングを行うコンピュータ プログラムです。

VASP は、密度汎関数理論 (DFT) で Kohn-Sham 方程式を解くか、Hartree-Fock (HF) 近似で Roothaan 方程式を解くことで、多体シュレーディンガー方程式の近似解を計算できます。 Hartree-Fock 法と密度汎関数理論を組み合わせたハイブリッド関数も実装されています。さらに、グリーン関数法 (GW 準粒子および ACFDT-RPA) と多体摂動論 (2 次 Møller-Plesset) も VASP で利用できます。

VASP では、単一電子軌道、電子電荷密度、局所ポテンシャルなどの中心量は、平面波基底セットを使用して表されます。電子とイオン間の相互作用は、ノルム保存則、超ソフト擬ポテンシャル、またはプロジェクター増強波動法を使用して記述されます。

VASP は、電子の基底状態を決定するために、直接反転反復サブスペースを使用した残差最小化法 (RMM-DIIS) やブロック Davidson アルゴリズムなどの効率的な反復行列対角化手法を利用します。これらは、効率的な Broyden および Pulay 密度混合スキームと組み合わされ、自己無撞着ループを加速します。

チュートリアルコンテンツ

  1. 構造最適化
  2. 自己無撞着計算(状態密度)
  3. エネルギーバンド計算

このチュートリアルでは、vasp の 4 つの基本入力ファイル (INCAR (vasp 関数制御ファイル)、POSCAR (構造ファイル)、POTCAR (擬似ポテンシャル ファイル)、KPOINTS (逆格子点)) の機能を理解し、自分で入力ファイルを作成する方法を学習します。

2. 入力ファイル

まず、このチュートリアルに必要な入力ファイルを紹介します。

1. 構造最適化

インカール

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)

ポスカー

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

Kポイント

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

#取 16x16x16 个格点

ポトカー

システム内の対応する元素の擬ポテンシャルの組み合わせ。ここではSiの擬ポテンシャルである。

2. 自己無撞着計算(状態密度計算)

インカール

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 能量收敛条件)

ポスカー

前のステップ「1. 構造最適化」からのCONTCAR出力を使用し、名前をPOSCARに変更します。

Kポイント

「1. 構造最適化」と同じ

ポトカー

「1. 構造最適化」と同じ

3. エネルギーバンド計算

インカール

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 能量收敛条件)

ポスカー

「2. 自己無撞着計算(状態密度計算)」と同じ

Kポイント

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    

ポトカー

「1. 構造最適化」と同じ

3. 実際の操作手順

それでは実際の操作を始めましょう。このチュートリアルでは、必要なオープンソース パッケージ (tutorials.zip) を準備しました。コンテナを直接クローンできます。その他の擬似ポテンシャル ファイルは、著作権上の理由により、チュートリアルに従ってダウンロードおよびアップロードする必要があります。

1. コンテナのクローンを作成して起動します

コンテナがロードされたら、「ワークスペースを開く」をクリックします。

2. 入力ファイルをアップロードする

2.1 ターミナルを開く

2.2 パッケージを解凍する

unzip tutorials.zip

2.3 ディレクトリに入る

cd tutorials

2.4 準備したシリコン擬ポテンシャルをアップロードする

ここでは、「公式ウェブサイトの例」を使用できます。https://www.vasp.at/wiki/images/d/d1/5_4_Si_bandstructure.tgz 擬ポテンシャル POTCAR

擬似ポテンシャルを1_strに入れます。

3. Vaspを実行する

OpenMPパラメータの設定

export OMP_NUM_THREADS=1

3.1 構造最適化

1_strを入力

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

操作が完了したら、POTCAR、WAVECAR、CHGCAR、CHGを2_scfにコピーします。

CONTCARを2_scfにコピーし、POSCARに変更します。

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

../2_scfディレクトリに入る

cd ../2_scf

3.2 自己無撞着計算(状態密度計算)

実行するには次のコードを入力します。

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

このとき、vasp は手順 3.1 でコピーした WAVECAR と CHGCAR を読み取ります。

操作が完了したら、POSCAR、POTCAR、WAVECAR、CHGCAR、CHGを3_bandにコピーします。

cp POSCAR POTCAR WAVECAR CHG*  ../3_band

../3_bandディレクトリに入る

cd ../3_band

3.3 エネルギーバンド計算

実行するには次のコードを入力します。

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

このとき、vaspは手順3.2でコピーしたWAVECAR、CHGCAR、CHGを読み取り、固有値計算を実行します。

入力ファイルのメインディレクトリに戻る

cd ..

4. vaspkitをインストールする

4.1 Pythonの依存関係をインストールする

pip install numpy scipy matplotlib

4.2 vaspkit の設定

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

5. vaspkit を使用したデータの処理

5.1 状態密度のプロット

2_scfを入力

cd 2_scf

vaspkitを使用してデータを処理し、プロットする

vaspkit
111
1

状態密度図は2_scfで生成される。

TDOS

目次に戻る

cd ..

5.2 エネルギーバンド図の描画

3_バンドを入力

cd 3_band

vaspkitを使用してデータを処理し、プロットする

vaspkit
211
1

3_bandにバンド図が生成されることがわかります。

バンド