Gromacs
2025-dev-20240508-5d2129b
|
#include "gromacs/math/vectypes.h"
#include "gromacs/nbnxm/atomdata.h"
#include "gromacs/utility/real.h"
#include "pairlist.h"
Declares the nbnxm pair interaction kernel function types and kind counts, also declares utility functions used in nbnxm_kernel.cpp.
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. | |
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.