From e1362e9a6189d3a9101e8bb7dc14df56f6d976a0 Mon Sep 17 00:00:00 2001 From: "Jibril B. Coulibaly" <43829860+jibril-b-coulibaly@users.noreply.github.com> Date: Mon, 18 May 2020 17:13:46 -0500 Subject: [PATCH] Correct ghost atom access out of bounds bug in fix adapt --- src/fix_adapt.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/fix_adapt.cpp b/src/fix_adapt.cpp index f241d4ea36..1f89697e12 100644 --- a/src/fix_adapt.cpp +++ b/src/fix_adapt.cpp @@ -268,8 +268,9 @@ void FixAdapt::post_constructor() double *radius = atom->radius; int *mask = atom->mask; int nlocal = atom->nlocal; + int nall = nlocal + atom->nghost; - for (int i = 0; i < nlocal; i++) { + for (int i = 0; i < nall; i++) { if (mask[i] & groupbit) vec[i] = radius[i]; else vec[i] = 0.0; } @@ -291,8 +292,9 @@ void FixAdapt::post_constructor() double *q = atom->q; int *mask = atom->mask; int nlocal = atom->nlocal; + int nall = nlocal + atom->nghost; - for (int i = 0; i < nlocal; i++) { + for (int i = 0; i < nall; i++) { if (mask[i] & groupbit) vec[i] = q[i]; else vec[i] = 0.0; } @@ -679,8 +681,9 @@ void FixAdapt::restore_settings() double *rmass = atom->rmass; int *mask = atom->mask; int nlocal = atom->nlocal; + int nall = nlocal + atom->nghost; - for (int i = 0; i < nlocal; i++) + for (int i = 0; i < nall; i++) if (mask[i] & groupbit) { if(discflag) density = rmass[i] / (MY_PI * radius[i]*radius[i]); else density = rmass[i] / (4.0*MY_PI/3.0 * @@ -696,8 +699,9 @@ void FixAdapt::restore_settings() double *q = atom->q; int *mask = atom->mask; int nlocal = atom->nlocal; + int nall = nlocal + atom->nghost; - for (int i = 0; i < nlocal; i++) + for (int i = 0; i < nall; i++) if (mask[i] & groupbit) q[i] = vec[i]; } }