研究高压结构时,经常需考察同一结构在不同压力下的键长、晶格参数、体积及相对能量的变化,此时需要对所研究的结构在不同压力下进行优化。在优化前务必对KPOINTS进行测试:
问题:低压下经测试使能量收敛的k点也试用于高压下的结构优化吗?
对于下面的方式一产生的KPOINTS不行!原则上高压下经测试使能量收敛的k点可适用于低压。 因为,高压结构拥有更小的晶格参数,对应更长的k空间参数,若在高压下采用N1、N2、N3的数值分割k空间,且间隔足够密;则低压结构采用该k点进行优化时,对k空间的分割将更密(因为k空间长度小),能量将更容易收敛。
对于方式二产生的KPOINTS,由于空间的k mesh密度始终维持不变,则有可能低压下测试的KPOINS可能适用于高压,但仍需具体考察。以第二种KPOINYS产生方式为例,考察结果见下面“KPOINTS设置考察”。
1. KPOINTS产生方式之一
如下面的KPOINTS文件:
4x4x4 ! Comment
0 0 ! automatic generation of k-points
Monkhorst ! M use Monkhorst Pack
4 4 4 ! grid 4x4x4
0 0 0 ! shift (usually 0 0 0)
如该采用奇数分割,则可将Gamma点包含进来。
2. KPOINTS产生方式之二
Automatic mesh
0 ! number of k-points = 0 ->automatic generation scheme
Auto ! fully automatic
10 ! length (l)
KPOINTS文件最后一行即表示a linear k-point density of 20 A, 其含义为每1/A上的k点数,注意其单位为angstrom(A=1/(1/A)),对于绝缘体通常取20,金属通常取40。【低压下测试的k密度试用于高压相】
例如正空间a=3A,倒空间2pai/3=~2/A,即分割数为20;若在压力下a变为1.5A,则倒空间变为 2pai/1.5 ~ 4/A,则分割数为40;注意这是对倒空间上的三个矢量采用相等k密度进行分割,因此,视晶格参数不同,三个方向的分割数(subdivisions)可能不同。 该KPOINTS已经包含了Gama Point
As before, the first line is treated as a comment.
On the second line a number smaller or equal 0 must be specified. In theprevious section, this value supplied the number of k-points, a zero in this line activates the automatic generation scheme.
The fully automatic scheme, selected by the first character in the third line (’a’), generates G centered Monkhorst-Pack grids,where the numbers of subdivisions along each reciprocal lattice vector are given by
Symmetry is used tomap equivalent k-points to each other, which can reduce the total number of k-points significantly.
Usefulvalues for the length vary between 10 (large gap insulators) and 100 (d-metals).
3. KPOINTS产生方式之三
A slightly enhanced version, allows to supply the numbers for the subdivisions N1, N2 and N3 manually:
Automatic mesh
0 ! number of k-points = 0 ->automatic generation scheme
Gamma ! generate a Gamma centered grid
4 4 4 ! subdivisions N_1, N_2 and N_3 along recipr. l. vectors
0. 0. 0. ! optional shift of the mesh (s_1, s_2, s_3)
In this case, the third line (again, only the first character is significant) might start with ’G’ or ’g’ —for generating mesheswith their origin at the G point (as above)— or ’M’ or ’m’, which selects the original Monkhorst-Pack scheme.
In the lattercase k-point grids【指,Monkhorst-Pack scheme?】, with even (mod(Ni,2) = 0) subdivisions are shifted off G:
4. hexagonal lattices
We strongly recommend to use only Gamma centered grids for hexagonal lattices.
Many tests we have performed indicatethat the energy converges significantly faster with Gamma centered grids than with standard Monkhorst Pack grids.
Gridsgenerated with the “M” setting in the third line, in fact do not have full hexagonal symmerty.
5. 摘录
一般如非必要,可以先用自动模式生成k点,VASP会自动生成一个简约化后的k点矩阵,存于IBZKPT文件,可以直接复制里面的数据到KPOINTS文件中使用,这也是该输入法的主要用途,可以减少重复自动生成格点的时间。另一个用途是为了做精确的DOS(Density of status)计算,由于这类计算所需的k点数极大,通过全手动尽可能的优化k点也就必需了。
最后提醒一点,VASP的帮助文档特别提醒,对于六方晶系,不要用M来自 动生成格点,而要用G。
6. 不同KPOINTS设置下OUTCAR文件中k mesh查看
(1)Monkhorst 方式
K-Points
0
Monkhorst Pack
15 15 15
0 0 0
OUTCAR
.....
KPOINTS: K-Points
Automatic generation of k-mesh.
Space group operators:
.......
Dimension of arrays:
k-points NKPTS = 120 k-points in BZ NKDIM = 120 number of bands NBANDS= 16
number of dos NEDOS = 301 number of ions NIONS = 4
non local maximal LDIM = 6 non local SUM 2l+1 LMDIM = 18
total plane-waves NPLWV = 8000
max r-space proj IRMAX = 1 max aug-charges IRDMAX= 19027
dimension x,y,z NGX = 20 NGY = 20 NGZ = 20
dimension x,y,z NGXF= 40 NGYF= 40 NGZF= 40
support grid NGXF= 40 NGYF= 40 NGZF= 40
ions per type = 3 1
NGX,Y,Z is equivalent to a cutoff of 11.15, 11.15, 11.15 a.u.
NGXF,Y,Z is equivalent to a cutoff of 22.29, 22.29, 22.29 a.u.
I would recommend the setting:
dimension x,y,z NGX = 19 NGY = 19 NGZ = 19
(2) Auto 方式
Automatic mesh
0 ! number of k-points = 0 ->automatic generation scheme
Auto ! fully automatic
50 ! length (l)
OUTCAR
.....
KPOINTS: Automatic mesh
Automatic generation of k-mesh.
generate k-points for: 21 21 21
.....
Dimension of arrays:
k-points NKPTS = 286 k-points in BZ NKDIM = 286 number of bands NBANDS= 16
number of dos NEDOS = 301 number of ions NIONS = 4
non local maximal LDIM = 6 non local SUM 2l+1 LMDIM = 18
total plane-waves NPLWV = 8000
max r-space proj IRMAX = 1 max aug-charges IRDMAX= 19106
dimension x,y,z NGX = 20 NGY = 20 NGZ = 20
dimension x,y,z NGXF= 40 NGYF= 40 NGZF= 40
support grid NGXF= 40 NGYF= 40 NGZF= 40
ions per type = 3 1
NGX,Y,Z is equivalent to a cutoff of 11.16, 11.16, 11.16 a.u.
NGXF,Y,Z is equivalent to a cutoff of 22.32, 22.32, 22.32 a.u.
I would recommend the setting:
dimension x,y,z NGX = 19 NGY = 19 NGZ = 19
.......
(3) Gama方式 --待补充
7. KPOINTS测试结果
KPOINTS测试Im-3m:600G
(1)采用Mateiralstudio中的fine参数来设置KPOINTS
./mskptest.x CONTCAR_6000
Thethree qualities of k-point separation for CASTEP (1/Angstrom) >>>
coarse.le..08 & medium.le..05 &fine.le..04
Please input thequality of Monkhorst-Pack grid (Default is .035) >>>
0.03
Reciprocal lattice parameters >>>
2.11841778 2.11841778 2.11841778
Meshparameters of Monkhorst-Pack grid >>>
12 12 12
Actual spacing of Monkhorst-Pack grid>>>
0.02809639 0.02809639 0.02809639
Reciprocal Lattice >>>
-1.49860797 -0.86886324 1.21940342
-0.00576644 1.72859416 1.22459088
-1.49727578 0.86297900 -1.22520461
Real lattice parameters >>>
2.96598026 2.96598026 2.96598026
Cell Angles >>>
90.00000000 90.00000000 90.00000000
Real Lattice >>>
-2.09818937 -1.21648867 1.70727724
-0.00807354 2.42019125 1.71454018
-2.09632419 1.20825019 -1.71539946
(2)实际的KPOINTS测试过程,可见KPOINTS对能量的影响可达几个meV,特别是对于低压结构,若选择30 Auto则,则与选择40 Auto能量相差接近20 meV。
../getEntafterkptest.sh
OUTCAR_30 5987.85 87.484625
OUTCAR_40 5987.71 87.487188
OUTCAR_50 5995.14 87.491954
OUTCAR_60 5996.47 87.495100
OUTCAR_70 5994.86 87.494637
OUTCAR_75 5994.68 87.491468
OUTCAR_80 5994.63 87.493970
OUTCAR_90 5994.78 87.494334
OUTCAR_95 5995.41 87.494084
OUTCAR_30:Automatic generation of k-mesh.
OUTCAR_30: generate k-points for: 10 10 10
OUTCAR_40:Automatic generation of k-mesh.
OUTCAR_40: generate k-points for: 13 13 13
OUTCAR_50:Automatic generation of k-mesh.
OUTCAR_50: generate k-points for: 17 17 17
OUTCAR_60:Automatic generation of k-mesh.
OUTCAR_60: generate k-points for: 20 20 20
OUTCAR_70:Automatic generation of k-mesh.
OUTCAR_70: generate k-points for: 24 24 24
OUTCAR_75:Automatic generation of k-mesh.
OUTCAR_75: generate k-points for: 25 25 25
OUTCAR_80:Automatic generation of k-mesh.
OUTCAR_80: generate k-points for: 27 27 27
OUTCAR_90:Automatic generation of k-mesh.
OUTCAR_90: generate k-points for: 30 30 30
OUTCAR_95:Automatic generation of k-mesh.
OUTCAR_95: generate k-points for: 32 32 32
grep NKPT OUTCAR_*
OUTCAR_30: k-points NKPTS = 56 k-points in BZ
OUTCAR_40: k-points NKPTS = 84 k-points in BZ
OUTCAR_50: k-points NKPTS = 165 k-points in BZ
OUTCAR_60: k-points NKPTS = 286 k-points in BZ
OUTCAR_70: k-points NKPTS = 455 k-points in BZ
OUTCAR_75: k-points NKPTS = 455 k-points in BZ
OUTCAR_80: k-points NKPTS = 560 k-points in BZ
OUTCAR_90: k-points NKPTS = 816 k-points in BZ
OUTCAR_95: k-points NKPTS = 969 k-points in BZ
Im-3m:0G
Automatic mesh
0
Auto
L (L=30,40,50,60)
../getEntafterkptest.sh
OUTCAR_30 21.78 -48.119067
OUTCAR_40 22.89 -48.148892
OUTCAR_50 22.53 -48.142697
OUTCAR_60 23.06 -48.140251
OUTCAR_70 22.06 -48.144940
OUTCAR_75 22.96 -48.142481
OUTCAR_80 22.2 -48.144701
OUTCAR_90 22.98 -48.142411
OUTCAR_95 22.95 -48.143537
grep gene OUTCAR_*
OUTCAR_30:Automatic generation of k-mesh.
OUTCAR_30: generate k-points for: 7 7 7
OUTCAR_40:Automatic generation of k-mesh.
OUTCAR_40: generate k-points for: 10 10 10
OUTCAR_50:Automatic generation of k-mesh.
OUTCAR_50: generate k-points for: 12 12 12
OUTCAR_60:Automatic generation of k-mesh.
OUTCAR_60: generate k-points for: 15 15 15
OUTCAR_70:Automatic generation of k-mesh.
OUTCAR_70: generate k-points for: 17 17 17
OUTCAR_75:Automatic generation of k-mesh.
OUTCAR_75: generate k-points for: 18 18 18
OUTCAR_80:Automatic generation of k-mesh.
OUTCAR_80: generate k-points for: 20 20 20
OUTCAR_90:Automatic generation of k-mesh.
OUTCAR_90: generate k-points for: 22 22 22
OUTCAR_95:Automatic generation of k-mesh.
OUTCAR_95: generatek-points for: 23 23 23
grep NKPT OUTCAR_*
OUTCAR_30: k-points NKPTS = 20 k-points in BZ
OUTCAR_40: k-points NKPTS = 56 k-points in BZ
OUTCAR_50: k-points NKPTS = 84 k-points in BZ
OUTCAR_60: k-points NKPTS = 120 k-points in BZ
OUTCAR_70: k-points NKPTS = 165 k-points in BZ
OUTCAR_75: k-points NKPTS = 220 k-points in BZ
OUTCAR_80: k-points NKPTS = 286 k-points in BZ
OUTCAR_90: k-points NKPTS = 364 k-points in BZ
OUTCAR_95: k-points NKPTS = 364 k-points in BZ
手册注释
NGX, NGY, NGZ FFT mesh for wavefunctions
describes the number of grid points in x, y and z direction, and NPLWV the total number of points (i.e.NGX*NGY*NGZ)
Most quantities (like charge densities) are defined on these 3-dimensional grids. In the sequential version
NGX, NGY and NGZ were sufficient to perform a three dimensional FFT of quantities defined on these grids.
NGXF,NGYF,NGZF FFT mesh for charges
NGX, NGY, NGZ controls the number of grid-points in the FFT-mesh into the direction of the three lattice-vectors. X corresponds
to the first, Y to the second and Z to the third lattice-vector (X,Y and Z are not connected with cartesian coordinates, don’t be
fooled by the historical naming conventions).
NGXF, NGYF, NGZF controls the number of grid-points for a second finer FFT-mesh. On this mesh the localized augmentation
charges are represented, if ultrasoft (US) Vanderbilt potentials or the PAW method are used. In addition, local potentials
(exchange-correlation, Hartree-potential and ionic potentials) are also calculated on this second finer FFT-mesh if (and only
if) US-pseudopotentials are used.
转载本文请联系原作者获取授权,同时请注明本文来自叶小球科学网博客。
链接地址:http://blog.sciencenet.cn/blog-567091-680538.html
上一篇:VASP+Phonopy-supercell 法计算声子谱
下一篇:画焓差图时焓的选择-Thanks must given to Prasad