pyprocar.core.FermiSurface3D#

class pyprocar.core.FermiSurface3D(ebs, fermi: float = 0.0, fermi_shift: float = 0.0, interpolation_factor: int = 1, projection_accuracy: str = 'Normal', supercell: List[int] = [1, 1, 1], max_distance: float = 0.2)[source]#

The object is used to store and manapulate a 3d fermi surface.

Parameters:
  • ebs (ElectronicBandStructure) – The ElectronicBandStructure object

  • fermi (float) – The energy to search for the fermi surface

  • fermi_shift (float) – Value to shift fermi energy.

  • fermi_tolerance (float = 0.1) – This is used to improve search effiency by doing a prior search selecting band within a tolerance of the fermi energy

  • interpolation_factor (int) – The default is 1. number of kpoints in every direction will increase by this factor.

  • projection_accuracy (str, optional) – Controls the accuracy of the projects. 2 types (‘high’, normal) The default is projection_accuracy=normal.

  • supercell (list int) – This is used to add padding to the array to assist in the calculation of the isosurface.

Methods

FermiSurface3D.__init__(ebs[, fermi, ...])

Initialize the polydata.

FermiSurface3D.extend_surface([...])

Method to extend the surface in the direction of a reciprocal lattice vecctor

FermiSurface3D.project_atomic_projections(spd)

Method to calculate the atomic projections of the surface.

FermiSurface3D.project_fermi_speed(fermi_speed)

Method to calculate the fermi speed of the surface.

FermiSurface3D.project_fermi_velocity(...)

Method to calculate atomic spin texture projections of the surface.

FermiSurface3D.project_harmonic_effective_mass(...)

Method to calculate the atomic projections of the surface.

FermiSurface3D.project_spin_texture_atomic_projections(...)

Method to calculate atomic spin texture projections of the surface.

Attributes