Implementing Vicsek-style alignment force in LAMMPS (based on PRE 101, 012601)

Dear LAMMPS developers,

I want to implement a Vicsek-type active matter model in LAMMPS, as described in:

Phys. Rev. E 109, 064607 (2024)
Finite-size scaling in kinetics of phase separation in certain models of aligning active particles
[DOI: https://doi.org/10.1103/PhysRevE.110.L012103)

Key points:

  • Particles interact via truncated force-shifted LJ potential.
  • Velocity aligns with average direction of neighbors within cutoff rcr_c.
  • An active force fi=faDi\mathbf{f}_i = f_a \mathbf{D}_i is added along this direction.
  • Velocity is renormalized to preserve magnitude (Eq. 14 in the paper).
  • Langevin thermostat is used for thermal noise.

I believe this requires a custom fix. Before I start coding:

  1. Is there any existing implementation or similar fix in LAMMPS?
  2. Which existing fixes (e.g., fix propel/self, fix addforce, etc.) would be best to base this on?

Thanks in advance for any suggestions.

Best,
Gokul Upadhyay

Please note that your research topic is rather special and you will not likely find anybody here with knowledge and experience that is specific to your research.

If it would exist, it is documented in the manual. Please have a look yourself.

See my comment above. To give a meaningful answer, one would have to have significant experience in your area of research (which I don’t have, for example, but probably nobody else that is usually answering questions here). Please note that there is some generic information about writing fix styles in the Programmer’s Guide section of the LAMMPS manual.