Gromacs  2018.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Macros | Typedefs | Enumerations | Functions
#include <memory>
#include "gromacs/mdlib/nbnxn_gpu_types.h"
#include "gromacs/mdlib/nbnxn_pairlist.h"
+ Include dependency graph for nb_verlet.h:

Description

This file contains the public interface of the non-bonded Verlet module that implements the NxN cluster non-bonded algorithm to efficiently compute pair forces.

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

Classes

struct  nonbonded_verlet_group_t
 Non-bonded interaction group data structure. More...
 
struct  nonbonded_verlet_t
 Top-level non-bonded data structure for the Verlet-type cut-off scheme. More...
 

Macros

#define LOCAL_A(x)   ((x) == eatLocal)
 Tests for local atom range.
 
#define NONLOCAL_A(x)   ((x) == eatNonlocal)
 Tests for non-local atom range.
 
#define LOCAL_OR_NONLOCAL_A(x)   (LOCAL_A(x) || NONLOCAL_A(x))
 Tests for either local or non-local atom range.
 
#define LOCAL_I(x)   ((x) == eintLocal)
 Tests for local interaction indicator.
 
#define NONLOCAL_I(x)   ((x) == eintNonlocal)
 Tests for non-local interaction indicator.
 

Typedefs

typedef struct
nonbonded_verlet_group_t 
nonbonded_verlet_group_t
 Non-bonded interaction group data structure.
 
typedef struct nonbonded_verlet_t nonbonded_verlet_t
 Top-level non-bonded data structure for the Verlet-type cut-off scheme.
 

Enumerations

enum  EmulateGpuNonbonded : bool { EmulateGpuNonbonded::No, EmulateGpuNonbonded::Yes }
 Help pass GPU-emulation parameters with type safety. More...
 
enum  nbnxn_kernel_type {
  nbnxnkNotSet = 0, nbnxnk4x4_PlainC, nbnxnk4xN_SIMD_4xN, nbnxnk4xN_SIMD_2xNN,
  nbnxnk8x8x8_GPU, nbnxnk8x8x8_PlainC, nbnxnkNR
}
 Nonbonded NxN kernel types: plain C, CPU SIMD, GPU, GPU emulation.
 
enum  { ewaldexclTable, ewaldexclAnalytical }
 Ewald exclusion types.
 
enum  { eatLocal = 0, eatNonlocal = 1, eatAll }
 Atom locality indicator: local, non-local, all. More...
 
enum  { eintLocal = 0, eintNonlocal = 1 }
 Interaction locality indicator. More...
 
enum  { enbvClearFNo, enbvClearFYes }
 Flag to tell the nonbonded kernels whether to clear the force output buffers.
 

Functions

const char * lookup_nbnxn_kernel_name (int kernel_type)
 Return a string identifying the kernel type. More...
 
gmx_bool usingGpu (nonbonded_verlet_t *nbv)
 Getter for bUseGPU.
 

Enumeration Type Documentation

anonymous enum

Atom locality indicator: local, non-local, all.

Used for calls to: gridding, pair-search, force calculation, x/f buffer operations

anonymous enum

Interaction locality indicator.

Used in pair-list search/calculations in the following manner:

  • local interactions require local atom data and affect local output only;
  • non-local interactions require both local and non-local atom data and affect both local- and non-local output.
enum EmulateGpuNonbonded : bool
strong

Help pass GPU-emulation parameters with type safety.

Enumerator
No 

Do not emulate GPUs.

Yes 

Do emulate GPUs.

Function Documentation

const char* lookup_nbnxn_kernel_name ( int  kernel_type)

Return a string identifying the kernel type.

Parameters
[in]kernel_typenonbonded kernel types, takes values from the nbnxn_kernel_type enum
Returns
a string identifying the kernel corresponding to the type passed as argument