atomistics.workflows.phonons.helper.get_band_structure

atomistics.workflows.phonons.helper.get_band_structure#

atomistics.workflows.phonons.helper.get_band_structure(phonopy: Phonopy, npoints: int = 101, with_eigenvectors: bool = False, with_group_velocities: bool = False) dict[source]#

Calculate band structure with automatic path through reciprocal space.

Can only be called after job is finished.

Parameters:
  • phonopy (Phonopy) – The Phonopy object.

  • npoints (int, optional) – Number of sample points between high symmetry points. Defaults to 101.

  • with_eigenvectors (bool, optional) – Calculate eigenvectors, too. Defaults to False.

  • with_group_velocities (bool, optional) – Calculate group velocities, too. Defaults to False.

Returns:

The results from Phonopy under the following keys:
  • ’qpoints’: list of (npoints, 3), samples paths in reciprocal space

  • ’distances’: list of (npoints,), distance along the paths in reciprocal space

  • ’frequencies’: list of (npoints, band), phonon frequencies

  • ’eigenvectors’: list of (npoints, band, band//3, 3), phonon eigenvectors

  • ’group_velocities’: list of (npoints, band), group velocities

where band is the number of bands (number of atoms * 3). Each entry is a list of arrays, and each array corresponds to one path between two high-symmetry points automatically picked by Phonopy and may be of different length than other paths. As compared to the phonopy output this method also reshapes the eigenvectors so that they directly have the same shape as the underlying structure.

Return type:

dict

Raises:

ValueError – Method is called on a job that is not finished or aborted.