alternate fix for tag caching issue in INTEL package
This commit is contained in:
@ -447,7 +447,7 @@ void FixIntel::pair_init_check(const bool cdmessage)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
int need_tag = 0;
|
int need_tag = 0;
|
||||||
if (atom->molecular != Atom::ATOMIC) need_tag = 1;
|
if (atom->molecular != Atom::ATOMIC || three_body_neighbor()) need_tag = 1;
|
||||||
|
|
||||||
// Clear buffers used for pair style
|
// Clear buffers used for pair style
|
||||||
char kmode[80];
|
char kmode[80];
|
||||||
|
|||||||
@ -207,8 +207,6 @@ void IntelBuffers<flt_t, acc_t>::free_nmax()
|
|||||||
template <class flt_t, class acc_t>
|
template <class flt_t, class acc_t>
|
||||||
void IntelBuffers<flt_t, acc_t>::_grow_nmax(const int offload_end)
|
void IntelBuffers<flt_t, acc_t>::_grow_nmax(const int offload_end)
|
||||||
{
|
{
|
||||||
if (lmp->atom->molecular) _need_tag = 1;
|
|
||||||
else _need_tag = 0;
|
|
||||||
#ifdef _LMP_INTEL_OFFLOAD
|
#ifdef _LMP_INTEL_OFFLOAD
|
||||||
free_nmax();
|
free_nmax();
|
||||||
int size = lmp->atom->nmax;
|
int size = lmp->atom->nmax;
|
||||||
|
|||||||
@ -309,6 +309,7 @@ void NPairIntel::bin_newton(const int offload, NeighList *list,
|
|||||||
flt_t * _noalias const tz = ncachez + toffs;
|
flt_t * _noalias const tz = ncachez + toffs;
|
||||||
int * _noalias const tj = ncachej + toffs;
|
int * _noalias const tj = ncachej + toffs;
|
||||||
int * _noalias const tjtype = ncachejtype + toffs;
|
int * _noalias const tjtype = ncachejtype + toffs;
|
||||||
|
tagint * _noalias const ttag = ncachetag + toffs;
|
||||||
|
|
||||||
flt_t * _noalias itx;
|
flt_t * _noalias itx;
|
||||||
flt_t * _noalias ity;
|
flt_t * _noalias ity;
|
||||||
@ -365,6 +366,7 @@ void NPairIntel::bin_newton(const int offload, NeighList *list,
|
|||||||
ty[u] = x[j].y;
|
ty[u] = x[j].y;
|
||||||
tz[u] = x[j].z;
|
tz[u] = x[j].z;
|
||||||
tjtype[u] = x[j].w;
|
tjtype[u] = x[j].w;
|
||||||
|
if (THREE) ttag[u] = tag[j];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (FULL == 0 && TRI != 1) {
|
if (FULL == 0 && TRI != 1) {
|
||||||
@ -512,7 +514,7 @@ void NPairIntel::bin_newton(const int offload, NeighList *list,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (THREE) {
|
if (THREE) {
|
||||||
const tagint jtag = tag[j];
|
const tagint jtag = ttag[u];
|
||||||
int flist = 0;
|
int flist = 0;
|
||||||
if (itag > jtag) {
|
if (itag > jtag) {
|
||||||
if (((itag+jtag) & 1) == 0) flist = 1;
|
if (((itag+jtag) & 1) == 0) flist = 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user