hoomd-blue
hoomd-blue copied to clipboard
MPCD with angular momentum conservation
Description
The current MPCD collision methods conserve linear momentum but not angular momentum. This isn't usually a problem, but it can be in certain cases. We should add the calculations required to optionally conserve angular momentum in the SRD and AT collision methods.
- https://doi.org/10.1103/PhysRevE.76.046705
- https://doi.org/10.1103/PhysRevE.92.013301
Proposed solution
Conserving angular momentum is more expensive, so this code path should be opt-in with an attribute that defaults to False, like conserve_angular_momentum=False. This is all that should be needed on the Python side.
On the C++ side, we need to compute the center-of-mass and moment of inertia for particles in collision cells (unwrapped under PBCs correctly), then apply a correction term to enforce that the angular momentum does not change during the collision, as in the references above. In MPI simulations, this will require reduction of additional quantities for cells spanning multiple domains.
Additional context
No response
@mphoward Hello sir, I am implementing MPCD for viscosity difference system, where angular momentum conservation is crucial. I am following steps from the references. Successfully calculating MOI tensor relative to cell but angular momentum is not conservation. Can you elaborate on how to handle angular momentum conservation for periodic boundary conditions.
I am implementing MPCD for viscosity difference system, where angular momentum conservation is crucial. I am following steps from the references. Successfully calculating MOI tensor relative to cell but angular momentum is not conservation.
Are you working to add this feature to MPCD in HOOMD-blue? If yes, I am happy to review your code in a pull request and/or have a discussion about it. If no, I am not really able to help you with this.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
This work is still planned, but major refactoring is needed to support it.