glotzerlab / hoomd-blue

Molecular dynamics and Monte Carlo soft matter simulation on GPUs.
http://glotzerlab.engin.umich.edu/hoomd-blue
BSD 3-Clause "New" or "Revised" License
329 stars 127 forks source link

Multiparticle collision dynamics #234

Closed joaander closed 6 years ago

joaander commented 7 years ago

Original report by Michael Howard (Bitbucket: mphoward, GitHub: mphoward).


I am implementing the multiparticle collision dynamics method for resolving fluctuating hydrodynamics at the mesoscale (https://bluewaters.ncsa.illinois.edu/science-teams?page=detail&psn=bafd). Features will be merged into the mpcd-working branch as developed. I'm opening this issue for reference.

joaander commented 7 years ago

FYI: mpcd-working fails to compile with ENABLE_MPI=off

/double/python/python3/code/hoomd/mpcd/SystemDataSnapshot.h:66:35: error: no member named 'getDomainDecomposition' in 'ParticleData' return m_hoomd_pdata->getDomainDecomposition();

joaander commented 7 years ago

Original comment by Michael Howard (Bitbucket: mphoward, GitHub: mphoward).


Thanks, I needed to return a null pointer for the decomposition in non-MPI builds. The fix was pushed onto pull request #308, which should be next in the queue. I'm not able to easily build all configurations during development, so I'm expecting to run into some more these MPI/no-MPI and also possibly single/double compile errors.

joaander commented 7 years ago

Yeah, not a problem - that's what Jenkins is for. All fine as this is going into a working branch and not a mainline one that many people will build.

joaander commented 7 years ago

Merged in mphoward/hoomd-blue/mpcd-particle-comm (pull request #308)

refs #234

MPCD particle communication

joaander commented 7 years ago

Original comment by Michael Howard (Bitbucket: mphoward, GitHub: mphoward).


The current code is nearly polished and optimized. I've run performance benchmarks on Blue Waters, and I am currently writing up a paper on this code.

Additional user docs are needed before mpcd-working is ready to be merged into master. I am going to come back to those after I've finished the draft, since I'm hoping to borrow some of the text and schematics. I'm planning to get that done within the next month.

More features will be added in the future, but the current set is enough to have a usable implementation.

joaander commented 7 years ago

Thanks for the update.

joaander commented 6 years ago

Original comment by Michael Howard (Bitbucket: mphoward, GitHub: mphoward).


The current mpcd-working branch should implement all of the features that are needed for release. We are just waiting on the paper (under review) to add appropriate documentation / citation before everything can be finalized.

One question is whether to mark this component as "stable" or "unstable" in the documentation. I think that I am converged on the API, but it is possible that I might need to make some minor changes in the future as features are added. I don't mind it being "unstable" in terms of the API, but I also don't want to scare users away thinking that the code is not working. Thoughts?

joaander commented 6 years ago

Original comment by Michael Howard (Bitbucket: mphoward, GitHub: mphoward).


Almost finalized.

joaander commented 6 years ago

Let me know when you are ready for mpcd-working to go into master.

You are welcome to use different language to indicate the stability of the component.

joaander commented 6 years ago

Original comment by Michael Howard (Bitbucket: mphoward, GitHub: mphoward).


OK, sounds good. The paper for this was submitted in September, and apparently the editor hasn't found anyone to review it yet. I will give the docs another pass through and add a citation for the draft, tidy up the language for the stability of the component, and then let you know that it is ready to merge.

joaander commented 6 years ago

Merged in mphoward/hoomd-blue/mpcd-working (pull request #450)

fixes #234 Multiparticle collision dynamics

Approved-by: Joshua Anderson joaander@umich.edu