vasp计算笔记
偶极校正
功函数定义为
$E_F=E_{vac}-E_{fermi}$
因 VASP 所适用的体系是周期性体系,使用它来模拟实验中的 Slab 模型时会取一个相当大的真空层来隔绝相邻两个周期中 Slab 的相互作用。理想情况下,真空层中的功函数应当是一条水平的直线(函数值为定值)。但如果表面的两侧并非对称,即其中一侧吸附了分子时, 这两侧的功函数存在差异,此时如果不进行偶极校正,真空中的功函数会是一条斜线;而经过偶极校正后,功函数会出现一个阶梯,阶梯两侧附近的曲接近水平
Because of the system applicable to
VASP
is a periodic system, a relatively large vacuum layer is used to isolate the interaction between the slabs in two periods when simulation s Slab model in experiments.
VASP 中直接使用 LDIPOL
和 IDPOL
即可开启它的偶极校正功能
LDIPOL = .TRUE.
表示打开偶极校正IDIPOL = 3
表示偶极校正方向为第三晶格矢DIPOL = <3 float values>
表示体系的中心,以分数坐标表示
一般来说 DIPOL 不用填,VASP 手册 中有:
If the flag is not set, VASP determines, where the charge density averaged over one plane drops to a minimum and calculates the center of the charge distribution by adding half of the lattice vector perpendicular to the plane where the charge density has a minimum (this is a rather reliable approach for orthorhombic cells).
若体系难以收敛可手动计算原子坐标平均值并设置DIPOL = 0.5 0.5 <z averaged z>
,若修正效果不到预期可以:
- 打开偶极校正并设置上述
DIPOL = 0.5 0.5 <z averaged>
进行弛豫计算 - 关闭
DIPOL
,再次进行弛豫计算 - 关闭
DIPOL
,打开LVHAR = .TRUE.
进去静态计算得到功函数
若出现功函数台阶即为计算成功
如果计算失败请检查POSCAR
中晶格基矢对应分量是否为0。如计算第三个方向偶极修正请保证前两个基矢的z
分量为零且第三个基矢只有z
分量不为零。
静电势计算
VASP 中可使用 LVHAR参数进行功函数计算控制,输出文件中LOCPOT
就是我们想要的静电势贡献,格式和CHGCAR一样,需计算Z方向的平均贡献
真空能级在打开LVHAR
时可能去读取OUTCAR
直接得到
1 | grep vacuum OUTCAR |
注意OUTCAR
中的真空能级需进行费米能级修正,即减去OUTCAR
中的E-fremi
杂化泛函理论计算
杂化泛函通过将不同的泛函通过一定系数相加得到更接近于实际值的估测
杂化泛函能够更好的描述电子自相互作用比较严重的体系,并且可以通过改变线性组合系数来调节HF交换泛函与DFT交换泛函的比例,使得计算结果更为精确,更加的接近实验的真实结果
杂化泛函在VASP
中的的种类有HSE06
、PBE0
、B3LYP
,等不同类型,通过参数调整实现不同类型的杂化泛函计算
HSE06泛函交换关联公式为
$$E_{XC}^{HES} = a E_x^{HF,SR}(\omega) + (1-a) E_x^{\omega PBE,SR}(\omega) + E_x^{\omega PBE,LR}(\mu) + E_c^{PBE}$$
其中
$E_x^{HF,SR}$为 HF 交换项
$E_x^{\omega PBE, SR}$为 HF 交换项
$E_x^{\omega PBE, LR}$为 PBE 的短程和长程交换项,
$E_x^{\omega PBE, SR}$$E_x^{HF,SR} $的系数和为1
$E_c^{PBE}$为 PBE 的库伦相关项
HSE06泛函: $a=0.25, \omega=0.2$
HSE03泛函: $a=0.25, \omega=0.3$
HSE0泛函: $a=0.25, \omega \to 0$
PBE泛函: $a=0, \omega \to \infty$
VASP
中通过LHFCALC参数控制是否使用杂化泛函计算,参数HFSCREEN控制泛函种类,一般通过使用Damped算法加快计算
VASP相关参数细节
HSE06
1 | LHFCALC = .TRUE. |
with the default values AEXX=0.25, AGGAX=1-AEXX=0.75, AGGAC=1.0 and ALDAC=1.0, and using the PBE POTCAR files
HSE03
1 | LHFCALC = .TRUE. |
with the default values AEXX=0.25, AGGAX=1-AEXX=0.75, AGGAC=1.0 and ALDAC=1.0, and using the PBE POTCAR files.
HSEsol
1 | LHFCALC = .TRUE. |
with the default values AEXX=0.25, AGGAX=1-AEXX=0.75, AGGAC=1.0 and ALDAC=1.0, and using the PBE POTCAR files.
PBEh(PBE0)
1 | LHFCALC = .TRUE. |
with the default values AEXX=0.25, AGGAX=1-AEXX=0.75, AGGAC=1.0 and ALDAC=1.0, and using the PBE POTCAR files.
B3LYP with VWN3(or VWN5) for LDA correlation
1 | LHFCALC = .TRUE. |
and using the PBE POTCAR files.
B3-WC(using Libxc, see the tag LIBSC1)
1 | LHFCALC = .TRUE. |
and using the PBE POTCAR files.
Hartree-Fock
1 | LHFCALC = .TRUE. |
with the default values AGGAX=1-AEXX=0.0, and using the PBE POTCAR files.
计算步骤
graph TD; 结构优化 --> gamma-scf单点自洽; gamma-scf单点自洽 --> pbe-band计算生成权重k点; pbe-band计算生成权重k点 --> hse-scf杂化泛函自洽; hse-scf杂化泛函自洽 --> HSE-band计算;
gamma-scf单点自洽KPOINTS样例(二维结构)
1 | Auto generation |
将pbe计算的能带OUTCAR得到k点的权重改成0接到自洽计算的IBZKPT
后边,再将IBZKPT
第二行的数改为总行数作为HSE-band计算的KPOINTS
用pbe自洽计算使用的KPOINTS文件和pbe自洽产生的CHG CHGCAR WAVECAR进行HSE自洽计算
将HSE自洽产生的CHG CHGAR WAVECAR和通修改IBZKPT得到的KPOINTS作为输入文件进行HSE-band计算
vdW修正
多数传统的交换相关泛函,诸如B3LYP,由于相关势的长程行为不对,完全不能描述色散作用。因此用于研究色散作用主导的问题结果差得一塌糊涂,比如物理吸附、长链烷烃之类的大分子构象、弱极性分子团簇等等。解决密度泛函对色散作用描述能力很差的最有效的方法就是引入经验的色散校正项
参数选择取决于具体计算体系
VASP中通过IVDW参数控制vdw修正算法
参数 | 描述 | 可用版本 |
---|---|---|
IVDW=0 | no dispersion correction | (default) |
IVDW=1 | 10 | DFT-D2 method of Grimme |
IVDW=11 | DFT-D3 method of Grimme with zero-damping function | (available as of VASP.5.3.4) |
IVDW=12 | DFT-D3 method with Becke-Johnson damping function | (available as of VASP.5.3.4) |
IVDW=13 | DFT-D4 method | (available as of VASP.6.2 as external package) |
IVDW=2 | 20 | Tkatchenko-Scheffler method |
IVDW=21 | Tkatchenko-Scheffler method with iterative Hirshfeld partitioning | (available as of VASP.5.3.5) |
IVDW=202 | Many-body dispersion energy method (MBD@rSC) | (available as of VASP.5.4.1) |
IVDW=263 | Many-body dispersion energy with fractionally ionic model for polarizability method (MBD@rSC/FI) | (available as of VASP.6.1.0) |
IVDW=4 | dDsC dispersion correction method | (available as of VASP.5.4.1) |
计算SOC修正 自旋轨道耦合修正
在计算不对称极化体系或外加电场体系时由于电场与体系中运动磁矩(可以认为是电子自旋磁矩)的耦合产生新的相互作用从而引入自旋轨道耦合效应修正
VASP中通过参数LSORBIT打开SOC修正,通过SAXIS参数设置自旋方向,磁性计算中通过参数MAGMOM设置初始磁矩,如POSCAR中含有原子Ni C H O各有56 17 20 6个,可设置MAGMOM = 56*1 17*0 20*0 6*0
两种设置方法
1 | LSORBIT = .TRUE. |
1 | LSORBIT = .TRUE. |
一般第二种更精确
这样设置通常会有对称性报错,可设置ISYM = 0
使用vasp_ncl
程序计算,记得在作业脚本中修改
HSE06+SOC计算步骤
A example in vaspkit
- DFT+SOC band structure calculation
Step-I: DFT SCF calculation with SOC (INCAR):
1 | System=XXX |
Step-II: DFT band calculation with SOC (INCAR):
1 | System=XXX |
- HSE06+SOC band structure calculation
Step-I: HSE06 SCF calculation with SOC (INCAR):
1 | System=XXX |
Step-II: HSE06 NSCF calculation with SOC:
1 | System=XXX |