Gromacs  2020.4
 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/utility/real.h"
#include "atomdata.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( nbk_func_ener )(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.
 
typedef nbk_func_enerp_nbk_func_ener
 Pointer to nbk_func_ener.
 
typedef void( nbk_func_noener )(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 does not calculates energies.
 
typedef nbk_func_noenerp_nbk_func_noener
 Pointer to nbk_func_noener.
 

Enumerations

enum  {
  coulktRF, coulktTAB, coulktTAB_TWIN, coulktEWALD,
  coulktEWALD_TWIN, coulktNR
}
 Kinds of electrostatic treatments in SIMD Verlet kernels.
 
enum  {
  vdwktLJCUT_COMBGEOM, vdwktLJCUT_COMBLB, vdwktLJCUT_COMBNONE, vdwktLJFORCESWITCH,
  vdwktLJPOTSWITCH, vdwktLJEWALDCOMBGEOM, vdwktLJEWALDCOMBLB, vdwktNR = vdwktLJEWALDCOMBLB,
  vdwktNR_ref
}
 Kinds of Van der Waals treatments in SIMD Verlet kernels. More...
 

Functions

void clearForceBuffer (nbnxn_atomdata_t *nbat, int outputIndex)
 Clears the force buffer. More...
 
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 SIMD Verlet 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.

Function Documentation

void clearForceBuffer ( nbnxn_atomdata_t *  nbat,
int  outputIndex 
)

Clears the force buffer.

Either the whole buffer is cleared or only the parts used by thread/task outputIndex when nbat->bUseBufferFlags is set.

Parameters
[in,out]nbatThe Nbnxm atom data
[in]outputIndexThe index of the output object to clear