Value of `delta` in the Vibrations class

Dear ASE developers,

I’m running some normal mode calculations and have a question about the argument delta in the Vibrations class. According to the documentation, it represents the magnitude of displacements. With nfree = 2, each atom is displaced by -delta and +delta along each Cartesian coordinate. I’ve tested different values of delta and noticed that while the geometries saved in the .traj files remain the same, the order in which they are saved changes. I also subtracted the positions of the images from the reference structure, but the differences were never a multiple of the delta I selected. Are these results expected? What is the effect of varying delta, and how can I evaluate its impact? Also, what parameter does ASE use to determine the extent of vibrations, i.e., the maximum and minimum positions?

Yours sincerely,

What .traj file are you referring to here? The finite displacement data is written in a set of .json files, which do not even store the positions.

Is it possible that you are looking at .traj files containing mode animations? These are a derived property of the vibration calculation and so should be quite insensitive to the displacement.

The size of finite-displacement is a trade-off between two sources of error: very small displacements can suffer from signal-to-noise issues (e.g. the error of DFT SCF convergence may be large compared to the forces), whereas with large displacements there could be a significant anharmonic component to the forces.