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.mommat (
ndarray
|None
) – 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 theFourierInterpolator
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.