FourierInterpolator#

class ifermi.interpolate.FourierInterpolator(band_structure, magmom=None, mommat=None)[source]#

Bases: object

Class to perform Fourier interpolation of electronic band structures.

Interpolation is performed using BoltzTraP2.

Parameters:
  • band_structure (BandStructure) – The Bandstructure object to be interpolated.

  • magmom (Optional[ndarray]) – Magnetic moments of the atoms.

  • mommat (Optional[ndarray]) – Momentum matrix, as supported by BoltzTraP2.

interpolate_bands(interpolation_factor=5, return_velocities=False, nworkers=-1)[source]#

Get an interpolated pymatgen band structure.

Note, the interpolation mesh is determined using by interpolate_factor option in the FourierInterpolator constructor.

The degree of parallelization is controlled by the nworkers option.

Parameters:
  • interpolation_factor (float) – The factor by which the band structure will be interpolated.

  • return_velocities (bool) – Whether to return the group velocities.

  • nworkers (int) – The number of processors used to perform the interpolation. If set to -1, the number of workers will be set to the number of CPU cores.

Returns:

The interpolated electronic structure. If return_velocities is True, the group velocities will also be returned as a dict of {Spin: velocities} where velocities is a numpy array with the shape (nbands, nkpoints, 3) and has units of m/s.