Skip to content

MPCD with angular momentum conservation #1883

@mphoward

Description

@mphoward

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestmpcdMPCD component

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions