Convert nbnxn_pairlist_set_t to class PairlistSet
[alexxy/gromacs.git] / src / gromacs / nbnxm / prunekerneldispatch.cpp
index 15f84465b20a5bd2732307f4ec07865fa3d226f4..a1beaf2ac9d177b667c46f041165b6e937b68651 100644 (file)
 #include "kernels_simd_2xmm/kernel_prune.h"
 #include "kernels_simd_4xm/kernel_prune.h"
 
-
 void
 nonbonded_verlet_t::PairlistSets::dispatchPruneKernel(const Nbnxm::InteractionLocality  iLocality,
                                                       const nbnxn_atomdata_t           *nbat,
                                                       const rvec                       *shift_vec,
                                                       const Nbnxm::KernelType           kernelType)
 {
-    nbnxn_pairlist_set_t *nbl_lists  = &pairlistSet(iLocality);
+    pairlistSet(iLocality).dispatchPruneKernel(nbat, shift_vec, kernelType);
+}
 
-    const real            rlistInner = nbl_lists->params.rlistInner;
+void
+PairlistSet::dispatchPruneKernel(const nbnxn_atomdata_t  *nbat,
+                                 const rvec              *shift_vec,
+                                 const Nbnxm::KernelType  kernelType)
+{
+    const real rlistInner = params_.rlistInner;
 
-    GMX_ASSERT(nbl_lists->nbl[0]->ciOuter.size() >= nbl_lists->nbl[0]->ci.size(),
+    GMX_ASSERT(cpuLists_[0].ciOuter.size() >= cpuLists_[0].ci.size(),
                "Here we should either have an empty ci list or ciOuter should be >= ci");
 
     int gmx_unused nthreads = gmx_omp_nthreads_get(emntNonbonded);
+    GMX_ASSERT(nthreads == static_cast<gmx::index>(cpuLists_.size()),
+               "The number of threads should match the number of lists");
 #pragma omp parallel for schedule(static) num_threads(nthreads)
-    for (int i = 0; i < nbl_lists->nnbl; i++)
+    for (int i = 0; i < nthreads; i++)
     {
-        NbnxnPairlistCpu *nbl = nbl_lists->nbl[i];
+        NbnxnPairlistCpu *nbl = &cpuLists_[i];
 
         switch (kernelType)
         {