Gromacs  2025.0-dev-20241011-013a99c
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Files
Non-bonded pair interactions
+ Collaboration diagram for Non-bonded pair interactions:

Description

Implements non-bonded pair interaction functionality for NxM atom clusters.

This module provides methods to, very efficiently, compute non-bonded pair interactions on CPUs as well as accelerators. It also provides a method to construct the NxM atom-cluster pair-list required for computing these non-bonded iteractions.

Files

file  atomdata.h
 Functionality for per-atom data in the nbnxm module.
 
file  bench_coords.h
 This file defines a box with 1000 SPC/E water molecules for use in benchmarks.
 
file  bench_setup.cpp
 This file defines functions for setting up kernel benchmarks.
 
file  bench_setup.h
 This file declares functions for setting up kernel benchmarks.
 
file  bench_system.cpp
 This file defines functions for setting up a benchmark system.
 
file  bench_system.h
 This file declares functions for setting up a benchmark system.
 
file  boundingbox.h
 Declares and defines the BoundingBox class.
 
file  boundingbox_simd.h
 Declares sizes and boolean macros for bouding boxes handled with SIMD code.
 
file  boundingboxdistance.h
 Declares and defines functions for computing distances between bounding boxes.
 
file  clusterdistancekerneltype.h
 Declares the ClusterDistanceKernelType enum.
 
file  nbnxm_cuda.h
 Declares nbnxn cuda cache and texture helper functions.
 
file  nbnxm_cuda_types.h
 Data types used internally in the nbnxn_cuda module.
 
file  exclusionchecker.cpp
 This file defines functions to reduce and check exclusion counts.
 
file  exclusionchecker.h
 This file declares functionality for checking whether all exclusions are present in the pairlist.
 
file  freeenergydispatch.h
 Declares the free-energy kernel dispatch class.
 
file  gpu_common.h
 Common functions for the different NBNXN GPU implementations.
 
file  gpu_common_utils.h
 Implements common util routines for different NBNXN GPU implementations.
 
file  gpu_data_mgmt.h
 Declare interface for GPU data transfer for NBNXN module.
 
file  gpu_jit_support.h
 Declares functions that support JIT compilation (e.g. for OpenCL)
 
file  gpu_types_common.h
 Implements common internal types for different NBNXN GPU implementations.
 
file  grid.cpp
 Implements the Grid class.
 
file  grid.h
 Declares the Grid class.
 
file  gridset.cpp
 Implements the GridSet class.
 
file  gridset.h
 Declares the GridSet class.
 
file  gridsetdata.h
 Declares the GridSetData struct which holds grid data that is shared over all grids.
 
file  nbnxm_hip.cpp
 Data management and kernel launch functions for nbnxm hip.
 
file  nbnxm_hip_kernel.cpp
 NBNXM HIP kernels.
 
file  nbnxm_hip_kernel.h
 Declares nbnxn hip helper functions.
 
file  nbnxm_hip_kernel_body.h
 NBNXM HIP kernels.
 
file  nbnxm_hip_kernel_body_f_noprune.cpp
 Explicitly instantiate NBNXM HIP kernels, F-only, no pruning.
 
file  nbnxm_hip_kernel_body_f_prune.cpp
 Explicitly instantiate NBNXM HIP kernels, F-only, with pruning.
 
file  nbnxm_hip_kernel_body_fv_noprune.cpp
 Explicitly instantiate NBNXM HIP kernels, F+V, no pruning.
 
file  nbnxm_hip_kernel_body_fv_prune.cpp
 Explicitly instantiate NBNXM HIP kernels, F+V, with pruning.
 
file  nbnxm_hip_kernel_pruneonly.cpp
 NBNXM HIP prune only kernels.
 
file  nbnxm_hip_kernel_pruneonly.h
 Declares nbnxn hip helper functions.
 
file  nbnxm_hip_kernel_sci_sort.cpp
 Explicitly instantiate NBNXM HIP kernel for sci sorting.
 
file  nbnxm_hip_kernel_sci_sort.h
 HIP bucket sci sort kernel.
 
file  nbnxm_hip_kernel_utils.h
 Utility constant and function declaration for the HIP non-bonded kernels. This header should be included once at the top level, just before the kernels are included (has to be preceded by nbnxn_hip_types.h).
 
file  nbnxm_hip_types.h
 Data types used internally in the nbnxn_hip module.
 
file  kernel_common.cpp
 Implements utility functions used by all nbnxm CPU kernels.
 
file  kernel_common.h
 Declares the nbnxm pair interaction kernel function types and kind counts, also declares utility functions used in nbnxm_kernel.cpp.
 
file  kernel_gpu_ref.h
 Declares GPU reference kernel.
 
file  kernel_ref_1x1.h
 Declares CPU reference kernels.
 
file  kernel_ref_4x4.h
 Declares CPU reference kernels.
 
file  kernel_ref_prune.h
 Declares the C reference pruning only kernel.
 
file  nbnxm.cpp
 Implements the Nbnxm class.
 
file  nbnxm.h
 This file contains the public interface of the nbnxm module that implements the NxM atom cluster non-bonded algorithm to efficiently compute pair forces.
 
file  nbnxm_enums.h
 Nbnxm internal enumerations.
 
file  nbnxm_geometry.h
 Declares the geometry-related functionality.
 
file  nbnxm_gpu.h
 Declare interface for GPU execution for NBNXN module.
 
file  nbnxm_gpu_buffer_ops.cpp
 Common code for GPU buffer operations, namely the coordinate layout conversion.
 
file  nbnxm_gpu_buffer_ops_internal.h
 Wrapper for the backend-specific coordinate layout conversion functionality.
 
file  nbnxm_gpu_data_mgmt.cpp
 Define common implementation of nbnxm_gpu_data_mgmt.h.
 
file  nbnxm_gpu_data_mgmt.h
 Declare common functions for NBNXM GPU data management.
 
file  nbnxm_setup.cpp
 Common functions for the different NBNXN GPU implementations.
 
file  nbnxm_simd.h
 Defines constants used to know which nbNxM kernel flavours (4xM or 2xMM) can be supported by the SIMD layer in use.
 
file  nbnxm_gpu_buffer_ops_internal_ocl.cpp
 Define OpenCL implementation for transforming position coordinates from rvec to nbnxm layout.
 
file  nbnxm_ocl.cpp
 Define OpenCL implementation of nbnxm_gpu.h.
 
file  nbnxm_ocl_consts.h
 Declares constants for OpenCL code.
 
file  nbnxm_ocl_data_mgmt.cpp
 Define OpenCL implementation of nbnxm_gpu_data_mgmt.h.
 
file  nbnxm_ocl_jit_support.cpp
 Defines functions that support JIT compilation (e.g. for OpenCL)
 
file  nbnxm_ocl_types.h
 Data types used internally in the nbnxm_ocl module.
 
file  pairlist_imask.h
 Declares and defines pairlist interaction mask generation functions.
 
file  pairlist_simd_kernel.cpp
 Defines the SIMD cluster pair distance kernel and helpers.
 
file  pairlist_simd_kernel.h
 Declares the SIMD cluster pair distance kernel and helpers.
 
file  pairlist_tuning.cpp
 Implements functions for tuning adjustable parameters for the nbnxn non-bonded search and interaction kernels.
 
file  pairlist_tuning.h
 Declares functions for tuning adjustable parameters for the nbnxn non-bonded search and interaction kernels.
 
file  pairlistparams.cpp
 Implements the PairlistParams constructor.
 
file  pairlistparams.h
 Declares the PairlistType enum and PairlistParams class.
 
file  pairlistset.cpp
 Implements functionality for PairlistSet.
 
file  pairlistset.h
 Declares the PairlistSet class.
 
file  pairlistsets.h
 Declares the PairlistSets class.
 
file  pairlistwork.cpp
 Implements constructors for NbnxnPairlistGpuWork.
 
file  pairlistwork.h
 Declares working data structures for the CPU and GPU pairlists.
 
file  pairsearch.cpp
 Implements the PairSearch class.
 
file  pairsearch.h
 Declares the PairSearch class and helper structs.
 
file  simd_kernel.h
 Declares and defines the NBNxM SIMD pair interaction kernel function.
 
file  simd_load_store_functions.h
 Defines functions to load data to and store data from SIMD registers for the SIMD 4xM and 2xMM kernels.
 
file  simd_prune_kernel.h
 Declares the NBNxM SIMD pruning only kernel.
 
file  nbnxm_gpu_buffer_ops_internal_sycl.cpp
 SYCL implementation of coordinate layout conversion kernel and its wrapper.
 
file  nbnxm_sycl.cpp
 Data management and kernel launch functions for nbnxm sycl.
 
file  nbnxm_sycl_data_mgmt.cpp
 Stubs of functions that must be defined by nbnxm sycl implementation.
 
file  nbnxm_sycl_kernel.cpp
 NBNXM SYCL kernels.
 
file  nbnxm_sycl_kernel.h
 Declares nbnxn sycl helper functions.
 
file  nbnxm_sycl_kernel_body.h
 NBNXM SYCL kernels.
 
file  nbnxm_sycl_kernel_body_f_noprune.cpp
 Explicitly instantiate NBNXM SYCL kernels, F-only, no pruning.
 
file  nbnxm_sycl_kernel_body_f_prune.cpp
 Explicitly instantiate NBNXM SYCL kernels, F-only, with pruning.
 
file  nbnxm_sycl_kernel_body_fv_noprune.cpp
 Explicitly instantiate NBNXM SYCL kernels, F+V, no pruning.
 
file  nbnxm_sycl_kernel_body_fv_prune.cpp
 Explicitly instantiate NBNXM SYCL kernels, F+V, with pruning.
 
file  nbnxm_sycl_kernel_pruneonly.cpp
 NBNXM SYCL kernels.
 
file  nbnxm_sycl_kernel_pruneonly.h
 Declares nbnxn sycl helper functions.
 
file  nbnxm_sycl_kernel_utils.h
 Helper functions and constants for SYCL NBNXM kernels.
 
file  nbnxm_sycl_types.h
 Data types used internally in the nbnxm_sycl module.
 
file  exclusions.cpp
 Tests for exclusions in the Nbnxm CPU pairlists.
 
file  kernel_test.cpp
 Tests for NBNxM pair kernel forces and energies.
 
file  kernelsetup.cpp
 Tests for Setup of kernels.
 
file  pairlist.cpp
 Tests for gpu pairlist datastructure memory handling.
 
file  simd_energy_accumulator.cpp
 Tests for the EnergyAccumulator class.
 
file  spc81_coords.h
 This file defines a box with 81 SPC/E water molecules, 243 atoms, for use in tests.
 
file  testsystem.cpp
 Implements the TestSystem class.
 
file  testsystem.h
 Declares the TestSystem class used for testing NBNxM functionality.