Gromacs  2025-dev-20240612-66cb22e
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Typedefs | Enumerations | Functions
kernel_common.h File Reference
#include "gromacs/math/vectypes.h"
#include "gromacs/nbnxm/atomdata.h"
#include "gromacs/utility/real.h"
#include "pairlist.h"
+ Include dependency graph for kernel_common.h:
+ This graph shows which files directly or indirectly include this file:

Description

Declares the nbnxm pair interaction kernel function types and kind counts, also declares utility functions used in nbnxm_kernel.cpp.

Author
Berk Hess hess@.nosp@m.kth..nosp@m.se

Typedefs

typedef void( NbnxmKernelFunc )(const NbnxnPairlistCpu *nbl, const nbnxn_atomdata_t *nbat, const interaction_const_t *ic, const rvec *shift_vec, nbnxn_atomdata_output_t *out)
 Pair-interaction kernel type that also calculates energies.
 

Enumerations

enum  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 }
 
enum  {
  vdwktLJCUT_COMBGEOM, vdwktLJCUT_COMBLB, vdwktLJCUT_COMBNONE, vdwktLJFORCESWITCH,
  vdwktLJPOTSWITCH, vdwktLJEWALDCOMBGEOM, vdwktLJEWALDCOMBLB, vdwktNR = vdwktLJEWALDCOMBLB,
  vdwktNR_ref
}
 Kinds of Van der Waals treatments in NBNxM SIMD kernels. More...
 

Functions

CoulombKernelType getCoulombKernelType (Nbnxm::EwaldExclusionType ewaldExclusionType, CoulombInteractionType coulombInteractionType, bool haveEqualCoulombVwdRadii)
 Lookup function for Coulomb kernel type.
 
int getVdwKernelType (Nbnxm::KernelType kernelType, LJCombinationRule ljCombinationRule, VanDerWaalsType vanDerWaalsType, InteractionModifiers interactionModifiers, LongRangeVdW longRangeVdW)
 Lookup function for Vdw kernel type.
 
void clear_fshift (real *fshift)
 Clears the shift forces.
 
void reduce_energies_over_lists (const nbnxn_atomdata_t *nbat, int nlist, real *Vvdw, real *Vc)
 Reduces the collected energy terms over the pair-lists/threads.
 

Enumeration Type Documentation

anonymous enum

Kinds of Van der Waals treatments in NBNxM SIMD kernels.

The LJCUT_COMB refers to the LJ combination rule for the short range. The EWALDCOMB refers to the combination rule for the grid part. vdwktNR is the number of VdW treatments for the SIMD kernels. vdwktNR_ref is the number of VdW treatments for the C reference kernels. These two numbers differ, because currently only the reference kernels support LB combination rules for the LJ-Ewald grid part.