Gromacs  2022.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Files
Ewald-family treatments of long-ranged forces
+ Collaboration diagram for Ewald-family treatments of long-ranged forces:

Description

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.

Author
Berk Hess hess@.nosp@m.kth..nosp@m.se
Erik Lindahl erik@.nosp@m.kth..nosp@m.se
Roland Schulz rolan.nosp@m.d@rs.nosp@m.chulz.nosp@m..eu
Mark Abraham mark..nosp@m.j.ab.nosp@m.raham.nosp@m.@gma.nosp@m.il.co.nosp@m.m
Christan Wennberg cwenn.nosp@m.berg.nosp@m.@kth..nosp@m.se

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.