|
Gromacs
2026.0-dev-20251111-8c1ac59
|
Collaboration diagram for Non-bonded pair interactions: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 | freeenergykernel.h |
| Declares and defines the AtomPairlist 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.cpp |
| Implements functionality for PairlistSets. | |
| 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 | plainpairlist.cpp |
| Tests for the plain pairlist extraction functionality. | |
| 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. | |
1.8.5