From 1fc2eb1e3e4bea2f857f334b485c797e2a0a788e Mon Sep 17 00:00:00 2001 From: Steve Plimpton <sjplimp@sandia.gov> Date: Wed, 21 Jun 2017 15:12:51 -0600 Subject: [PATCH] fix issue with rRESPA inner/middle neighbor lists --- doc/src/compute_pair_local.txt | 4 +++- doc/src/compute_property_local.txt | 3 +++ doc/src/run_style.txt | 4 ++-- src/neighbor.cpp | 4 +++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/doc/src/compute_pair_local.txt b/doc/src/compute_pair_local.txt index 0121210994..16aaba4667 100644 --- a/doc/src/compute_pair_local.txt +++ b/doc/src/compute_pair_local.txt @@ -76,7 +76,9 @@ command for the types of the two atoms is used. For the {radius} setting, the sum of the radii of the two particles is used as a cutoff. For example, this is appropriate for granular particles which only interact when they are overlapping, as computed by "granular pair -styles"_pair_gran.txt. +styles"_pair_gran.txt. Note that if a granular model defines atom +types such that all particles of a specific type are monodisperse +(same diameter), then the two settings are effectively identical. Note that as atoms migrate from processor to processor, there will be no consistent ordering of the entries within the local vector or array diff --git a/doc/src/compute_property_local.txt b/doc/src/compute_property_local.txt index f7851e864b..39106a39c8 100644 --- a/doc/src/compute_property_local.txt +++ b/doc/src/compute_property_local.txt @@ -79,6 +79,9 @@ the two atoms is used. For the {radius} setting, the sum of the radii of the two particles is used as a cutoff. For example, this is appropriate for granular particles which only interact when they are overlapping, as computed by "granular pair styles"_pair_gran.html. +Note that if a granular model defines atom types such that all +particles of a specific type are monodisperse (same diameter), then +the two settings are effectively identical. If the inputs are bond, angle, etc attributes, the local data is generated by looping over all the atoms owned on a processor and diff --git a/doc/src/run_style.txt b/doc/src/run_style.txt index 0e3c1a939f..a67899420b 100644 --- a/doc/src/run_style.txt +++ b/doc/src/run_style.txt @@ -17,7 +17,7 @@ style = {verlet} or {verlet/split} or {respa} or {respa/omp} :ulb,l {verlet/split} args = none {respa} args = N n1 n2 ... keyword values ... N = # of levels of rRESPA - n1, n2, ... = loop factor between rRESPA levels (N-1 values) + n1, n2, ... = loop factors between rRESPA levels (N-1 values) zero or more keyword/value pairings may be appended to the loop factors keyword = {bond} or {angle} or {dihedral} or {improper} or {pair} or {inner} or {middle} or {outer} or {hybrid} or {kspace} @@ -55,7 +55,7 @@ style = {verlet} or {verlet/split} or {respa} or {respa/omp} :ulb,l run_style verlet run_style respa 4 2 2 2 bond 1 dihedral 2 pair 3 kspace 4 -run_style respa 4 2 2 2 bond 1 dihedral 2 inner 3 5.0 6.0 outer 4 kspace 4 :pre +run_style respa 4 2 2 2 bond 1 dihedral 2 inner 3 5.0 6.0 outer 4 kspace 4 run_style respa 3 4 2 bond 1 hybrid 2 2 1 kspace 3 :pre [Description:] diff --git a/src/neighbor.cpp b/src/neighbor.cpp index 60b1bc7ee0..487b860c92 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -1268,9 +1268,11 @@ void Neighbor::morph_copy() if (irq->ghost && !jrq->ghost) continue; - // do not copy from a history list + // do not copy from a history list or a respa middle/inner list if (jrq->history) continue; + if (jrq->respamiddle) continue; + if (jrq->respainner) continue; // these flags must be same, // else 2 lists do not store same pairs -- GitLab