Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Particle Mesh Ewald #178

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft

Particle Mesh Ewald #178

wants to merge 2 commits into from

Conversation

ejmeitz
Copy link
Contributor

@ejmeitz ejmeitz commented May 20, 2024

A work in progress implementation of Smooth Particle Mesh Ewald on a GPU:

SPME follows the original paper:
A_Smooth_Particle_Mesh_Ewald_Method (2).pdf

Currently the missing major components are:

  • An analytical derivative to calculate dQ/dR which is needed to calculate the force (a lapse in my understanding of the paper)
  • Integration with Molly infrastructure, notably need to implement the particle-particle component as an interaction in Molly (should be easy)
    • If an improved GPU neighbor list is implemented in another PR that would be very useful here
  • Implementation of the stress tensor calculation. This theory is currently beyond me and I have not spent time trying to figure it out.
  • Thorough testing

Minor things:

  • Certain small parts need to be written into GPU kernels still (e.g. calculating scaled coordinates u)
  • Parallelize CPU version of charge interpolation
  • Optimal choice of FFT plan for the reciprocal space
  • I don't think the SPME struct as is can go on the GPU, so either need to use Adapt or write some kind of wrapper to handle moving things to the GPU at the start of the force loop
  • Lots of things are just allocated inside functions that could be pre-allocated at the start

Copy link

codecov bot commented May 20, 2024

Codecov Report

Attention: Patch coverage is 0% with 196 lines in your changes missing coverage. Please review.

Project coverage is 69.26%. Comparing base (fb1143a) to head (a2013f3).
Report is 13 commits behind head on master.

Files with missing lines Patch % Lines
...ng_range_interactions/SPME/charge_interpolation.jl 0.00% 106 Missing ⚠️
src/long_range_interactions/SPME/bsplines.jl 0.00% 54 Missing ⚠️
src/long_range_interactions/SPME/SPME.jl 0.00% 35 Missing ⚠️
src/long_range_interactions/SPME/particle_mesh.jl 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #178      +/-   ##
==========================================
- Coverage   71.87%   69.26%   -2.62%     
==========================================
  Files          37       41       +4     
  Lines        5536     5732     +196     
==========================================
- Hits         3979     3970       -9     
- Misses       1557     1762     +205     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant