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
Enable neighbor build on the device for pair hybrid substyles #1430
Conversation
@ndtrung81 FYI. We're holding back on merging this PR until after the upcoming stable release. |
@akohlmey thanks for letting me know. I will wrap it up before assigning the PR to you in May. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ndtrung81 i don't see any changes to the documentation. doesn't this change need to be documented or rather text describing the previous limitations be removed?
@@ -219,17 +218,6 @@ void FixGPU::init() | |||
error->all(FLERR,"GPU package does not (yet) work with " | |||
"atom_style template"); | |||
|
|||
// hybrid cannot be used with force/neigh option |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@akohlmey These are the limitations that are removed from this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks Trung - this is useful
Summary
When used with pair hybrid and hybrid/overlay the GPU package enforces the neighbor lists to be built on the host (i.e. neigh no). This PR lifts this enforcement, allowing for the use of "neigh yes" and "split -1" for the command "package gpu" when using pair hybrid and pair hybrid/overlay with multiple /gpu pair styles.
Related Issues
N/A
Author(s)
Trung Nguyen (Northwestern)
Licensing
By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).
Backward Compatibility
The changes in this PR should maintain backward compability.
Implementation Notes
Moved the initilization of Neighbor storage out of Device::init() into a separate function (i.e. init_nbor()) so that the pair styles allocate the required memory on their own Neighbor instance. This change leads to updates in the function init_atomic() the Base* classes.
Post Submission Checklist
Further Information, Files, and Links
N/A