The function hoomd.update.RemoveDrift() currently updates the position of all particles in the simulation. I would like to be able to pass a subset of particles so that the center-of-mass calculation and position update applies only to the filtered particles. In particular, this is useful in the case where a system has "dummy" particles which are not part of the integrator.
Proposed solution
The function RemoveDrift() will take in a filter argument similarly to the integrator or writer functions.
Additional context
In particular, I'm implementing Frenkel-Ladd free energy calculations in MD, which is theoretically supported by RemoveDrift() (in the documentation here). However, the suggested method of creating a dummy lattice of reference particles to restrain the crystal has a systematic error if reference particles are moved by RemoveDrift()
Description
The function hoomd.update.RemoveDrift() currently updates the position of all particles in the simulation. I would like to be able to pass a subset of particles so that the center-of-mass calculation and position update applies only to the filtered particles. In particular, this is useful in the case where a system has "dummy" particles which are not part of the integrator.
Proposed solution
The function RemoveDrift() will take in a filter argument similarly to the integrator or writer functions.
Additional context
In particular, I'm implementing Frenkel-Ladd free energy calculations in MD, which is theoretically supported by RemoveDrift() (in the documentation here). However, the suggested method of creating a dummy lattice of reference particles to restrain the crystal has a systematic error if reference particles are moved by RemoveDrift()