I’ve encountered this problem several times. During molecular dynamics, the SCF cycles degrades at each iteration, and at some point, the SCF cycle no longer converges for the remaining iterations (see image). However, restarting the molecular dynamics from the last non-converging step stabilizes the cycle for a number of iterations until it starts diverging again. This point to a bug in the code, rather than a physical feature, and it tends to appear in large systems (bulk supercells or 2D slabs with vacuum).
I’ve reported this problem before, and the solution was to disable vectorization when compiling Abinit. This time however, I’m not using any vectorization, and no optimization either. I use Intel compilers with mkl on a Cray XC40 system with Intel Xeon "Haswell" processor nodes. Here are some compilation flags appearing in my config.log file.
Code: Select all
FCFLAGS='-O0 -z muldefs'
FCFLAGS_64BITS=''
FCFLAGS_DEBUG=''
FCFLAGS_EXTRA=''
FCFLAGS_F90=''
FCFLAGS_FIXEDFORM='-fixed'
FCFLAGS_FREEFORM='-free'
FCFLAGS_HINTS='-extend-source -vec-report0 -noaltparam -nofpscomp'
FCFLAGS_MODDIR='-module $(abinit_moddir)'
FCFLAGS_OPENMP=''
FCFLAGS_OPTIM=''
Here attached are input and output files for a "minimal" working example. It is a supercell with 40 atoms. I hope we can track this bug soon, and I'm looking for any work-around you might know of.