Gromacs
2026.0-dev-20250321-66aade4
|
#include "config.h"
Nbnxm internal enumerations.
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 |