From 02b0fb454f7adbb412ea3d2fd7d324ff5004446b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 17 Jul 2019 16:34:43 -0400 Subject: [PATCH] include rmass[] in border communication. will otherwise trigger issues with fix shake. --- src/PERI/atom_vec_peri.cpp | 11 ++++++++++- src/atom_vec_ellipsoid.cpp | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/PERI/atom_vec_peri.cpp b/src/PERI/atom_vec_peri.cpp index 64ce323a3f..c4fa0bd43b 100644 --- a/src/PERI/atom_vec_peri.cpp +++ b/src/PERI/atom_vec_peri.cpp @@ -55,7 +55,7 @@ AtomVecPeri::AtomVecPeri(LAMMPS *lmp) : AtomVec(lmp) comm_f_only = 1; size_forward = 4; size_reverse = 3; - size_border = 11; + size_border = 12; size_velocity = 3; size_data_atom = 7; size_data_vel = 4; @@ -357,6 +357,7 @@ int AtomVecPeri::pack_border(int n, int *list, double *buf, buf[m++] = ubuf(type[j]).d; buf[m++] = ubuf(mask[j]).d; buf[m++] = vfrac[j]; + buf[m++] = rmass[j]; buf[m++] = s0[j]; buf[m++] = x0[j][0]; buf[m++] = x0[j][1]; @@ -381,6 +382,7 @@ int AtomVecPeri::pack_border(int n, int *list, double *buf, buf[m++] = ubuf(type[j]).d; buf[m++] = ubuf(mask[j]).d; buf[m++] = vfrac[j]; + buf[m++] = rmass[j]; buf[m++] = s0[j]; buf[m++] = x0[j][0]; buf[m++] = x0[j][1]; @@ -414,6 +416,7 @@ int AtomVecPeri::pack_border_vel(int n, int *list, double *buf, buf[m++] = ubuf(type[j]).d; buf[m++] = ubuf(mask[j]).d; buf[m++] = vfrac[j]; + buf[m++] = rmass[j]; buf[m++] = s0[j]; buf[m++] = x0[j][0]; buf[m++] = x0[j][1]; @@ -442,6 +445,7 @@ int AtomVecPeri::pack_border_vel(int n, int *list, double *buf, buf[m++] = ubuf(type[j]).d; buf[m++] = ubuf(mask[j]).d; buf[m++] = vfrac[j]; + buf[m++] = rmass[j]; buf[m++] = s0[j]; buf[m++] = x0[j][0]; buf[m++] = x0[j][1]; @@ -463,6 +467,7 @@ int AtomVecPeri::pack_border_vel(int n, int *list, double *buf, buf[m++] = ubuf(type[j]).d; buf[m++] = ubuf(mask[j]).d; buf[m++] = vfrac[j]; + buf[m++] = rmass[j]; buf[m++] = s0[j]; buf[m++] = x0[j][0]; buf[m++] = x0[j][1]; @@ -497,6 +502,7 @@ int AtomVecPeri::pack_border_hybrid(int n, int *list, double *buf) for (i = 0; i < n; i++) { j = list[i]; buf[m++] = vfrac[j]; + buf[m++] = rmass[j]; buf[m++] = s0[j]; buf[m++] = x0[j][0]; buf[m++] = x0[j][1]; @@ -522,6 +528,7 @@ void AtomVecPeri::unpack_border(int n, int first, double *buf) type[i] = (int) ubuf(buf[m++]).i; mask[i] = (int) ubuf(buf[m++]).i; vfrac[i] = buf[m++]; + rmass[i] = buf[m++]; s0[i] = buf[m++]; x0[i][0] = buf[m++]; x0[i][1] = buf[m++]; @@ -551,6 +558,7 @@ void AtomVecPeri::unpack_border_vel(int n, int first, double *buf) type[i] = (int) ubuf(buf[m++]).i; mask[i] = (int) ubuf(buf[m++]).i; vfrac[i] = buf[m++]; + rmass[i] = buf[m++]; s0[i] = buf[m++]; x0[i][0] = buf[m++]; x0[i][1] = buf[m++]; @@ -576,6 +584,7 @@ int AtomVecPeri::unpack_border_hybrid(int n, int first, double *buf) last = first + n; for (i = first; i < last; i++) { vfrac[i] = buf[m++]; + rmass[i] = buf[m++]; s0[i] = buf[m++]; x0[i][0] = buf[m++]; x0[i][1] = buf[m++]; diff --git a/src/atom_vec_ellipsoid.cpp b/src/atom_vec_ellipsoid.cpp index 455e4f192f..7bb29bd6bc 100644 --- a/src/atom_vec_ellipsoid.cpp +++ b/src/atom_vec_ellipsoid.cpp @@ -41,7 +41,7 @@ AtomVecEllipsoid::AtomVecEllipsoid(LAMMPS *lmp) : AtomVec(lmp) comm_x_only = comm_f_only = 0; size_forward = 7; size_reverse = 6; - size_border = 14; + size_border = 15; size_velocity = 6; size_data_atom = 7; size_data_vel = 7; @@ -544,6 +544,7 @@ int AtomVecEllipsoid::pack_border(int n, int *list, double *buf, buf[m++] = ubuf(tag[j]).d; buf[m++] = ubuf(type[j]).d; buf[m++] = ubuf(mask[j]).d; + buf[m++] = rmass[j]; if (ellipsoid[j] < 0) buf[m++] = ubuf(0).d; else { buf[m++] = ubuf(1).d; @@ -576,6 +577,7 @@ int AtomVecEllipsoid::pack_border(int n, int *list, double *buf, buf[m++] = ubuf(tag[j]).d; buf[m++] = ubuf(type[j]).d; buf[m++] = ubuf(mask[j]).d; + buf[m++] = rmass[j]; if (ellipsoid[j] < 0) buf[m++] = ubuf(0).d; else { buf[m++] = ubuf(1).d; @@ -618,6 +620,7 @@ int AtomVecEllipsoid::pack_border_vel(int n, int *list, double *buf, buf[m++] = ubuf(tag[j]).d; buf[m++] = ubuf(type[j]).d; buf[m++] = ubuf(mask[j]).d; + buf[m++] = rmass[j]; if (ellipsoid[j] < 0) buf[m++] = ubuf(0).d; else { buf[m++] = ubuf(1).d; @@ -657,6 +660,7 @@ int AtomVecEllipsoid::pack_border_vel(int n, int *list, double *buf, buf[m++] = ubuf(tag[j]).d; buf[m++] = ubuf(type[j]).d; buf[m++] = ubuf(mask[j]).d; + buf[m++] = rmass[j]; if (ellipsoid[j] < 0) buf[m++] = ubuf(0).d; else { buf[m++] = ubuf(1).d; @@ -689,6 +693,7 @@ int AtomVecEllipsoid::pack_border_vel(int n, int *list, double *buf, buf[m++] = ubuf(tag[j]).d; buf[m++] = ubuf(type[j]).d; buf[m++] = ubuf(mask[j]).d; + buf[m++] = rmass[j]; if (ellipsoid[j] < 0) buf[m++] = ubuf(0).d; else { buf[m++] = ubuf(1).d; @@ -735,6 +740,7 @@ int AtomVecEllipsoid::pack_border_hybrid(int n, int *list, double *buf) m = 0; for (i = 0; i < n; i++) { j = list[i]; + buf[m++] = rmass[j]; if (ellipsoid[j] < 0) buf[m++] = ubuf(0).d; else { buf[m++] = ubuf(1).d; @@ -769,6 +775,7 @@ void AtomVecEllipsoid::unpack_border(int n, int first, double *buf) tag[i] = (tagint) ubuf(buf[m++]).i; type[i] = (int) ubuf(buf[m++]).i; mask[i] = (int) ubuf(buf[m++]).i; + rmass[i] = buf[m++]; ellipsoid[i] = (int) ubuf(buf[m++]).i; if (ellipsoid[i] == 0) ellipsoid[i] = -1; else { @@ -812,6 +819,7 @@ void AtomVecEllipsoid::unpack_border_vel(int n, int first, double *buf) tag[i] = (tagint) ubuf(buf[m++]).i; type[i] = (int) ubuf(buf[m++]).i; mask[i] = (int) ubuf(buf[m++]).i; + rmass[i] = buf[m++]; ellipsoid[i] = (int) ubuf(buf[m++]).i; if (ellipsoid[i] == 0) ellipsoid[i] = -1; else { @@ -854,6 +862,7 @@ int AtomVecEllipsoid::unpack_border_hybrid(int n, int first, double *buf) m = 0; last = first + n; for (i = first; i < last; i++) { + rmass[i] = buf[m++]; ellipsoid[i] = (int) ubuf(buf[m++]).i; if (ellipsoid[i] == 0) ellipsoid[i] = -1; else {