xiaoqiugood的个人博客分享 http://blog.sciencenet.cn/u/xiaoqiugood

博文

VASP系列之GW计算

已有 32694 次阅读 2013-10-15 07:22 |个人分类:电子结构计算|系统分类:科研笔记

关注:

1) GW方法的物理含义;

2) VASP 计算过程及参数设置;

4) 手册是最好的老师,很多问题手册上都有答案:

http://cms.mpi.univie.ac.at/vasp/vasp/Contents.html


1、To obtain band structure plots from the GW method, first you have to perform a DFT calculation. 

The INCAR file I used for DFT on Si looks like this:

ISTART = 0

ISYM = 0

ICHARG = 2

ISMEAR = 0

SIGMA = 0.1

LORBIT = 11

NSW = 200

IBRION = 2

ISIF = 3

EDIFF = 0.0001

EDIFFG = -0.01


KPOINTS file for the run is:

Monkhorst Pack

0

 Gamma

 4 4 4

 0 0 0  

 

 

 

 POSCAR file is:

  Si     5.38936000000000  

    0.5000000000000000 0.5000000000000000  0.0000000000000000

    0.0000000000000000 0.5000000000000000  0.5000000000000000

    0.5000000000000000 0.0000000000000000 0.5000000000000000

    2

    Direct  

    0.0000000000000000 0.0000000000000000 0.0000000000000000

     0.2500000000000000 0.2500000000000000 0.2500000000000000

     

POTCAR file is supplied with VASP 5.2, remember to use paw pseudopotentials so that in the band structure calculation the Wigner-Seitz radius for Si need not be directly specified in INCAR.



2.After this run completes you are ready to perform the HF-type (HSE06) calculation. Change

the INCAR file to:

ISTART=1

ICHARG=2

EDIFF=0.0001

EDIFFG=-0.01

ENCUT=400

ENAUG=800

LREAL=.FALSE.

LWAVE=.TURE.

NELM=200

NSE=0

IBRION=-1

LMAXMIX=4

ISMEAR=0

SIGMA=0.1

NSIM=4

IALGO=48

SIYM=0

LHFCALC=.TRUE.

HFSCREEN=0.2

ALGO=Damped

TIME=0.4

ENCUTFOCK=0NKRED=2

AEXX=0.25


keep the other files constant for this run (e.g. KPOINTS, POSCAR, POTCAR need not be changed)



3. once this run has completed, add to the bottom of the INCAR file from the HSE06 calculation:


LOPTICS=.TRUE.


This step calculats the dielectric matrix


4. Once this run has completed ,change


ALGO=Damped


to


ALGO=GWo


and

ICHARG=2


to ICHARG=11


and add:

NOMEGA=50

ENCUTGW=100

LORBIT=11


and change the KPOINTS file to:

k-points along high symmetry lines

20  !20 intersections

Line-mode

rec

0 0 0  !gamma

0.5 0.0 0.0 !X

.....




These values are the points of high symmetry along the lines of high symmetry within the first Brillouin Zone of the Si unit

cell structures in reciprocal space. And that's it !

  Once complete you can plot the PROCAR, EIGENVAL, and DOSCAR files from the output of this run as described in the previous posts.

  The band structure plot produce from the plotting utility is shown below.


附手册解读 :Frequency dependent GW calculations

http://cms.mpi.univie.ac.at/vasp/vasp/Frequency_dependent_GW_calculations.html

 

Frequency dependent GW calculations

Available as of VASP.5.X. For details on the implementation and use of the GW routines we recommend the following references: Ref. [111,112,113,114].


Subsections

112M. Shishkin and G. Kresse, ``Self-consistent $ GW$ calculations for semiconductors and insulators'', Phys. Rev. B 75, 235102 (2007).



113F. Fuchs, J. Furthmüller, F. Bechstedt, M. Shishkin, and G. Kresse, ``Quasiparticle band structure based on a generalized Kohn-Sham scheme'', Phys. Rev. B 76, 115109-1-8 (2007).



114M. Shishkin, M. Marsman, and G. Kresse, ``Accurate quasiparticle spectra from self-consistent GW with vertex corrections'', Phys. Rev. Lett. 99, 246403 (2007).



115F. Bruneval, N. Vast, and L. Reining, Phys. Rev. B 74, 45102 (2006).



(1)Recipe for selfconsistent GW calculations

Selfconsistent GW calculations are only supported in a QP picture. As for GW0, it is possible to update the eigenvalues only (ALGO=GW), or the eigenvalues and one-electron orbitals (ALGO=scGW). In all cases, a quasiparticle picture is maintained, i.e. satellite peaks (shake ups and shake downs) can not be accounted for in the selfconsistency cycle. Selfconsistent GW calculations can be performed by simply repeatedly calling VASP using:

System  = Si NBANDS = 96 ISMEAR = 0 ; SIGMA = 0.05 ALGO = GW      # eigenvalues only  or alternatively ALGO = scGW    # eigenvalues and one electron orbitalsFor scGW0 or scGW non diagonal terms in the Hamiltonian are accounted for, e.g. the linearized QP equation is diagonalized, and the one electron orbitals are updated.[114]

Alternatively (and preferably), the user can specify an electronic iteration counter using NELM:

System  = Si NBANDS = 96 ISMEAR = 0 ; SIGMA = 0.05 ALGO = GW  # or  ALGO = scGW NELM = 3In this case, the one electron energies (=QP energies) are updated 3 times (starting from the DFT eigenvalues) in both G and W. For ALGO = scGW (or ALGO = QPGW in VASP.5.2.13), the one electron energies and one electron orbitals are updated 3 times.[114] As for ALGO = scGW0, the ``static'' COHSEX approximation can be selected by setting NOMEGA = 1 [115]. To improve convergence to the groundstate, the charge density is mixed using a Kerker type mixing starting with VASP.5.2.13 (see Sec. 6.49). The mixing parameters AMIX, BMIX, AMIX_MAG, BMIX_MAG, AMIN can be adjusted, if convergence problems are encountered.

Alternatively the mixing may be switched off by setting IMIX=0 and controlling the step width for the orbitals using the parameter TIME (which defaults to 0.4). This selects a fairly sophisticated damped MD algorithm, that is also used for DFT methods when ALGO is set the ``Damped''. In general, this method is more reliable for metals and materials with strong charge sloshing.



附--网言摘录


 

Recipe for G0W0 calculations

GW calculations always require the calculation of a standard DFT WAVECAR file in an initial step,

using for instance the following INCAR file:

System = Si

NBANDS = 96

ISMEAR = 0 ; SIGMA = 0.05 ! small sigma is required to avoid partial occupancies

LOPTICS = .TRUE. 

  Note, that the a significant number of empty bands is required for GW calculations, so that it might be better to perform the calculations in two steps: first a standard grounstate calculation with few unoccupied orbitals only,

 

System = Si  groundstate occupied orbitals

ISMEAR = 0 ; SIGMA = 0.05

! small sigma is required to avoid partial occupancies EDIFF = 1E-8 ! required tight tolerance for groundstate orbitalsand second a calculation of a large number of unoccupied orbitals

 

System = Si unoccupied orbitals

ALGO = Exact ! use exact diagonalization of the Hamiltonian

NELM = 1 ! since we are already converged stop after one step

NBANDS = 96

ISMEAR = 0 ; SIGMA = 0.05   ! small sigma is required to avoid partial occupancies

LOPTICS = .TRUE.Furthermore note that the flag

 LOPTICS=.TRUE. is required in order to write the file WAVEDER, which contains the derivative of the orbitals with respect to the k-points

more precissely the matrix [compare (6.76)] 

 


Calculation of this matrix requires the knowledge of the Hamiltonian, and therefore needs to be done in the preparatory DFT or hybrid functional run. The actual GW calculations are performed in a second step using an INCAR file such as (it is convenient to add a single line):System = Si NBANDS = 96 ISMEAR = 0 ; SIGMA = 0.05 LOPTICS = .TRUE. ALGO = GW0 ; NOMEGA = 50The head and wings of the dielectric matrix are constructed using k.p perturbation theory (this requires the file WAVEDER). In the present release the interaction between the core and the valence electrons is always treated on the Hartree Fock level [104].

For hybrid functionals, the three step procedure will accordingly involve the following INCAR files. In the first two steps, converged HSE03 orbitals are determined (usually HSE03 calculations should be preceeded by standard DFT calculations, we have not documented this step here, see Sec. 6.69.11):

System = Si groundstate occupied orbitals ISMEAR = 0 ; SIGMA = 0.05 ALGO = Damped ; TIME = 0.5 ! or ALGO = Conjugate LHFCALC = .TRUE. ; AEXX = 0.25 ; HFSCREEN = 0.3 EDIFF = 1E-6 ! required tight tolerance for groundstate orbitalsSecond determine the HSE03 orbitals for unoccupied states:System = Si unoccupied orbitals NBANDS = 96 ALGO = Exact ! perform exact diagonalization NELM = 1 ! since we are already converged stop after one step ISMEAR = 0 ; SIGMA = 0.05 LHFCALC = .TRUE. ; AEXX = 0.25 ; HFSCREEN = 0.3 LOPTICS = .TRUE.As before, in the GW step, the head and the wings of the response matrix are determined by reading the required data from the WAVEDER file.System = Si NBANDS = 96 ISMEAR = 0 ; SIGMA = 0.05 ALGO = GW0 ; NOMEGA = 50Convergence with respect to the number of empty bands NBANDS and with respect to the number of frequencies NOMEGA must be checked carfully.




附. 参数说明







ENCUTFOCK: FFT grid in the HF related routines

ENCUTFOCK = real number (energy cutoff determining the FFT grids in the HF related routines)

default: none

The ENCUTFOCK parameter controls the FFT grid for the HF routines. The only sensible value for ENCUTFOCK is

ENCUTFOCK=0. This implies that the smallest possible FFT grid, which just encloses the cutoff sphere corresponding to the

plane wave cutoff, is used. This accelerates the calculations by roughly a factor two to three, but causes slight changes in the

total energies and a small noise in the calculated forces. The FFT grid used internally in the Hartree Fock routines is written

to the OUTCAR file. Simply search for lines starting with

FFT grid for exact exchange (Hartree Fock)

In many cases, a sensible approach is to determine the electronic and ionic groundstate using ENCUTFOCK = 0, and to

make one final total energy calculation without the flag ENCUTFOCK.

 

网络摘录:

http://emuch.net/html/201312/6800622.html

 

本人对GW计算不熟悉。最近使用VASP中GW准粒子方法计算了几个体系的能隙,并且和实验值以及LDA计算的结果进行了对比。结果如下,LDA如意料严重低估了能隙,但是GW非常奇怪高估了能隙。对于GW0的结果,Si高估了60%之多,ZnSe高估了20%。
我重新检查了优化和静态计算中的参数设置,包括ENCUT,K点密度,收敛标准等,没有发现非常明显的错误。希望在GW计算方便有经验的虫友可以交流指教,有内容回帖送金币。:)
        Si(FCC)        Si(FCC)        ZnSe(ZB)        ZnSe(WZ)
        GGA-PBE        GGA-PBEsol        GGA-PBEsol        GGA-PBEsol
Atoms        2        2        6        4
KPOINTS        6*6*6        6*6*6        10*10*4        10*10*5
BandGap GGA        0.751 eV        0.592 eV        1.234 eV        1.286 eV
BandGap G0W0        1.760 eV        1.701 eV        2.966 eV        3.011 eV
BandGap GW0        1.902 eV        1.848 eV        3.206 eV        3.247 eV
BandGap Exp.        1.17 eV        1.17 eV        2.67 eV        2.67 eV
Si GW0计算时使用的INCAR如下。ZnSe的INCAR类似,相应增加NBANDS和NOMEGA到了80。
 SYSTEM = Si
!Startparameter for this run:
  PREC = Accurate  Accurate/Normal
  ISTART =     1
  ICHARG =     2  
  ISPIN =      0  
  ENCUT = 300  
  ISYM = 2  
  GGA = PE or PS        ! PBE or PBEsol
  NBANDS = 60
!BandStructure
!  LORBIT = 11
!  LWANNIER90=.TRUE.
!GW0
  LOPTICS = .TRUE.
  NEDOS = 2000
  LPEAD = .TRUE.
  LSPECTRAL = .TRUE.
  NELM = 4
  NOMEGA = 60
!Electronic Relaxation
  ALGO = GW0
  EDIFF =  1E-05    stopping-criterion for ELM
!  LREAL = AUTO      real-space projection
!Ionic relaxation
  EDIFFG =  -1E-03  stopping-criterion for IOM
!  NSW    =  200     number of steps for IOM
  IBRION =  2       ionic relax: 0-MD 1-quasi-New 2-CG
!  ISIF   =  3       stress and relaxation
  POTIM  =  0.1     time-step for ionic-motion
  ADDGRID= .TRUE.   reduce the noise in the forces
!DOS related values:
  ISMEAR =  0      gaussian smear 0 tetrahedron method -5
  SIGMA = 0.05

 

一般来说:
对于主族元素,G0W0可以给出比较精确的结果。如果和实验值有差异,一般由收敛性导致(空带数,K网格,频率采样密度等)。据个人经验,未收敛的值一般比收敛值大。
对于含d/f电子的过渡金属化合物,收敛后的G0W0结果小于实验带隙,更新本征值的ev-scGW0和ev-scGW给出的值好点,但仍有可能小于实验带隙,只有自洽度更高的GW才能给出接近实验值的结果。这个方面突出的例子是氧化锌。
楼主算的带隙都大于实验值,很有可能是结果未收敛。GW相对于DFT,有额外的几个极为重要的收敛参数:
1.NBAND. 楼主只用了60 - 4 = 56个空带,这离收敛相对较远,建议设置NBAND=240;
2.ENCUT.楼主设置了300,这个值即使算DFT都过小;建议400+
3.K网格.建议增大到8*8*8
另外,vasp算GW时有几个颇为古怪的规定:
1.NBAND必须为cpu整数倍,不然它就自动随机产生波函数补成整数倍,结果自然就出错了;
2.NOMEGA也必须为cpu整数倍;
楼主最好检查下这两个参数是不是能被cpu数整除。
对于Si,G0W0已经足够了,因此设置NELM=1。

 NOMEGA, NOMEGAR number of frequency points

NOMEGA= [integer] (number of frequency points)

NOMEGAR= [integer] (number of frequency points along real axis)

Default:  
NOMEGA=50for $ GW$ calculations

 

 

 

 

 

 

 

谢谢你的回帖。我依照你的建议再做一次Si的测试。
我在计算过程中注意了CPU的要求,NBAND和NOMEGA和CPU核心数目是一样的。Si的赝势,Si_GW,ENMAX只有245.345 eV,我使用的300 eV应该已经足够了,不过我会调大再看看结果。
现在看来,您提到的空带数,K网格,频率采样密度是最可能的问题原因。可惜,这三个参数都和计算量有直接的关系。现在的参数设置下,GW的计算已经非常慢了,实际考察的复杂结构所需的时间估计也会很长。我看了Abinit GW计算部分的介绍,使用E ective Energy Technique (EET) 可以避免使用上百条的空带也能得到很好的结果。如果VASP速度实在不可接受,最后也考虑试一下Abinit  

 

liqizuiyang(站内联系TA) 

  对于Si这样的元素,可以用Plasmon-Pole模型来算介电函数,这样就不用针对每个频率点都算一次介电函数了,可以节约不少计算量。
但是vasp只能算全频率GW,因此计算量很大。abinit支持4种PPA模型,对这四种模型的测试可以看下PRB 88, 125205(2013)这篇文章。

8楼: Originally posted by ya_mde at 2013-12-29 17:41:18
楼主 你好 我也刚开始学  有个问题想请教一下 算GW是不是要用有后缀为_GW的赝势 我用这种赝势时 还没开始出数据就报这个错误 this version requires full pseudpotential  generation information 求助呀!
是的,GW计算最好使用_GW后缀的POTCAR。不过普通版本的POTCAR应该也能用,不好意思我没有详细对比过结果。
看VASP论坛反馈的信息,你这个错误是因为POTCAR文件在复制的过程中损坏了。你可以重新复制再尝试一下。
http://cms.mpi.univie.ac.at/vasp-forum/forum_viewtopic.php?3.2915

 

wekow(站内联系TA)

重新优化结构计算了Si的能隙,NBAND=240,ENCUT=300,KPOINTS 8*8*8,NOMEGA = 80, GW计算出来的能隙仍然是在1.8 eV。我搜索到有些Si GW计算的结构,即使使用高得多的收敛参数,仍然能得到接近实验值的结果。我的计算结构差距太大了,现在很怀疑是不是哪里做错了。
这是在GW计算上一步中计算介电矩阵的INCAR。计算介电矩阵这一步使用了静态计算的结果。
 PREC = Accurate
  ISTART =     1
  ICHARG =     2  
  ISPIN =      0  
  ENCUT = 400  
  ISYM = 2  
  GGA =  PS    
  NBANDS = 240
!GW0
  LOPTICS = .TRUE.
  NEDOS = 2000
  LPEAD = .TRUE.
!Electronic Relaxation
  ALGO = Exact
  EDIFF =  1E-05    stopping-criterion for ELM
!  LREAL = AUTO      real-space projection
!Ionic relaxation
  EDIFFG =  -1E-03  stopping-criterion for IOM
  ADDGRID= .TRUE.   reduce the noise in the forces
!DOS related values:
  ISMEAR =  0      gaussian smear 0 tetrahedron method -5
  SIGMA = 0.05

 

 

11楼: Originally posted by wekow at 2014-01-02 17:27:05
重新优化结构计算了Si的能隙,NBAND=240,ENCUT=300,KPOINTS 8*8*8,NOMEGA = 80, GW计算出来的能隙仍然是在1.8 eV。我搜索到有些Si GW计算的结构,即使使用高得多的收敛参数,仍然能得到接近实验值的结果。我的计 ...
我没看出什么错误。
我贴下我算GW的用过的3个INCAR:
1.INCAR.SCF
Job control:

SYSTEM = Pristine MoS2
PREC   = Normal
NPAR   = 12

System information:
ISPIN  = 1
GGA    = pe
ISMEAR = 0
SIGMA  = 0.05
ENCUT  = 400

Electrons:

LREAL  = .FALSE.
ALGO   = Normal
EDIFF  = 1.5E-9
NELM   = 250

Ions:
NSW    = 0    #简单自洽计算不是优化
IBRION = -1
2.INCAR.bands
Job control:

SYSTEM  = Pristine MoS2
PREC    = Normal
 LOPTICS = .TRUE.    #frequency dependent dielectric matrix
NPAR    = 12     #number of cores per compute node


System information:

ISPIN   = 1
GGA     = pe
ISMEAR  = 0
SIGMA   = 0.05
ENCUT   = 400
NBANDS  = 360

Electrons:

LREAL   = .FALSE.
ALGO    = Exact
NELM    = 1

Ions:

NSW     = 0
IBRION  = -1
 

3.INCAR.GW

Job control:

SYSTEM   = Pristine MoS2
PREC     = Normal
LWAVE    = .TRUE.

System information:

ISPIN    = 1
GGA      = pe
ISMEAR   = 0
SIGMA    = 0.05
ENCUT    = 400
NBANDS   = 360

Electrons:

LREAL    = .FALSE.
Ions:
NSW      = 0
IBRION   = -1

GW:

PRECFOCK = Normal   #The PRECFOCK parameter controls the FFT grid for the exact exchange (Hartree-Fock) routines
ALGO     = GW0
NELM     = 4    #NELM gives the maximum number of electronic SC (selfconsistency)  steps which may be performed.
NOMEGA   = 72  

# NOMEGA specifies the number of frequency grid points


ENCUTGW  = 200

# ENCUTGW energy cutoff for response function ENCUTGW= [real] (energy cutoff for response function)

# Default: ENCUTGW=ENCUT


NBANDSGW = 36
# NBANDSGW Number of orbitals updated in GW
NBANDSGW  = [integer] twice the number of occupied states
The flag NBANDSGW determines how many QP energies are calculated and updated in GW type calculations. This value usually needs to be increased somewhat for partially or fully selfconsistent calculations. Very accurate results are only obtained when NBANDSGW  approaches NBANDS, although this dramatically increases the computational requirements.

 
ALGO = Exact or  ALGO = Diag performs an exact diagonalization (IALGO = 90), and we recommend to use this if more than 30-50 % of the states are calculated (e.g. for $ GW$ or RPA calculations).

ALGO for response functions and GW calculations

ALGO= CHI | GW0 | GW | scGW | scGW0 | QPGW | QPGW0

For ALGO=GW and ALGO=GW0 the orbitals of the previous groundstate calculations are maintained, and single shot G$ _0$W$ _0$calculations are performed. If NELM is set as well, several iterations are performed,  and the eigenvalues are updated in the calculation of G (ALGO=GW0)  or W and G (ALGO=GW). A full update of the orbitals can be performed by specifying  ALGO=SCGW and ALGO=SCGW0 (QPGW  and QPGW0  are synonymous to these setting, and available in VASP.5.2.13). In the former case, the orbitals and eigenvalues are updated in G and W, whereas in the latter case the orbitals and eigenvalues are only updated in G.  Convergence of the eingevalues with respect to ENCUTGW (see Sec. 6.73.7 and the number of unoccupied bands NBANDS is usually fairly slow and should be checked carefully.

We strongly recommend to read the following literature before performing $ GW$ calculations using VASP [111,112,113,114].

 

 

## Frequency dependent dielectric tensor including local field effects within the RPA (default) or including changes in the DFT xc-potential (LRPA=.FALSE.).N.B.:
# beware one first has to have done a   calculation with ALGO=Exact and LOPTICS=.TRUE.  and a reasonable number of virtual states (see above)


ALGO = GW0 ; LSPECTRAL = .TRUE. ; NOMEGA = 50
#LRPA = .FALSE.

## be sure to take the same number of bands as for the LOPTICS=.TRUE. calculation, otherwise the WAVEDER file is not read correctly


NBANDS = 64

15楼: Originally posted by 月浅浅 at 2014-04-07 16:17:27
您好!请问在GW这一步,设置NELM=1作用是什么?我还看到过NELM =2的,我也刚开始学,到现在我只在结构弛豫那步用到过NELM找个参数,谢谢啊...
在GW计算中NELM指定自洽迭代步数,设置为1即不迭代,就是有的文献中所说的G0W0近似。
迭代次数越多,计算量耗时越长。
17楼: Originally posted by 月浅浅 at 2014-04-08 13:22:00
哦,还有点儿不是很明白,这个迭代指的是本征值和波函数都进行迭代吗?...
如果ALGO参数设置为GW和GW0只迭代本征值,scGW和scGW0则本征值和波函数都迭代。
 
 
参照2楼和9楼,肯定是你计算的问题。你说的这些简单的东西我都试过。如果你计算准确的话si不会高估出1%的。我说1%这个范围已经很大了,最多0。几。另外多看看vasp说明书多去官网论坛看看不要把自己局限在某一点
 
Originally posted by vasp001 at 2010-05-26 16:13:33:
想向你请教一下GW 计算的一般流程。请不吝赐教。
应该为三步:
1)计算基态电子密度
2)计算screening矩阵
3)计算GW修正
可参考abinit的指南,官方网站有较详细的解释。

 

 

 

 

 

 

 

 



https://blog.sciencenet.cn/blog-567091-733001.html

上一篇:VASP系列之HSE计算
下一篇:So far so interesting:常见物质的不寻常的结构
收藏 IP: 61.157.130.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (4 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-16 12:40

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部