#include "gromacs/nbnxm/nbnxm.h"
#include "gromacs/nbnxm/pairlist.h"
-#include "gromacs/simd/simd.h"
#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/real.h"
-bool nbnxn_kernel_pairlist_simple(int nb_kernel_type)
-{
- if (nb_kernel_type == nbnxnkNotSet)
- {
- gmx_fatal(FARGS, "Non-bonded kernel type not set for Verlet-style pair-list.");
- }
-
- switch (nb_kernel_type)
- {
- case nbnxnk8x8x8_GPU:
- case nbnxnk8x8x8_PlainC:
- return false;
-
- case nbnxnk4x4_PlainC:
- case nbnxnk4xN_SIMD_4xN:
- case nbnxnk4xN_SIMD_2xNN:
- return true;
-
- default:
- gmx_incons("Invalid nonbonded kernel type passed!");
- return false;
- }
-}
-
-int nbnxn_kernel_to_cluster_i_size(int nb_kernel_type)
-{
- switch (nb_kernel_type)
- {
- case nbnxnk4x4_PlainC:
- case nbnxnk4xN_SIMD_4xN:
- case nbnxnk4xN_SIMD_2xNN:
- return c_nbnxnCpuIClusterSize;
- case nbnxnk8x8x8_GPU:
- case nbnxnk8x8x8_PlainC:
- /* The cluster size for super/sub lists is only set here.
- * Any value should work for the pair-search and atomdata code.
- * The kernels, of course, might require a particular value.
- */
- return c_nbnxnGpuClusterSize;
- default:
- gmx_incons("unknown kernel type");
- }
-}
-
-int nbnxn_kernel_to_cluster_j_size(int nb_kernel_type)
-{
- int nbnxn_simd_width = 0;
- int cj_size = 0;
-
-#if GMX_SIMD
- nbnxn_simd_width = GMX_SIMD_REAL_WIDTH;
-#endif
-
- switch (nb_kernel_type)
- {
- case nbnxnk4x4_PlainC:
- cj_size = c_nbnxnCpuIClusterSize;
- break;
- case nbnxnk4xN_SIMD_4xN:
- cj_size = nbnxn_simd_width;
- break;
- case nbnxnk4xN_SIMD_2xNN:
- cj_size = nbnxn_simd_width/2;
- break;
- case nbnxnk8x8x8_GPU:
- case nbnxnk8x8x8_PlainC:
- cj_size = nbnxn_kernel_to_cluster_i_size(nb_kernel_type);
- break;
- default:
- gmx_incons("unknown kernel type");
- }
-
- return cj_size;
-}
-
/* Clusters at the cut-off only increase rlist by 60% of their size */
static constexpr real c_nbnxnRlistIncreaseOutsideFactor = 0.6;