I recently encountered problems after updating from the 7 Dec version to the 16 Feb version: upon minimising, I get:
Stopping criterion = search direction is not downhill
which I didn’t get using the old version. I seem to have isolated the problem to the “lj/cut/intel”-style. Without the intel suffix the new version runs fine (as before), with suffix it won’t minimise and exits with ‘lost atoms’.
I recently encountered problems after updating from the 7 Dec version to the
16 Feb version: upon minimising, I get:
Stopping criterion = search direction is not downhill
which I didn't get using the old version. I seem to have isolated the
problem to the "lj/cut/intel"-style. Without the intel suffix the new
version runs fine (as before), with suffix it won't minimise and exits with
'lost atoms'.
can you please test the very latest patch (not just the latest stable
version) as well, and if that fails provide a simple input to
reproduce the issue?
e.g. can you run other bundled examples, e.g. melt with -suffix intel correctly?
Yes, the old version ran fine, with or without the intel suffixes; the new version only runs without intel suffix.
The example scripts seem to run fine; but see a minimal input script that provokes the error in attachment. The problem seems to happen when using ‘random’ initialisation of atoms & minimising. Possibly an overflow due to the mixed/lower precision?
AVX512 that will be on newer intel processors supports fast approximate math functions with higher precision. In the Makefile for these architectures I changed the compiler optimization options and, to avoid unfair performance comparisons, also did this for the intel_cpu architectures (despite the lower precision). This might be causing an issue if you are starting with random high energy configurations.
If you are using the default LAMMPS makefiles, you might remove fp-model fast=2 and no-prec-div optimization options and see if that alleviates the problem.
I will try your input when I have a chance, but I am out of the office most of the week.
Yes. Sorry, I wasn’t thinking clearly when I suggested this as these flags are applied to all of the LAMMPS code, not just in the USER-INTEL package.
The problem is isolated to minimize. It doesn’t have the hook needed for syncing the force arrays used by the USER-INTEL package with the LAMMPS arrays (needed only in the newer versions). I will generate and test a fix today. In the meantime, the intel suffix shouldn’t be used before a minimize command.