-
Notifications
You must be signed in to change notification settings - Fork 151
Description
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.
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