VASP自旋轨道耦合计算错误汇总 - 图文 联系客服

发布时间 : 星期六 文章VASP自旋轨道耦合计算错误汇总 - 图文更新完毕开始阅读1f112a5a4531b90d6c85ec3a87c24028915f8506

VASP自旋轨道耦合计算错误汇总 静态计算时,报错: VERY BAD NEWS! Internal内部 error in subroutine子程序 IBZKPT: Reciprocal倒数的 lattice and k-lattice belong to different class of lattices. Often results are still useful... 48 INCAR参数设置: 对策:根据所用集群,修改INCAR中NPAR。将NPAR=4变成NPAR=1,已解决! 错误:sub space matrix类错误 报错:静态和能带计算中出现警告: WARNING: Sub-Space-Matrix is not hermitian共轭 in DAV 结构优化出现错误: WARNING: Sub-Space-Matrix is not hermitian in DAV 4 -4.681828688433112E-002 对策:通过将默认AMIX=0.4,修改成AMIX=0.2(或0.3),问题得以解决。 以下是类似的错误: WARNING: Sub-Space-Matrix is not hermitian in rmm -3.00000000000000 RMM: 22 -0.167633596124E+02 -0.57393E+00 -0.44312E-01 1326 0.221E+00BRMIX: very serious problems the old and the new charge density differ old charge density: 28.00003 new 28.06093 0.111E+00 错误: WARNING: Sub-Space-Matrix is not hermitian in rmm -42.5000000000000 ERROR FEXCP: supplied Exchange-correletion table is too small, maximal index : 4794 错误:结构优化Bi2Te3时,log文件: WARNING in EDDIAG: sub space matrix is not hermitian 1 -0.199E+01 RMM: 200 0.179366581305E+01 -0.10588E-01 -0.14220E+00 718 0.261E-01 BRMIX: very serious problems the old and the new charge density differ old charge density: 56.00230 new 124.70394 66 F= 0.17936658E+01 E0= 0.18295246E+01 d E =0.557217E-02 curvature: 0.00 expect dE= 0.000E+00 dE for cont linesearch 0.000E+00 ZBRENT: fatal error in bracketing please rerun with smaller EDIFF, or copy CONTCAR to POSCAR and continue 但是,将CONTCAR拷贝成POSCAR,接着算静态没有报错,这样算出来的结果有问题吗? 对策1:用这个CONTCAR拷贝成POSCAR重新做一次结构优化,看是否达到优化精度! 对策2:用这个CONTCAR拷贝成POSCAR,并且修改EDIFF(目前参数EDIFF=1E-6),默认为10-4 错误: WARNING: Sub-Space-Matrix is not hermitian in DAV 1 -7.626640664998020E-003 网上参考解决方案: 对策1:减小POTIM: IBRION=0,标准分子动力学模拟。通过POTIM控制步长。 POTIM:当IBRION=1,2或3时,是力的一个缩放常数(相当于确定原子每步移动的大小),默认值为0.5。 对策2:改IBRION=1,采用准牛顿算法来优化原子的位置。 原IBRION=2,采用共轭梯度算法来优化原子的位置 对策3:修改ISMEAR 对策4:换成CG 弛豫(共轭梯度算法) IBRION=2 (决定结构优化过程中,原子如何移动或弛豫) IBRION=2 离子是否运动,1不运动但做NSW外循环。0动力学模拟,1准牛顿法离子弛豫 2 CG法离子弛豫,3 采用衰减二阶运动方程离子弛豫, INCARrelax中设置IBRION=2,未解决! 对策5:用的CG算符,出现的错误是CG算符不能算,在INCAR中加上IALG=Fast(电子优化采用blocked Davidson方法[IALGO=38 : IALG=Normal]和RMM-DIIS算法[IALGO=48 : IALG=Very_Fast]混合)试一试

IALG=Fast (两种方法混用) IALG=Very_Fast (等价于IALGO=48) IALG=Normal (等价于IALGO=38) INCAR中加上IALG=Fast 已解决!(1QL、2QL已解决,3QL以上未解决) VASP FORUM: the error is due to a LAPCK call (ZHEGV): ZHEGV computes all the eigenvalues本征值, and optionally随意地, the eigenvectors of a complex generalized Hermitian-definite eigenproblem . there may be several reasons for that error: 1) the RMM-DIIS diagonalisation algorithm is not stable for your specific setup of the calculation. --> use ALGO = Normal (blocked Davidson) or ALGO = Fast (5 steps blocked Davidson, RMM-DIIS) 用ALGO=Normal IALGO=48 或者 ALGO=Fast 2) a) maybe your input geometry was not reasonable (error occurs at the very first ionic step, please have a look for the geometry data of your run in OUTCAR ) or b) the last ionic relaxation step lead to an unreasonable geometry (compare the input and output geometries of the last ionic relaxation steps in XDATCAR). In that case (2b) it can be helpful to --> switch to a different relaxation algorithm (IBRION-tag) --> reduce the step size of the first step by setting POTIM smaller than the default value 改变IBRION,减少步长POTIM 3) The installation of the LAPACK on your machine was not done properly: use the LAPACK which is delivered with the code (vasp.4.lib/lapack_double.o) 4) If the error persist although you switched to the Davidson algorithm: on some architectures (especially SGI) some LAPACK routines are not working properly. However, it is possible to avoid the usage of the ZHEGV subroutine by commenting the line #define USE_ZHEEVX in davidson.F, subrot.F, and wavpre_noio.F and recompiling VASP. 关于Mixing方法的调试: 针对这类错误: DAV: 13 -0.242323773333E+03 0.98155E+02 -0.87140E+01 48832 0.949E+01BRMIX: very serious problems the old and the new charge density differ old charge density: 252.00012 new 252.29979 0.809E+01 WARNING: Sub-Space-Matrix is not hermitian in DAV 9 0.133520549894753 ..... 解决办法只需调整 AMIX, BMIX的值,把他们设置小一些。 Mixing方法: IMIX=type of mixing混合、混频, AMIX=linear mixing parameter, AMIN=minimal mixing parameter, BMIX=cutoff wave vector for Kerker mixing scheme, AMIX_MAG=linear mixing parameter for magnetization, BMIX_MAG=cutoff wave vector for Kerker mixing scheme for mag, WC=weight factor for each step in Broyden mixing scheme, INIMIX=type of initial for each step in Broyden mixing scheme, MIXPRE=type of preconditioning in Broyden mixing scheme, MAXMIX=maximum number steps stored in Broyden mixer. 一般采用其默认值,除非在电子迭代难以收敛的情况,才手动设置AMIX和BMIX等参数值。 】 对策:grep AMIX OUTCAR AMIX = 0.40; BMIX = 1.00 AMIX_MAG = 1.60; BMIX_MAG = 1.00 initial mixing is a Kerker type mixing with AMIX = 0.4000 and BMIX = 1.0000

设置: 初始值 AMIX =0.0100; BMIX =0.0001 AMIX = 0.1000; BMIX = 0.0010 AMIX =0.20; BMIX = 0.01 AMIX=0.2、BMIX=0.001 AMIX=0.3、BMIX=0.1 AMIX=0.4 收敛值 AMIX = 0.01; BMIX = 0.00 AMIX = 0.10; BMIX = 0.00 AMIX =0.20; BMIX = 0.01 AMIX=0.2、BMIX=0.001 AMIX=0.3、BMIX=0.1 AMIX = 0.40; BMIX = 1.00 结果 计算无误 计算无误 计算无误 计算无误 计算无误 静态log: WARNING in EDDRMM: call to ZHEGV failed, returncode = 6 3 **,能带一样 AMIX=0.02 AMIX=0.1 AMIX = 0.02; BMIX = 1.00 AMIX = 0.10; BMIX = 1.00 计算无误 静态log: WARNING in EDDRMM: call to ZHEGV failed, returncode = 6 3 **,能带一样 AMIX=0.3 AMIX = 0.30; BMIX = 1.00 静态log: WARNING in EDDRMM: call to ZHEGV failed, returncode = 6 3 **,能带一样 BMIX=0.0001 AMIX = 0.40; BMIX = 0.00 计算无误 以上参数设置,得到的能带图都一样,如下图: 综上:设置AMIX=0.2(或0.3),BMIX默认(省事,等于1.0),可以保证计算过程无误。还需进一步调整其他参数,算出正确的能带。 警告:算1QL弛豫、静态、能带时,都有这个提示: ADVICE TO THIS USER RUNNING 'VASP/VAMP' (HEAR YOUR MASTER'S VOICE ...): You have a (more or less) 'small supercell' and for smaller cells it is recommended to use the reciprocal-space projection scheme! The real space optimization is not efficient for small cells and it is also less accurate ... Therefore set LREAL=.FALSE. in the INCAR file 对策:对于较小的晶胞(原子数小于20),设置LREAL=.FALSE.,计算结果比较精确。而对于较大的晶胞,设置LREAL=Auto,这样计算速度比较快。本体系含原子5个,INCAR中LREAL=Auto。设置所有INCAR中的LREAL=.FALSE.,重新算一遍。 对于1QL 2QL 3QL原子数分别为5、10、15,LREAL=.False. 对于4QL 5QL 6QL原子数分别为20、25、30,LREAL=Auto 自旋轨道耦合计算时,静态和能带计算中出现的错误: ERROR: non collinear calculations require that VASP is compiled without the flag -DNGXhalf and -DNGZhalf

分析:VASP手册中关于自旋轨道耦合计算的描述(翻译版): 非线性计算和自旋轨道耦合:旋量是由Georg Kresse在VASP代码中引入的。这个代码是由David Hobbs编写,用于处理非线性磁结构。自旋轨道耦合计算是由Olivier Lebacq and Georg Kresse共同实现的。只有VASP4.5以上的版本才支持旋量的计算。 在INCAR中设置LNONCOLLINEAR=.TRUE.允许执行完全非线性磁结构的计算。VASP有能力读入之前非磁或非线性计算得到的WAVECAR和 CHGCAR文件,然而它不可能扭转局域在指定原子处的磁场。 因此在实际操作中,我们推荐分两步执行非线性计算: 第一步,计算计算非磁性基态,产生WAVECAR和CHGCAR文件。 第二步,读入WAVECAR和CHGCAR文件,通过设置MAGMOM参数,提供初始的磁矩。对于非线性设置,在MAGMOM这一行,每个离子必须设置三个值。这三项分别对应每个离子在x,y,z方向的初始局域磁矩值。 MAGMOM = 1 0 0 0 1 0 这一行,给第一个原子赋予的初始磁矩值沿x方向,第二个原子的初始磁矩值沿y方向。 注意:只有在 ICHARG=2(即不读入之前CHGCAR的情况)或者CHGCAR文件中只包含电荷但是不包括磁密度数据的情况(即之前那一步进行了非磁的计算)下,才需要通过MAGMOM设定初始磁矩值。 LSORBIT-tag Supported as of VASP.4.5. 【设置LSORBIT=.TRUE.表示计算自旋轨道耦合,并附带自动设置了LNONCOLLINEAR= .TRUE.】 LSORBIT=.TRUE.只能用于PAW赝势,不能用于超软赝势。如果不考虑自选轨道耦合,则能量不依赖磁矩的方向,也就是说,旋转所有的磁矩以同一个角度,让它们拥有相等的能量。不考虑自选轨道耦合的时候,不需要定义自旋量子化坐标。开启自旋轨道耦合设置以下参数: LSORBIT = .TRUE. SAXIS = s_x s_y s_z ( 自旋量子化轴,默认值 SAXIS= (0+,0,1)) GGA_COMPAT = .FALSE. ! 应用球面截断能到梯度场 其中SAXIS默认= (0+,0,1)(0+表示沿x轴方向一个无穷小的正数)。当需要计算亚meV能量尺度的微小能量差异(一般指磁各向异性计算的情况)时,需要设置GGA_COMPAT这个参数。现在所有关于坐标轴 (Sx,Sy,Sz)的磁矩都给出来了,我们采用VASP中给出关于这个坐标轴所有磁矩和自旋状量子读写惯例。 这包括INCAR文件中的MAGMOM行,OUTCAR和PROCAR文件中的总和局域磁矩,WAVECAR文件中的类自旋轨道,CHGCAR文件中的磁密度。笛卡尔坐标系中的磁分量由以下等式得到: axisaxismx?cos(?)cos(?)mx?sin(?)my?sin(?)*cos(?)mzaxisaxismy?cos(?)sin(?)mx?cos(?)my?sin(?)sin(?)mzaxis 其中,maxis是外部可见的磁矩值,此处的α是SAXIS矢量(sx, sy, sz)和笛卡尔坐标x轴的夹角,β是SAXIS矢量和笛axismz??sin(?)mx?cos(?)mzaxis??atan卡尔坐标z轴的夹角,sysx,??atan22|sx?sy|sz, 以下等式得到逆变化: maxis?cos(?)cos(?)mx?cos(?)sin(?)my?sin(?)mzxmaxis??sin(?)mx?cos(?)myymaxis?sin(?)cos(?)mx?sin(?)sin(?)my?cos(?)mzz 不难看出,默认值(sx, sy, sz) = (0+,0,1),两个角度都是0,即β=0和α=0。在这种情况下,内部转换简单地等于外部地转换:axisaxisaxismx?mx,my?my,mz?mz,第二种重要的情况,是axismx?0和axismy?0,在这种情况下: 22mx?sin(?)*cos(?)mzaxis?mzaxissz/s2x?sy?szmy?axis22mz?cos(?)mx?mzaxissz/sx?sy?sz2