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

Cell list integration to the nonbonded potential computation #176

Open
rc83 opened this issue Jul 22, 2019 · 1 comment
Open

Cell list integration to the nonbonded potential computation #176

rc83 opened this issue Jul 22, 2019 · 1 comment

Comments

@rc83
Copy link
Collaborator

rc83 commented Jul 22, 2019

The nonbonded interactions have to be efficiently computed when a cut off distance is introduced. A good strategy can be to limit the particle candidates to a content of cells in a cell list that are within the cut off distance.

  1. The system can have many cell lists, grouped based on the cut off distances. The cell lists do not interact with each other if the cut off distances differ, i.e., the cell list universe is determined by the cut off distance. The location of a cell in each universe is determined by a single number computed from its k, l, m coordinates.

  2. Different strategies can be used to computed nonbonded energies.

  3. In the most simple way, a single cell list containing all atoms is constructed for the given cut off distance. The particle candidates are then selected from corresponding neighboured cells.

  4. Another approach is preferred in systems of rigid proteins in an implicit solvent / explicit salt environment. Every molecule/atom group holds its own cell list containing only its atoms. To compute the energy, the outer cycle loops over the groups, skipping the unwanted ones (e.g., the same molecule), and the inner loop determines the cells within the cut off distance and compute the energy for the atom pairs.

  5. The cell list in the previous system can be implemented as sparse, i.e., a map of cell indices → sets of atoms, or as dense, i.e., a vector over all indices → sets of atoms. The sparse list is typically suitable for big molecules like proteins, while the dense list suits to disperse particles like ions.

  6. The cell lists are updated upon the move and are completely rebuild when the volume of the box changes.

  7. The current g2g function and its reimplementation according to 4 should be benchmarked.

Depends on #162.

@mlund
Copy link
Owner

mlund commented Jul 22, 2019

For mapping 3d array onto single set, see pairing function here: https://stackoverflow.com/questions/919612/mapping-two-integers-to-one-in-a-unique-and-deterministic-way

@mlund mlund added this to the Version 2.5.0 milestone Feb 11, 2020
@mlund mlund modified the milestones: Version 2.5.0, future revision Mar 27, 2021
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

No branches or pull requests

2 participants