Skip to content

ENH: Phonons PDOS

Adam Jackson requested to merge ajjackson/ase:phonon-pdos into master

The ASE Phonons object contains unused 'indices' options in the DOS methods. Instead, add a functional get_pdos() that uses the new DOS classes.

There is a plan to rework the data/methods setup in Phonons, in a similar pattern to the VibrationsData refactor. But it doesn't hurt to have a PDOS method in place already, as long as we like the API.

  • Validate results against other phonon codes. Cheap LJ/EMT calculations don't really help with this as we need to see that the contributions of different atom types are having their masses scaled correctly.
  • In the initial implementation, the iteration over kpoints is a bit expensive due to the needless creation of extra DOSData objects. Optimise this.

There was a request in Matrix to support projection over a direction; this could be achieved by taking the dot product of eigenvectors with user-specified vectors. Is that something to consider in the pdos API? Or should it be a separate method? Or something that can be hacked as-needed rather than sitting inside ASE?

Edited by Adam Jackson

Merge request reports