- pairlistSet(iLocality).constructPairlists(pairSearch->gridSet(), pairSearch->work(), nbat,
- exclusions, minimumIlistCountForGpuBalancing_, nrnb,
+ const auto& gridSet = pairSearch->gridSet();
+ const auto* ddZones = gridSet.domainSetup().zones;
+
+ /* The Nbnxm code can also work with more exclusions than those in i-zones only
+ * when using DD, but the equality check can catch more issues.
+ */
+ GMX_RELEASE_ASSERT(
+ exclusions.empty() || (!ddZones && exclusions.ssize() == gridSet.numRealAtomsTotal())
+ || (ddZones && exclusions.ssize() == ddZones->cg_range[ddZones->iZones.size()]),
+ "exclusions should either be empty or the number of lists should match the number of "
+ "local i-atoms");
+
+ pairlistSet(iLocality).constructPairlists(gridSet, pairSearch->work(), nbat, exclusions,
+ minimumIlistCountForGpuBalancing_, nrnb,