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

Reimplement MPCD for HOOMD 4 #1784

Merged
merged 95 commits into from
May 29, 2024
Merged

Reimplement MPCD for HOOMD 4 #1784

merged 95 commits into from
May 29, 2024

Conversation

mphoward
Copy link
Collaborator

@mphoward mphoward commented May 16, 2024

Description

This PR finalizes the reimplementation of MPCD for HOOMD 4. The changes added to this branch that haven't been in a previous PR are:

  • Add Yashraj Wani (@YMWani) to the credits for giving me the code that refactored the virtual fillers.
  • Update default for BUILD_MPCD to match BUILD_MD and document hoomd.mpcd in BUILDING.rst.

See meta issue #775 and PRs #1580, #1655, #1681, #1689, #1690, #1691, #1712, #1714, #1734, #1737, #1741, #1763, #1778 for additional information.

Motivation and context

Resolves #775

How has this been tested?

All PRs have been tested along the way with C++ and Python tests. I additionally ran some applications with the new code and compared to HOOMD 2.9.7. The tests were: planar pressure-driven (Poiseuille) flow, planar shear (Couette) flow, and bulk diffusion of monomers. The figures below show identical results with the two versions of HOOMD.

flow
monomers

Change log

* ``hoomd.mpcd`` reimplements the MPCD method for simulating hydrodynamic interactions in HOOMD 4. See the `migrating` page for an overview and individual class and method documentation for more information.

Checklist:

mphoward and others added 30 commits October 13, 2023 23:00
Port MPCD integrator, streaming methods, and collision methods
Reimplement MPCD particle sorter
@mphoward mphoward requested review from a team as code owners May 16, 2024 17:08
@mphoward mphoward requested review from joaander, tommy-waltmann and pepak13 and removed request for a team May 16, 2024 17:08
@mphoward mphoward added the mpcd MPCD component label May 16, 2024
@joaander joaander added the validate Execute long running validation tests on pull requests label May 16, 2024
Copy link
Member

@joaander joaander left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

I found and removed a few remaining references to GPU polymorphism.

I was unable to build this branch with HIP. Many mpcd files include cuda_runtime.h, reference cudaSucess / cudaError_t, and possibly make other references to CUDA APIs I didn't notice yet. @mphoward Would you like me to proceed with merging this now and making mpcd available for CUDA only in the next release? I'm OK with fixing HIP support for MPCD in a future pull request.

@mphoward
Copy link
Collaborator Author

Thanks! Yes, you’re right, and I didn’t notice this. Jens probably did not port any of the MPCD code to HIP because it would not compile with polymorphism. If we still have to fix these calls, it would be best to do it with hipper rather than HIP, so I agree with merging this now (with CUDA support only) for the next release & fixing it later!

@joaander joaander merged commit 41c78ab into trunk-minor May 29, 2024
40 checks passed
@joaander joaander deleted the mpcd-v4 branch May 29, 2024 18:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
mpcd MPCD component validate Execute long running validation tests on pull requests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants