Hi,
Is the USER-INTEL package set up to work with a non-orthogonal simulation box? My LAMMPS version is 12 Dec 2018. I looked in the Manual and did not find anything mentioned under the restrictions section of the documentation for USER-INTEL package.
why not just run a test and see if you can reproduce the results from a run with the equivalent non-USER-INTEL styles?
you should also upgrade to a newer LAMMPS version, since there have been multiple bugfixes and corrections styles and compiler settings since the version you are using.
axel.
Thanks Axel for the reply. I had tried running equivalent simulations and have been seeing issues. When running with USER-INTEL, the energy/stresses reported by LAMMPS is significantly different depending on whether the box is defined as triclinic (with zero tilts) or as orthorhombic. I.e., just adding the command “change_box all triclinic” to the script changes the reported energy/stresses when running with USER-INTEL. The energy/stresses agrees with the equivalent non-USER-INTEL run when the box has no tilts. Attached is a minimal script to reproduce this (comment/un-comment the line “change_box all triclinic”).
I am using the lammps module available on the NERSC Cori KNL (module load lammps/2018.12.12-knl) and I am running in double precision mode. I invoke the USER-INTEL using the command-line switch (srun -n 68 lmp_cori -in test.in -pk intel 0 mode double -sf intel)
I will try upgrading to a newer LAMMPS version, but wanted to make sure that non-orthogonal boxes are supported in the USER-INTEL package.
test.in (456 Bytes)
Hi Nithin,
Thanks for sending a reproducer. I will take a look. It might be a few days…
Best, - Mike
Hi Nithin,
This is indeed a bug. I expect the fix (https://github.com/lammps/lammps/pull/1813) should be in LAMMPS soon, but you can also edit src/USER-INTEL/npair_intel.cpp in the
Dec 2018 version by changing the two lines prefixed with the ‘-‘ to the lines prefixed with the ‘+’:
diff --git a/src/USER-INTEL/npair_intel.cpp b/src/USER-INTEL/npair_intel.cpp
index a82d3f2…4256e03 100644
— a/src/USER-INTEL/npair_intel.cpp
+++ b/src/USER-INTEL/npair_intel.cpp
@@ -360,7 +360,7 @@ void NPairIntel::bin_newton(const int offload, NeighList *list,
if (THREE) ttag[u] = tag[j];
}
- if (FULL == 0 || TRI == 1) {
- if (FULL == 0 && TRI != 1) {
icount = 0;
istart = ncount;
IP_PRE_edge_align(istart, sizeof(int));
@@ -392,7 +392,7 @@ void NPairIntel::bin_newton(const int offload, NeighList *list,
// ---------------------- Loop over i bin
int n = 0;
- if (FULL == 0 || TRI == 1) {
- if (FULL == 0 && TRI != 1) {
#if defined(LMP_SIMD_COMPILER)
#pragma vector aligned
#pragma ivdep
Thanks Michael, for the patch. I rebuilt my 2018 LAMMPS with the patch and it has fixed the issue.
Best,