Gromacs  2026.0-dev-20250321-66aade4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Enumerations | Functions | Variables
nbnxm_enums.h File Reference
#include "config.h"
+ Include dependency graph for nbnxm_enums.h:
+ This graph shows which files directly or indirectly include this file:

Description

Nbnxm internal enumerations.

Author
Berk Hess hess@.nosp@m.kth..nosp@m.se
Szilárd Páll pall..nosp@m.szil.nosp@m.ard@g.nosp@m.mail.nosp@m..com
Paul Bauer paul..nosp@m.baue.nosp@m.r.q@g.nosp@m.mail.nosp@m..com

Enumerations

enum  gmx::ElecType : int {
  gmx::ElecType::Cut, gmx::ElecType::RF, gmx::ElecType::EwaldTab, gmx::ElecType::EwaldTabTwin,
  gmx::ElecType::EwaldAna, gmx::ElecType::EwaldAnaTwin, gmx::ElecType::Count
}
 Nbnxm electrostatic GPU kernel flavors. More...
 
enum  gmx::VdwType : int {
  gmx::VdwType::Cut, gmx::VdwType::CutCombGeom, gmx::VdwType::CutCombLB, gmx::VdwType::FSwitch,
  gmx::VdwType::PSwitch, gmx::VdwType::EwaldGeom, gmx::VdwType::EwaldLB, gmx::VdwType::Count
}
 Nbnxm VdW GPU kernel flavors. More...
 
enum  gmx::NbnxmKernelType : int {
  NotSet = 0, Cpu4x4_PlainC, Cpu4xN_Simd_4xN, Cpu4xN_Simd_2xNN,
  Gpu8x8x8, Cpu8x8x8_PlainC, Cpu1x1_PlainC, Count
}
 Nonbonded NxN kernel types: plain C, CPU SIMD, GPU, GPU emulation.
 
enum  gmx::EwaldExclusionType : int { NotSet = 0, Table, Analytical, DecidedByGpuModule }
 Ewald exclusion types.
 
enum  gmx::PairlistType : int {
  Simple4x2, Simple4x4, Simple4x8, Hierarchical8x8x8,
  Simple1x1, Count
}
 The available pair list types.
 
enum  gmx::CoulombKernelType : int {
  ReactionField, Table, TableTwin, Ewald,
  EwaldTwin, Count
}
 Kinds of electrostatic treatments in SIMD Verlet kernels.
 
enum  VdwCutoffCheck : int { No, Yes }
 Whether have a separate cut-off check for VDW interactions.
 
enum  LJEwald : int { None, CombGeometric }
 Kind of Lennard-Jones Ewald treatments in NBNxM SIMD kernels.
 
enum  EnergyOutput : int { None, System, GroupPairs }
 What kind of energies are output, whole system or for energy groups.
 

Functions

static constexpr bool gmx::isGpuKernelType (const NbnxmKernelType kernelType)
 
const char * gmx::nbnxmKernelTypeToName (NbnxmKernelType kernelType)
 
static constexpr bool gmx::sc_isGpuSpecificPairlist (const PairlistType pairlistType)
 
static constexpr int gmx::sc_gpuClusterSize (const PairlistType pairlistType)
 The NBNxM GPU i-cluster size in atoms for the given NBNxM GPU kernel layout.
 
static constexpr int gmx::sc_gpuNumClusterPerCellX (const PairlistType pairlistType)
 The number of super clusters in the X dimension.
 
static constexpr int gmx::sc_gpuNumClusterPerCellY (const PairlistType pairlistType)
 The number of super clusters in the X dimension.
 
static constexpr int gmx::sc_gpuNumClusterPerCellZ (const PairlistType pairlistType)
 The number of super clusters in the X dimension.
 
static constexpr int gmx::sc_gpuClusterPerSuperCluster (const PairlistType pairlistType)
 The NBNxM GPU super cluster size according to the kernel layout.
 
static constexpr int gmx::sc_gpuNumClusterPerCell (const PairlistType pairlistType)
 The NBNxM GPU super cluster size according to the kernel layout.
 
static constexpr int gmx::sc_gpuClusterPairSplit (const PairlistType pairlistType)
 The number of sub-parts used for data storage for a GPU cluster pair. More...
 
static constexpr bool gmx::sc_gpuPairlistHasSplitJCluster (const PairlistType pairlistType)
 
static constexpr int gmx::sc_gpuSplitJClusterSize (const PairlistType pairlistType)
 The size of the J clusters on the GPU, after taking pair splitting into account.
 
constexpr int gmx::sc_gpuJgroupSize (const PairlistType pairlistType)
 With GPU kernels we group cluster pairs in 4 to optimize memory usage of integers containing 32 bits.
 
static constexpr int gmx::sc_gpuParallelExecutionWidth (const PairlistType pairlistType)
 Parallel execution width corresponding to the current kernel layout.
 
static constexpr int gmx::sc_gpuExclSize (const PairlistType pairlistType)
 The fixed size of the exclusion mask array for a half GPU cluster pair.
 

Variables

constexpr int gmx::c_numElecTypes = static_cast<int>(ElecType::Count)
 Number of possible ElecType values.
 
constexpr int gmx::c_numVdwTypes = static_cast<int>(VdwType::Count)
 Number of possible VdwType values.
 
constexpr int gmx::detail::c_nbnxnGpuClusterSize = 8
 The i- and j-cluster size for GPU lists, 8 atoms for CUDA, set at configure time for OpenCL and SYCL.
 
static constexpr int gmx::detail::c_nbnxnGpuClusterpairSplit = 2
 The number of sub-parts used for data storage for a GPU cluster pair. More...
 
constexpr int gmx::detail::c_gpuNumClusterPerCellZ = GMX_GPU_NB_NUM_CLUSTER_PER_CELL_Z
 The number of clusters along a direction in a pair-search grid cell for GPU lists. More...
 
constexpr int gmx::detail::c_gpuNumClusterPerCellY = GMX_GPU_NB_NUM_CLUSTER_PER_CELL_Y
 
constexpr int gmx::detail::c_gpuNumClusterPerCellX = GMX_GPU_NB_NUM_CLUSTER_PER_CELL_X