Description
Is your feature request related to a problem?
-
The MDAnalysis.analysis.msd module (and similar analysis tools in the MDAnalysis ecosystem) assume that trajectory files have frames spaced at regular, linear time intervals.
-
Many users using engines like LAMMPS prefer to often output trajectory data at exponentially increasing time intervals (e.g., 2⁰, 2¹, ..., 2²⁰) rather than at fixed, evenly spaced intervals. This helps to capture both early time dynamics and long-time behaviour without increasing the lammps-output file (.lammpstrj) size
-
Implementing this will be also useful for other analysis modules such as ACF (autocorrelation function) and RDF (radial distribution function).
-
Integral to an ongoing polymer simulations collaboration.
Describe the solution you'd like
- For example, going back to the MSD package it is averaged over all possible lag-times τ ≤ τ_max as mentioned in the manual, it works very well for the files that is linearly dumped!
- This approach fails for trajectories with exponentially spaced frames, where the time difference between successive frames is not constant.
- Instead, it would be ideal to compute MSD by only averaging particles over each frame and not doing the later time averaging part for an exponentially dumped file.
We are happy to provide a draft solution or collaborate on the implementation if needed!
Describe alternatives you've considered and Additional context
-
Rerunning LAMMPS simulations with linear timestep outputs, but this results in unnecessarily large output files and added computational effort.
-
The units of the output msd is ambiguous for LJ systems. Check related issue #5009