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