当前位置: 首页 > 工具软件 > 21-points > 使用案例 >

Linux下vasp优化结构,科学网—不同压力下的VASP优化与KPOINTS设置 - 叶小球的博文...

沙柏
2023-12-01

研究高压结构时,经常需考察同一结构在不同压力下的键长、晶格参数、体积及相对能量的变化,此时需要对所研究的结构在不同压力下进行优化。在优化前务必对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

 类似资料: