Gromacs
2022.2
|
Computes energies and forces for long-ranged interactions using the Ewald decomposition. Includes plain Ewald, PME, P3M for Coulomb, PME for Lennard-Jones, load-balancing for PME, and supporting code.
Files | |
file | ewald.cpp |
This file contains function definitions necessary for computing energies and forces for the plain-Ewald long-ranged part, and the correction for overall system charge for all Ewald-family methods. | |
file | ewald.h |
This file contains function declarations necessary for computing energies and forces for the plain-Ewald long-ranged part, and the correction for overall system charge for all Ewald-family methods. | |
file | ewald_utils.h |
Declares utility functions related to Ewald. | |
file | long_range_correction.h |
This file contains function declarations necessary for computing energies and forces for the PME long-ranged part (Coulomb and LJ). | |
file | pme.cpp |
This file contains function definitions necessary for computing energies and forces for the PME long-ranged part (Coulomb and LJ). | |
file | pme.h |
This file contains function declarations necessary for computing energies and forces for the PME long-ranged part (Coulomb and LJ). | |
file | pme_coordinate_receiver_gpu.h |
Declaration of class which receives coordinates to GPU memory on PME task. | |
file | pme_coordinate_receiver_gpu_impl.cpp |
May be used to implement PME-PP GPU comm interfaces for non-GPU builds. | |
file | pme_coordinate_receiver_gpu_impl.h |
Declaration of class which receives coordinates to GPU memory on PME task. | |
file | pme_force_sender_gpu.h |
Declaration of class which sends PME Force from GPU memory to PP task. | |
file | pme_force_sender_gpu_impl.cpp |
May be used to implement PME-PP GPU comm interfaces for non-GPU builds. | |
file | pme_force_sender_gpu_impl.h |
Declaration of class which sends PME Force from GPU memory to PP task. | |
file | pme_gpu.cpp |
Implements high-level PME GPU functions which do not require GPU framework-specific code. | |
file | pme_gpu_calculate_splines.h |
This file defines small PME GPU inline host/device functions. Note that OpenCL device-side functions can't use C++ features, so they are located in a similar file pme_gpu_utils.clh. Be sure to keep the logic in sync in both files when changing it! | |
file | pme_gpu_constants.h |
This file defines the PME GPU compile-time constants/macros, used both in device and host code. | |
file | pme_gpu_grid.h |
Implements PME halo exchange and PME-FFT grid conversion functions. | |
file | pme_gpu_internal.cpp |
This file contains internal function implementations for performing the PME calculations on GPU. | |
file | pme_gpu_internal.h |
This file contains internal function definitions for performing the PME calculations on GPU. These are not meant to be exposed outside of the PME GPU code. As of now, their bodies are still in the common pme_gpu.cpp files. | |
file | pme_gpu_ocl_stubs.cpp |
Implements stubs of high-level PME GPU functions for OpenCL. | |
file | pme_gpu_program.cpp |
Implements PmeGpuProgram, which wrap arounds PmeGpuProgramImpl to store permanent PME GPU context-derived data, such as (compiled) kernel handles. | |
file | pme_gpu_program.h |
Declares PmeGpuProgram to store data derived from the GPU context or devices for PME, such as (compiled) kernel handles and the warp sizes they work with. | |
file | pme_gpu_program_impl.cpp |
Implements PmeGpuProgramImpl for non-GPU builds. | |
file | pme_gpu_program_impl.h |
Declares PmeGpuProgramImpl, which stores PME GPU (compiled) kernel handles. | |
file | pme_gpu_program_impl_ocl.cpp |
Implements PmeGpuProgramImpl, which stores permanent PME GPU context-derived data, such as (compiled) kernel handles. | |
file | pme_gpu_program_impl_sycl.cpp |
Implements PmeGpuProgramImpl, which stores permanent PME GPU context-derived data, such as (compiled) kernel handles. | |
file | pme_gpu_settings.h |
Defines the PME GPU settings data structures. | |
file | pme_gpu_staging.h |
Defines the host-side PME GPU data structures. | |
file | pme_gpu_sycl_stubs.cpp |
Implements stubs of high-level PME GPU functions for Sycl. | |
file | pme_gpu_timings.cpp |
Implements PME GPU timing events wrappers. | |
file | pme_gpu_timings.h |
Defines PME GPU timing functions. | |
file | pme_gpu_types.h |
Defines the PME GPU data structures (the GPU function parameters used both on host and device sides). | |
file | pme_gpu_types_host.h |
Defines the host-side PME GPU data structures. | |
file | pme_gpu_types_host_impl.h |
Defines the host-side PME GPU data structure, which is dependent on the GPU types. It's included by pointer in the general PmeGpu host structure in pme_gpu_types_host.h. | |
file | pme_internal.h |
This file contains function declarations necessary for computing energies and forces for the PME long-ranged part (Coulomb and LJ). | |
file | pme_load_balancing.cpp |
This file contains function definitions necessary for managing automatic load balance of PME calculations (Coulomb and LJ). | |
file | pme_load_balancing.h |
This file contains function declarations necessary for managing automatic load balance of PME calculations (Coulomb and LJ). | |
file | pme_only.h |
This file contains function declarations necessary for running on an MPI rank doing only PME long-ranged work. | |
file | pme_output.h |
Defines a struct useful for transferring the PME output values. | |
file | pme_pp.cpp |
This file contains function definitions necessary for managing the offload of long-ranged PME work to separate MPI rank, for computing energies and forces (Coulomb and LJ). | |
file | pme_pp.h |
This file contains function declarations necessary for mananging the PP side of PME-only ranks. | |
file | pme_pp_comm_gpu.h |
Declaration of GPU PME-PP Communication. | |
file | pme_pp_comm_gpu_impl.cpp |
May be used to implement PME-PP GPU comm interfaces for non-GPU builds. | |
file | pme_pp_comm_gpu_impl.h |
Declares CUDA implementation class for PME-PP communications. | |
file | pme_pp_communication.h |
This file contains declarations and constants necessary for coordinating the communication for the offload of long-ranged PME work to separate MPI rank, for computing energies and forces (Coulomb and LJ). | |
file | pme_redistribute.cpp |
This file contains function definitions for redistributing atoms over the PME domains. | |
file | pme_redistribute.h |
Declares functions for redistributing atoms over the PME domains. | |
file | spline_vectors.h |
This file declares a type useful for spline vectors. | |
file | pme.cpp |
Tests for functionality of the pme related classes: class SeparatePmeRanksPermitted. | |
file | pmebsplinetest.cpp |
Implements PME B-spline moduli computation tests. | |
file | pmegathertest.cpp |
Implements PME force gathering tests. | |
file | pmesolvetest.cpp |
Implements PME solving tests. | |
file | pmesplinespreadtest.cpp |
Implements PME spline computation and charge spreading tests. | |
file | pmetestcommon.cpp |
Implements common routines for PME tests. | |
file | pmetestcommon.h |
Describes common routines and types for PME tests. | |