HyperAI

VASP 杂化泛函计算硅的态密度和能带

Vienna Ab initio Simulation Package(简称 VASP)  是一个计算机程序,用于从第一性原理进行原子尺度材料建模,例如电子结构计算和量子力学分子动力学。

VASP 适用于计算多体薛定谔方程的近似解,它涵盖了多种计算方法,包括在密度泛函理论 (DFT) 框架内求解 Kohn-Sham 方程,以及在 Hartree-Fock (HF) 近似中处理 Roothaan 方程。 VASP 的另一项创新在于它实现了 Hartree-Fock 方法与密度泛函理论的融合,形成了一种混合泛函方法,这为研究者提供了更灵活的计算选项。此外,VASP 中还提供了格林函数方法(GW 准粒子和 ACFDT-RPA)和多体微扰理论(二阶 Møller-Plesset)。

在 VASP 中,中心物理量(如单电子轨道)、电子电荷密度和局部电位以平面波基集表示。电子和离子之间的相互作用使用范数守恒或超软赝势或投影仪增强波方法进行描述。

为了确定电子基态,VASP 利用了高效的迭代矩阵对角化技术,例如直接反转迭代子空间的残差最小化方法 (RMM-DIIS) 或分块戴维森算法。这些与高效的 Broyden 和 Pulay 密度混合方案相结合,以加快自洽循环。

教程简介

本次教程将学习杂化泛函计算硅能带,与上期教程(VASP 入门教程:计算硅的态密度和能带)不同,杂化泛函可以计算得到材料的具有正确带隙的能带和态密度,但需要更多的计算资源,因此本次使用 GPU 进行演示。

通过本教程学习,您将学习生成 VASP 杂化泛函计算所需的 INCAR 和 KPOITNS 。

上期教程(VASP 入门教程:计算硅的态密度和能带)包含 4 个步骤。而本次杂化泛函的计算只需要 1 步(结构优化将略过),即可得到硅的态密度和能带。

准备输入文件

该教程需要准备 INCAR 、 POSCAR 、 KPOINTS 和 POTCAR 这 4 个文件。

INCAR

Global Parameters
  ENCUT  =  300          (波函数截断能量) 
  PREC   =  Normal       (精度设置)  
  LWAVE  = .TRUE.        (保存波函数)
  LCHARG = .TRUE.        (保存电荷) 
  ADDGRID= .TRUE.        (增加格点加速收敛) 
  
 
Static Calculation
  ISMEAR =  0            (高斯占据数) 
  SIGMA  =  0.1          (高斯展宽)
  LORBIT =  11           (输出 DOSCAR 和 PROCAR)
  NELM   =  60           (最大电子步)
  EDIFF  =  1E-08        (电子步收敛判据)
 
HSE06 Calculation
  LHFCALC= T            (启动杂化泛函计算)
  AEXX   =  0.25        (杂化比例 0.25)
  HFSCREEN= 0.2         (杂化屏蔽参数 0.2)
  ALGO   =  ALL         (最优化算法)      
  TIME   =  0.4         (最优化算法步长)
  PRECFOCK= N           (FFT 精度) 

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

KPOINTS

0.060   5   5   5   10  0.060   83    6   19    6   20   16   13    9           # Parameters to Generate KPOINTS (Do NOT Edit This Line)
    93
Reciprocal lattice
    0.00000000000000    0.00000000000000    0.00000000000000     1
    0.20000000000000    0.00000000000000    0.00000000000000     8
    0.40000000000000    0.00000000000000    0.00000000000000     8
    0.20000000000000    0.20000000000000    0.00000000000000     6
    0.40000000000000    0.20000000000000    0.00000000000000    24
   -0.40000000000000    0.20000000000000    0.00000000000000    24
   -0.20000000000000    0.20000000000000    0.00000000000000    12
    0.40000000000000    0.40000000000000    0.00000000000000     6
   -0.40000000000000    0.40000000000000    0.00000000000000    12
   -0.40000000000000    0.40000000000000    0.20000000000000    24 (以上为 scf 点位)
    0.00000000000000    0.00000000000000    0.00000000000000     0 (以下为能带点位)
    0.02777777777778    0.00000000000000    0.02777777777778     0
    0.05555555555556    0.00000000000000    0.05555555555556     0
    0.08333333333333    0.00000000000000    0.08333333333333     0
    0.11111111111111    0.00000000000000    0.11111111111111     0
    0.13888888888889    0.00000000000000    0.13888888888889     0
    0.16666666666667    0.00000000000000    0.16666666666667     0
    0.19444444444444    0.00000000000000    0.19444444444444     0
    0.22222222222222    0.00000000000000    0.22222222222222     0
    0.25000000000000    0.00000000000000    0.25000000000000     0
    0.27777777777778    0.00000000000000    0.27777777777778     0
    0.30555555555556    0.00000000000000    0.30555555555556     0
    0.33333333333333    0.00000000000000    0.33333333333333     0
    0.36111111111111    0.00000000000000    0.36111111111111     0
    0.38888888888889    0.00000000000000    0.38888888888889     0
    0.41666666666667    0.00000000000000    0.41666666666667     0
    0.44444444444444    0.00000000000000    0.44444444444444     0
    0.47222222222222    0.00000000000000    0.47222222222222     0
    0.50000000000000    0.00000000000000    0.50000000000000     0
    0.50000000000000    0.00000000000000    0.50000000000000     0
    0.52500000000000    0.05000000000000    0.52500000000000     0
    0.55000000000000    0.10000000000000    0.55000000000000     0
    0.57500000000000    0.15000000000000    0.57500000000000     0
    0.60000000000000    0.20000000000000    0.60000000000000     0
    0.62500000000000    0.25000000000000    0.62500000000000     0
    0.37500000000000    0.37500000000000    0.75000000000000     0
    0.35526315789474    0.35526315789474    0.71052631578947     0
    0.33552631578947    0.33552631578947    0.67105263157895     0
    0.31578947368421    0.31578947368421    0.63157894736842     0
    0.29605263157895    0.29605263157895    0.59210526315789     0
    0.27631578947368    0.27631578947368    0.55263157894737     0
    0.25657894736842    0.25657894736842    0.51315789473684     0
    0.23684210526316    0.23684210526316    0.47368421052632     0
    0.21710526315789    0.21710526315789    0.43421052631579     0
    0.19736842105263    0.19736842105263    0.39473684210526     0
    0.17763157894737    0.17763157894737    0.35526315789474     0
    0.15789473684211    0.15789473684211    0.31578947368421     0
    0.13815789473684    0.13815789473684    0.27631578947368     0
    0.11842105263158    0.11842105263158    0.23684210526316     0
    0.09868421052632    0.09868421052632    0.19736842105263     0
    0.07894736842105    0.07894736842105    0.15789473684211     0
    0.05921052631579    0.05921052631579    0.11842105263158     0
    0.03947368421053    0.03947368421053    0.07894736842105     0
    0.01973684210526    0.01973684210526    0.03947368421053     0
    0.00000000000000    0.00000000000000    0.00000000000000     0
    0.00000000000000    0.00000000000000    0.00000000000000     0
    0.03333333333333    0.03333333333333    0.03333333333333     0
    0.06666666666667    0.06666666666667    0.06666666666667     0
    0.10000000000000    0.10000000000000    0.10000000000000     0
    0.13333333333333    0.13333333333333    0.13333333333333     0
    0.16666666666667    0.16666666666667    0.16666666666667     0
    0.20000000000000    0.20000000000000    0.20000000000000     0
    0.23333333333333    0.23333333333333    0.23333333333333     0
    0.26666666666667    0.26666666666667    0.26666666666667     0
    0.30000000000000    0.30000000000000    0.30000000000000     0
    0.33333333333333    0.33333333333333    0.33333333333333     0
    0.36666666666667    0.36666666666667    0.36666666666667     0
    0.40000000000000    0.40000000000000    0.40000000000000     0
    0.43333333333333    0.43333333333333    0.43333333333333     0
    0.46666666666667    0.46666666666667    0.46666666666667     0
    0.50000000000000    0.50000000000000    0.50000000000000     0
    0.50000000000000    0.50000000000000    0.50000000000000     0
    0.50000000000000    0.47916666666667    0.52083333333333     0
    0.50000000000000    0.45833333333333    0.54166666666667     0
    0.50000000000000    0.43750000000000    0.56250000000000     0
    0.50000000000000    0.41666666666667    0.58333333333333     0
    0.50000000000000    0.39583333333333    0.60416666666667     0
    0.50000000000000    0.37500000000000    0.62500000000000     0
    0.50000000000000    0.35416666666667    0.64583333333333     0
    0.50000000000000    0.33333333333333    0.66666666666667     0
    0.50000000000000    0.31250000000000    0.68750000000000     0
    0.50000000000000    0.29166666666667    0.70833333333333     0
    0.50000000000000    0.27083333333333    0.72916666666667     0
    0.50000000000000    0.25000000000000    0.75000000000000     0
    0.50000000000000    0.25000000000000    0.75000000000000     0
    0.50000000000000    0.21875000000000    0.71875000000000     0
    0.50000000000000    0.18750000000000    0.68750000000000     0
    0.50000000000000    0.15625000000000    0.65625000000000     0
    0.50000000000000    0.12500000000000    0.62500000000000     0
    0.50000000000000    0.09375000000000    0.59375000000000     0
    0.50000000000000    0.06250000000000    0.56250000000000     0
    0.50000000000000    0.03125000000000    0.53125000000000     0
    0.50000000000000    0.00000000000000    0.50000000000000     0

POTCAR

系统对应元素的赝势组合,这里为 Si 的赝势。

运行步骤

下面进入教程实操部分,该教程已将所需包准备好,直接克隆容器即可。 本教程使用 RTX 4090 算力资源, vasp 6.3.0-cuda11.8 版本镜像,在工作空间内操作。

1. 克隆并启动容器

1.1 等待容器加载完毕后点击打开工作空间

1.2 打开终端

1.3 进入 wfl 目录

cd tutorials/wfl

1.4 上传准备好的硅赝势上传到 wfl 目录中

此处可以使用官网示例文件里的赝势 POTCAR

2. 运行 VASP

mpirun -n 1 vasp_std

3. 安装 vaspkit

回到上一级目录

cd ..

3.1 安装 python 依赖

pip install numpy scipy matplotlib

3.2 配置 vaspkit

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

4. 使用 vaspkit 处理数据

4.1 绘制态密度和能带图

输入以下命令进入 wfl 目录:

cd wfl

输入命令使用生成态密度数据:

vaspkit
111
1

输入命令使用 vaspkit 处理能带数据并绘图:

vaspkit
252
2

即可生成态密度和能带图:

下面使用 vaspkit 查看带隙:

vaspkit
911

可以得到本次估计硅带隙为 1.2eV,与典型的硅带隙实验值 1.12eV 相近。

而上期教程中经过 DFT 计算使用 vaspkit 查看可得到 0.6133eV 的带隙,与实验值相去甚远。

所以杂化泛函可以更准确计算材料的带隙,但是需要更多计算资源。