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

博文

VASP中的杂化泛函计算方法

已有 32791 次阅读 2014-6-19 13:55 |个人分类:电子结构计算|系统分类:科研笔记

关注:

1) VASP中杂化泛函的种类及物理意义

2) 什么情况下需要用杂化泛函

3) 参数设置

4)   利用wannier函数得到band的INCAR中,是否还需设置参数:

#LHFCALC = .TRUE.  ; HFSCREEN = 0.2  ;

#PRECFOCK = Fast   ; NELM = 1
#ALGO = Eigenval

 

手册实例文件解读:

http://cms.mpi.univie.ac.at/wiki/index.php/Si_bandstructure bandstructure

Si bandstructure 【有三种计算方法】

Description: Bandstructure for Si within DFT+HF  

Bandstructure in VASP can be obtained following three different procedures. The standard procedure (procedure 1),

applicable at PBE level, is also described in Fcc Si bandstructure example.

Within Hybrid functional theory it is possible to plot bandstructure using procedure 2 or 3.

Contents

 

 

Procedure 3: VASP2WANNIER90 (GW, Hybrids, PBE)

 

Wannier function interpolation using the VASP2WANNIER90 interface.  Applicable in all cases (here applied for hybrids; for GW see Bandstructure_of_Si_in_GW_(VASP2WANNIER90) example).  

 

(1) Standard DFT run

  • INCAR

## Default      
ISMEAR =  0
SIGMA  =  0.01
GGA    = PE

## HSE
#LHFCALC = .TRUE. ; HFSCREEN = 0.2 ; AEXX = 0.25
#ALGO = D ; TIME = 0.4 ; LDIAG = .TRUE.

##VASP2WANNIER
#LWANNIER90=.TRUE.

 

  • KPOINTS

Automatically generated mesh
0
G
4 4 4
0 0 0

 

运行VASP后, grep E-fermi OUT*


E-fermi :   5.9102     XC(G=0):  -9.4115     alpha+bet :-11.9845

 

(2) HSE + LWANNIER90 run:产生wannier90.amn, wannier90.mmn, wannier90.eig系列文件,供
第三步、四步wannier程序调用

  • INCAR

## Default      
ISMEAR =  0
SIGMA  =  0.01
GGA    = PE

## HSE
LHFCALC = .TRUE. ; HFSCREEN = 0.2 ; AEXX = 0.25
ALGO = D ; TIME = 0.4 ; LDIAG = .TRUE.

##VASP2WANNIER
LWANNIER90=.TRUE.

 

 

 

运行第二步时,最好存在wannier90.win文件,Use the wannier90.win file given below 

which contains all instructions needed to generate the necessary input files  for the WANNIER90 runs (wannier90.amn, wannier90.mmn, wannier90.eig).

 

Mind: If the wannier90.win file does not exist VASP will create a default wannier90.win compatible with the POSCAR and INCAR files, which needs to be suitably modified by including the proper instruction required  to generate the maximally localized wannier functions (refer to the WANNIER90 manual).

  • wannier90.win

num_wann=8
num_bands=8

Begin Projections
Si:sp3
End Projections

dis_froz_max=9
dis_num_iter=1000

guiding_centres=true

#restart         =  plot
#bands_plot      =  true
#begin kpoint_path
#L 0.50000  0.50000 0.5000 G 0.00000  0.00000 0.0000
#G 0.00000  0.00000 0.0000 X 0.50000  0.00000 0.5000
#X 0.50000  0.00000 0.5000 K 0.37500 -0.37500 0.0000
#K 0.37500 -0.37500 0.0000 G 0.00000  0.00000 0.0000
#end kpoint_path
#bands_num_points 40
#bands_plot_format gnuplot xmgrace

 

 

运行VASP后, ]$ grep E-fermi OUT*

E-fermi :   5.6142     XC(G=0):  -7.8395     alpha+bet :-11.9845

 

ls -lart

 

  12387     Jun 20 11:24     wannier90.wout
13961910     Jun 20 11:24     wannier90.mmn
2426214     Jun 20 11:24     wannier90.amn
   4096     Jun 20 11:24     .            
 274104     Jun 20 11:24     wannier90.eig
  45300     Jun 20 11:24     wannier90.win

    283     Jun 20 11:25     XDATCAR      
    780     Jun 20 11:25     OSZICAR      
    512     Jun 20 11:25     CONTCAR      
 396776     Jun 20 11:25     CHG          
 918032     Jun 20 11:25     WAVECAR      
 597730     Jun 20 11:25     CHGCAR        
   8272     Jun 20 11:25     EIGENVAL      
  48818     Jun 20 11:25     vasprun.xml  
 116894     Jun 20 11:25     OUTCAR        
  11073     Jun 20 11:25     DOSCAR        
   5857     Jun 20 11:25     log1          

 

(3) Compute Wannier functions [wannier果然只是后处理过程,不影响计算]:产生.wout和.chk文件,供第四步插值计算能带用

可新建一个文件夹band,将第二步产生的所有wannier90.* 文件

wannier90.win ,wannier90.amn, wannier90.mmn, wannier90.eig

拷贝到band目录下,进入band目录,进行下面的wannier函数操作

 

run wannier90:  

wannier90.x wannier90

This run generates the wannier90 standard output (wannier90.wout) and the file wannier90.chk needed for the wannier interpolation (next step)  

 

运行wannier过后,ls -lart

   4096         Jun 20 11:29         ..            
2426214         Jun 20 11:29         wannier90.amn
 274104         Jun 20 11:29         wannier90.eig
13961910         Jun 20 11:29         wannier90.mmn
  45300         Jun 20 11:29         wannier90.win
    127         Jun 20 11:30         .            
 6736585         Jun 20 11:30         wannier90.chk
 122049         Jun 20 11:30         wannier90.wout

 

(4) Obtain bandstructure (Wannier interpolation) and plot using XMGRACE or GNUPLOT:产生_band.dat,_band.gnu和_band.agr文件,供能带绘制用

     Uncomment the bandstructure plot flags in wannier90.win and rerun (restart) wannier90:

wannier90.x wannier90

This run generates the following bandstructure files which can be visualized using xmgrace or gnuplot:

wannier90_band.agr

wannier90_band.dat

wannier90_band.gnu

运行wannier过后,ls  -lart

 

 

   4096      Jun 20 11:29      ..                
2426214      Jun 20 11:29      wannier90.amn      
 274104      Jun 20 11:29      wannier90.eig      
13961910      Jun 20 11:29      wannier90.mmn      
6736585      Jun 20 11:30      wannier90.chk      
  45290      Jun 20 11:33      wannier90.win      
   7452      Jun 20 11:33      wannier90_band.kpt
    397      Jun 20 11:33      wannier90_band.gnu
  45696      Jun 20 11:33      wannier90_band.dat
   4096      Jun 20 11:33      .                  
 136972      Jun 20 11:33      wannier90.wout    
  47224      Jun 20 11:33      wannier90_band.agr

 

Readme:Bandstructure plot in VASP (Three different ways)

 

3) VASP2WANNIER90: PBE, HSE & GW
  3.1 Standard SC run using the existing wannier.win file  


  3.2 run wannier90 (wannier90.x wannier90) to generate MLWFs


  3.3 uncomment bandstructure plot flags in wannier90.win and restart wannier90

----
If the wannier90.win file does not exist VASP will create a default wannier90.win compatible with
the POSCAR and INCAR, which need to be suitably modify by including the proper instruction required
to generate the MLWFs (refer to the wannier90 manual):

default wannier90.win


num_wann =     8  ! set to NBANDS by VASP

use_bloch_phases = .T.

begin unit_cell_cart
    2.7150000     2.7150000     0.0000000
    0.0000000     2.7150000     2.7150000
    2.7150000     0.0000000     2.7150000
end unit_cell_cart

计算结果图形化显示

 

 

 

 

网络摘录:

一、 HSE(GW与此类似)计算能带总结

http://emuch.net/bbs/viewthread.php?tid=3613684

 

1.DFT 自洽计算


INCAR
SYSTEM = Si-Diamond
ENCUT = 400
ISTART = 0
ISYM = 0
ICHARG = 2
ISMEAR = 0
SIGMA = 0.05
LORBIT = 11    #这一步为什么要用到LORIT=11?
NSW = 0
IBRION = -1
ISIF = 2
EDIFF = 0.00001
EDIFFG = -0.001

KPOINTS
Automatic mesh
0
G
4   4   4
0   0   0

POSCAR
Si-Diamond:                            
   5.48000000000000    
     0.0000000000000000    0.5000000000000000    0.5000000000000000
     0.5000000000000000    0.0000000000000000    0.5000000000000000
     0.5000000000000000    0.5000000000000000    0.0000000000000000
   Si
   2
Direct
  0.8750000000000000  0.8750000000000000  0.8750000000000000
  0.1250000000000000  0.1250000000000000  0.1250000000000000

  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
vasp计算


2.HSE06 【自洽or非自洽计算?】
INCAR
设置ICHARG =2 ,IBRION =1 ,NELMIN =5 or 其他值


SYSTEM = Si-Diamond
ISTART = 1
ICHARG = 2
EDIFF = 0.00001
EDIFFG = -0.001
ENCUT = 400
ENAUG = 800
LREAL = .FALSE.
LWAVE = .TRUE.
LCHARG = .TRUE.
NELM = 200
NSW = 0
IBRION = -1
LMAXMIX = 4
ISMEAR = 0
SIGMA = 0.1
 NSIM = 4
ISYM = 0
 LHFCALC = .TRUE.
HFSCREEN = 0.2
ALGO = D
TIME = 0.4
ENCUTFOCK = 0
AEXX = 0.25

其他文件从DFT文件夹拷贝过来,vasp计算

 


3.band计算[非自洽计算?]


INCAR


SYSTEM = Si-Diamond
ISTART = 1
ICHARG = 2
EDIFF = 0.00001
EDIFFG = -0.001
ENCUT = 400
ENAUG = 800
LREAL = .FALSE.
LWAVE = .TRUE.
LCHARG = .TRUE.
NELM = 200
NSW = 0
IBRION = 1
 LMAXMIX = 4
ISMEAR = 0
SIGMA = 0.1
NSIM = 4
ISYM = 0
 LHFCALC = .TRUE.    #【这些参数都不注释掉?】
HFSCREEN = 0.2
ALGO = N
TIME = 0.4
ENCUTFOCK = 0
AEXX = 0.25
NELMIN = 5


KPOINTS


从HSE06文件夹的IBZKPT拷贝到KPOINTS,然后把高对称点拷贝在后面,权重为0
更新k点总数


Automatically generated mesh
      127
Reciprocal lattice
    0.00000000000000    0.00000000000000    0.00000000000000             1
    0.25000000000000    0.00000000000000    0.00000000000000             2
    0.50000000000000    0.00000000000000    0.00000000000000             1
  .......
    0.25000000000000    0.50000000000000    0.50000000000000             2
    0.50000000000000    0.50000000000000    0.50000000000000             1
  0.500000  0.000000  0.500000  0
  0.475000  0.000000  0.475000  0
  0.450000  0.000000  0.450000  0
  ........
  0.056250  0.056250  0.112500  0
  0.037500  0.037500  0.075000  0
  0.018750  0.018750  0.037500  0
  0.000000  0.000000  0.000000  0
其他文件从HSE06中拷贝
vasp计算

4.从EIGENVAL中取权重为0的高对称点做能带图

 

 二、计算步骤及参数释疑

1. 官方解释计算步骤

http://cms.mpi.univie.ac.at/vasp-forum/forum_viewtopic.php?4.6633.10

 

http://cms.mpi.univie.ac.at/vasp-forum/forum_viewtopic.php?4.6633.10
band structures using hybrid functionals have to be calculated the following way:
1) First perform a selfconsistent Hartree-Fock/HSE calculation using a conventional KPOINTS file.

 

2)step2

 

KPOINTS

Copy the IBZKPT file to KPOINTS, and explicitely add all desired k-points along high-symmetry lines of the BZ that are needed for the bandstructure plot. Add the points at the end of the KPOINTS file, but set the weights of these added k-points to 0.


Notes: Do not forget to set the number of k-points in KPOINTS correctly (to the number of the k-points used in the standard mesh PLUS the number of the k-points along the lines), such that all k-points are used for the calculations.


 NKRED can not be used.
Perform a second VASP run:


It is recommended to use the Davidson algorithm, since it converges that eigen energies at the new k-points fastest.

 Since VASP terminates when the total energy is converged to a certain threshold, it is important to force VASP to do a minimum number of steps, so that the orbitals at the new k-points are fully converged (note: since their weight is zero, they do not contribute to the total energy).
This can be done using e.g.

ALGO = N ; NELMIN = 5 ! Davidson, minimum 5 scf-steps
IBRION = 1 ! Use simple charge mixer, since
Pulay might blow up

3) 数据处理

 

The KS-eigenvalues of the states along the high-symmetry lines are written in OUTCAR, EIGENVAL, vasprun.xml; please cut the k-points required for the bandstructure from one of these files and proceed as usual (using p4vasp or any other graphics tool you usually use to produce bandstructure-plots)

Note: A Hartee-Fock calculation can NOT be continued from an existing CHGCAR file, since the non-local exchange is not determined by the charge density but by the density matrix and/or the KS-orbitals.

 

以上是官方给出的解释

 

2.参数说明

 

主要的参数包括
LHFCALC= .TRUE. | .FALSE.    (这个参数是必须的)

AEXX = [real] (fraction of exact exchange)
ALDAC= [real] (fraction of LDA correlation energy)
AGGAX= [real] (fraction of gradient correction to exchange)
AGGAC= [real] (fraction of gradient correction to correlation)

ENCUTFOCK= [real]
PRECFOCK= Low | Medium | Fast | Normal | Accurate
LMAXFOCK= [integer]                          
LMAXFOCKAE= [integer] (maximum L quantum number for accurate charge augmentation in HF routines)

HFSCREEN= [real]
LTHOMAS= .TRUE. | .FALSE.

NKRED= [integer]

NKREDX= [integer]  NKREDY= [integer]   NKREDZ= [integer]

EVENONLY= [logical]  ODDONLY= [logical]

 

三、其他摘录

 

http://emuch.net/html/201305/5938584.html

 

在HSE06,HSE03或是PBE0中都有部分交换泛函替换成HF交换泛函,为什么HF交换泛函会更准确一些,计算了会大很多?

   

简单地说,LDA/GGA基本都是低估带带隙,而HF总是高估,因此期望两者混合后可以得到居中的结果就是和实验接近的结果。具体内容很多,需要参看相关著作了。

 

       在我们正常用到的LDA和GGA计算中,这个电子与其自身的相互作用是不能被扣除的,也是非物理的。其造成的一个直接结果就是KS轨道因为自己与自己的相互作用而离散于整个空间,只有扣除这个自相互作用,其轨道才可能得到一定程度上的局域化。

      而在传统量化HF方法中,Fock相的交换与Hartee相的自相互作用自然抵消,所以如果把电子间的交换正确描述出来,这个自相互作用是可以消除的。但完全考虑交换却不考虑关联造成的一个直接后果是虽然电子的自相互作用消除了,电子屏蔽也没有了。

    最好的方法当然是把交换和关联按照费曼图展开后把所有项都包含进去,就是CI方法,但这个对电子多一点的体系马上就不适用了。

      杂化范函,是用了一部分的精确交换的计算,没有全部,原因就是前面说的补偿。他的好处体现在两个方面,对电子自相互作用比较严重的系统,它可以改进电子系统的总能描述。对能带,它可以给出与实验相近的结果。
     因为交换是个非局域项,所以计算量相对于LDA/GGA会增加很多

 

 

四、自己参数设置:

 


#####The following step is use to  get dos,band,dielectric function in the hse  calculations se###

############# step 1: a DFT groundstate calculation , and get DOS and band  #####

cat > INCAR << EOF

System  = SrVO3-dft

NBANDS = 48     # why ?

ISMEAR = -5

EMIN = -20 ; EMAX = 20 ; NEDOS = 1000  # usefull energy range for density of states

EDIFF = 1E-8                           # high precision for groundstate calculation

#KPAR = 3
EOF

# start calculation

$PARA -n $NP -machinefile .nodelists.$$ $EXEC  > STDOUT
 
cp OUTCAR OUTCAR-01
cp STDOUT STDOUT-01

 

###step 2: obtain DFT virtual orbitals and analysize dielectric function ##########


cat > INCAR << EOF
System  = SrVO3-get virtual orbitalss

ISMEAR = -5
EMIN = -20 ; EMAX = 20 ; NEDOS = 1000  # usefull energy range for density of states

ALGO = Exact  ; NELM = 1               # exact diagonalization one step suffices
EDIFF = 1E-8                           # high precision for groundstate calculation
NBANDS = 64   # need for a lot of bands in GW  ( how to determine the value of NBANDS?),change from 96 to 48 for hse calculations
LOPTICS = .TRUE.                   # This is new  we need d phi/ d k  for GW calculations

#KPAR = 3


EOF

# start calculation

$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT

cp WAVECAR WAVECAR.LOPTICS
cp WAVEDER WAVEDER.LOPTICS
cp OUTCAR OUTCAR-02
cp STDOUT STDOUT-02


## 2-1: analysis dielectric function  ##
   
    ./plotoptics2
   
    cp  imag.dat  imag-dft2.dat
    cp  real.dat   real-dft2.dat

 

#######step 4:  Doing the HSE hybrid functional for comparison ####################

cat  > INCAR << EOF
System  = SrVO3-hse

ISMEAR = -5
EMIN = -20 ; EMAX = 20 ; NEDOS = 1000  # usefull energy range for density of states

EDIFF = 1E-8                           # high precision for groundstate calculation

#KPAR = 3
LHFCALC = .TRUE.  ; HFSCREEN = 0.2  ; NBANDS = 64     #  hse calculations
PRECFOCK = Fast   ; NELM = 1
ALGO = Eigenval

LWAVE = .FALSE.                        # do not write the wave functions

EOF

cp  WAVECAR.LOPTICS WAVECAR


# start calculation

$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT

cp OUTCAR OUTCAR-4-0
cp STDOUT STDOUTi-4-0


# #######################step 4.1:  Analysis of the DOS   #################################

cat > INCAR << EOF

System  = SrVO3-hse-dos

ISMEAR = -5
EMIN = -20 ; EMAX = 20 ; NEDOS = 1000  # usefull energy range for density of states

EDIFF = 1E-8                           # high precision for groundstate calculation

#KPAR = 3
#LHFCALC = .TRUE.  ; HFSCREEN = 0.2  ;
NBANDS = 64
#PRECFOCK = Fast   ; NELM = 1
#ALGO = Eigenval

LWAVE = .FALSE.                        # do not write the wave functions

LORBIT = 11                           # for DOS

EOF

# start calculation

$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT

cp OUTCAR OUTCAR-4-1
cp STDOUT STDOUTi-4-1


# giving total.dat

./plotdos  

mv  total.dat  total-dos-afterhse.dat

 


 
 
 
# #######################step 4.2:  Analysis of hse band, by using  LWANNIER90_RUN = .TRUE.  #################################

cat > INCAR << EOF

System  = SrVO3-hse-band

ISMEAR = -5
EMIN = -20 ; EMAX = 20 ; NEDOS = 1000  # usefull energy range for density of states

EDIFF = 1E-8                           # high precision for groundstate calculation

#KPAR = 3
#LHFCALC = .TRUE.  ; HFSCREEN = 0.2  ;
NBANDS = 64
#PRECFOCK = Fast   ; NELM = 1
#ALGO = Eigenval

LWAVE = .FALSE.                        # do not write the wave functions

#LORBIT = 11                           # for DOS

LWANNIER90_RUN = .TRUE.     # for band calculation

EOF

cat > wannier90.win << EOF

num_wann=24

num_bands=30


# for GW uncomment
exclude_bands 31-64

Begin Projections

Sc:l=0;l=1;l=2
H: l=0

End Projections


dis_froz_max=9
dis_num_iter=1000
guiding_centres=true

# Bandstructure plot
restart         =  plot
bands_plot      =  true


begin kpoint_path
G 0.000  0.000  0.000   A 0.000  0.000  0.500
A 0.000  0.000  0.500   H -0.333  0.667  0.500
H -0.333  0.667  0.500  K -0.333  0.667  0.000
K -0.333  0.667  0.000  G 0.000  0.000  0.000
G 0.000  0.000  0.000   M 0.000  0.500  0.000
M 0.000  0.500  0.000   L 0.000  0.500  0.500
L 0.000  0.500  0.500   H -0.333  0.667  0.500
end kpoint_path


bands_num_points 40
bands_plot_format gnuplot xmgrace
EOF

# start calculation

$PARA -n $NP -machinefile .nodelists.$$ $EXEC  > STDOUT
 
cp OUTCAR OUTCAR-4-2
cp STDOUT STDOUT-4-2
cp  wannier90_band.dat  wannier90_band-hse.dat

 

 

 

 

 

 

 



https://wap.sciencenet.cn/blog-567091-804706.html

上一篇:在GW计算过程中考虑DFT+U
下一篇:VASP中杂化泛函优化及态密度计算
收藏 IP: 61.157.130.*| 热度|

0

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

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

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

GMT+8, 2024-5-23 10:40

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部