首先包含ZHEGV有两种报错:
Warning In EDDRMM: call to ZHEGV failed, returncode = x x x
和
Error In EDDDAV: Call to ZHEGV failed. Returncode = xx
前者是不需要管的:(不太会用论坛,好像无法在正文中间插图) https://www.vasp.at/forum/viewtopic.php?t=17822
回复者:juergen.furthmueller
回复时间:Mon Jul 06, 2020 1:46 pm
It's just a warning (no error). It's actually present in any version of VASP, even in vasp.6
(the only difference is maybe that different compiler optimizations / semantics may sometimes
trigger or sometimes prevent it). Just ignore ... . It occurs if you are very close to machine
accuracy in the RMM-DIIS scheme and single band iteration only results in "random" progress
anymore (due to machine accuracy limits). It says then indirectly to you "could not optimize
this band further" -- and the internal action taken is then simply NOT to update the wave
function further and to proceed with the next band(s). It confused already many people over
many generations and please, could somebody simply comment out these WRITE statements
in rmm-diis.F ... ? (somewhere around lines 510 and 630; "WRITE(IU?,219) IFAIL,ITER,N)")
后者有很多可能原因: https://www.vasp.at/forum/viewtopic.php?t=214
回复者:Administrator
回复时间:Tue Jun 28, 2005 8:42 am
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)
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
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.