二维材料的HSE+SOC的计算

2020-12-22  本文已影响0人  光头披风侠

这里主要讨论一下用vasp对二维材料的hse+soc对能带剪刀操作的过程。

1. 结构优化

我们对材料Ag2Br2进行结构优化,结构与优化的参数如下:


image.png
SYSTEM = stepOpt6
NPAR = 4
ALGO = Normal  # Fast;Normal
LREAL = .FALSE.
#LPLANE = .TRUE.
PREC = Accurate
#AMIN = 0.01
#ISYM = 0

##2_INIT_input
ISTART = 0
ICHARG  = 2

##3_ELECTRON
NELM = 200
NELMIN = 5
EDIFF = 1e-6
ISMEAR = 0
SIGMA = 0.05
#LMAXMIX = 4
ENCUT = 600
ISPIN =1 

##4_IONS
NSW = 200
IBRION = 2
POTIM = 0.5
ISIF = 3
EDIFFG = -0.001
ADDGRID = .TRUE.

##5_Kmesh
KSPACING = 0.189

##6_Output
LWAVE = .False.
LCHARG = .False.
LORBIT = 11

####optB86-vdw####
GGA = MK
PARAM1 = 0.1234
PARAM2 = 1.0000
LUSE_VDW = .True.
AGGAC = 0.0000

2.自洽(即输出波函数和电荷密度)

##1_system
SYSTEM = stepOpt6
NPAR = 4
ALGO = Normal  # Fast;Normal
LREAL = .FALSE.
#LPLANE = .TRUE.
PREC = Accurate
#AMIN = 0.01
#ISYM = 0

##2_INIT_input
ISTART = 0
ICHARG  = 2

##3_ELECTRON
NELM = 200
NELMIN = 5
EDIFF = 1e-6
ISMEAR = 0
SIGMA = 0.05
#LMAXMIX = 4
ENCUT = 600
#ISPIN =1 

##4_IONS
NSW = 0
IBRION = -1
POTIM = 0.5
ISIF = 2
EDIFFG = -0.001
ADDGRID = .TRUE.

##5_Kmesh
#KSPACING = 0.189

##6_Output
LWAVE = .True.
LCHARG = .True.
LORBIT = 11

####optB86-vdw####
GGA = MK
PARAM1 = 0.1234
PARAM2 = 1.0000
LUSE_VDW = .True.
AGGAC = 0.0000

#### Add Parameters ####
LVHAR = .True.

3. pbe的band计算

SYSTEM = stepOpt6
NPAR = 4
ALGO = Normal  # Fast;Normal
LREAL = .FALSE.
#LPLANE = .TRUE.
PREC = Accurate
#AMIN = 0.01
#ISYM = 0

##2_INIT_input
ISTART = 1
ICHARG = 11

##3_ELECTRON
NELM = 200
NELMIN = 5
EDIFF = 1e-6
ISMEAR = 0
SIGMA = 0.05
#LMAXMIX = 4
ENCUT = 600
ISPIN =1 

##4_IONS
NSW = 0
IBRION = -1
POTIM = 0.5
ISIF = 2
EDIFFG = -0.001
ADDGRID = .TRUE.

##5_Kmesh
#KSPACING = 0.189

##6_Output
LWAVE = .False.
LCHARG = .False.
LORBIT = 11

####optB86-vdw####
GGA = MK
PARAM1 = 0.1234
PARAM2 = 1.0000
LUSE_VDW = .True.
AGGAC = 0.0000

4. HSE+SOC(进入正题)

由于PBE存在低估带隙的问题,因而需要考虑仅HSE的计算,另外在批量计算的时候,我们可能要引入SOC来保证计算的严谨性。
但需要注意的是,即便对于我所计算的二维材料(仅有4个原子),当仍然面对该类计算相当耗费算力。不废话,直接说一些测试下来,必然对的点:

  1. k点会显著影响计算速度,大致呈现t_k = t_{k-1}^{{n_k}/{n_{k-1}}}的时间效率;
  2. 相同k点数下,读取用PBE得到的WAVECAR将节省~60-70%的计算时间(相较自己撒点);
  3. ENCUT对于计算速度也有较大影响需要进行测试
  4. 此类计算只需要读取WAVECAR(ISTART = 1)不需要读取(ICHARGE = 2)

首先需要做一步带SOC的自洽计算:

SYSTEM = stepOpt6
NPAR = 4
ALGO = Normal  # Fast;Normal
LREAL = .False.
LPLANE = .False.
PREC = Accurate
#AMIN = 0.01
#ISYM = -1

##2_INIT_input
ISTART = 0
ICHARG  = 12

##3_ELECTRON
NELM = 200
NELMIN = 5
EDIFF = 1e-6
ISMEAR = 0
SIGMA = 0.05
#LMAXMIX = 4
ENCUT = 325
#ISPIN =1 

##4_IONS
NSW = 0
IBRION = -1
POTIM = 0.5
ISIF = 2
EDIFFG = -0.001
ADDGRID = .TRUE.

##5_Kmesh
KSPACING = 0.4

##6_Output
LWAVE = .True.
LCHARG = .True.
LORBIT = 11

####optB86-vdw####
#GGA = MK
#PARAM1 = 0.1234
#PARAM2 = 1.0000
#LUSE_VDW = .True.
#AGGAC = 0.0000

#### Add Parameters ####
#LVHAR = .True.

#### mbj ####
#METAGGA = MBJ
#LASPH = .TRUE.
#LMIXTAU = .TRUE.

#### mix wave####
#IMIX = 1
#AMIX = 0.2
#BMIX = 0.0000001

#### HSE ####
#LHFCALC = .TRUE.
#HFSCREEN = 0.2

#### SOC ####
LSORBIT = .TRUE.
SAXIS = 0 0 1
MAGMOM = 1000*0
GGA_COMPAT = .FALSE.
#---for slabs---#
#AMIX = 0.2
#BMIX = 0.00001
#LSCALAPACK = .FALSE. 

随后做能带剪刀操作:

下面给出测试结果的比较:

测试材料:Ag2Br2 (4原子) ISTART = 1 ISTART = 1 ISTART = 0(自己撒点) ISTART = 0(自己撒点)
ENCUT 325 325 325 600
KSPACING 0.45 0.4 自己撒点(0.05*2\pi) 自己撒点(0.05*2\pi)
K点数(不算带边k点) 16 25 13 13
gap 2.8935 2.8913 2.9043 2.9096
用时 3835.938 10405.274 8078.797 49828.280

因而可以发现测试下来只需要用KSPACING = 0.45+SOC的自洽计算同时选取ENCUT = ENMAX*1.3就能保证计算。

另外,需要注意的是在ISTART = 1 的计算中都出现了以下的问题,一开始尝试解决,但发现后来最后能算出来。在不读WAVECAR(ISTART = 0)的计算中不会出现,可能与WAVEACR的读取有关。

image.png

5. 其他问题

对于收敛不了的情况,可以试试混合态密度的优化方式AMIX = 0.02 BMIX = 0.0000001
当打开LHFCALC = .TRUE.时候,默认ISYM = 3,所以如果再不行,比如遇到如下问题,可以尝试ALGO = Damped

WARNING: Sub-Space-Matrix is not hermitian in DAV           40   6.53599947936788
WARNING: DENMP: can't reach specified precision  Number of Electrons is NELECT =   22.0000000008318
1.25806886504639     Error EDDDAV: Call to ZHEGV failed. Returncode =  16 2  16
上一篇下一篇

猜你喜欢

热点阅读