Core API#

This chapter is intended to describe data types that are used to assist in the processing of the electronic structure

PyProcar has the following data types:

  • pyprocar.core.BrillouinZone is used to generates the Brillouin Zone from reciprocal lattice matrix.

  • pyprocar.core.FermiSurface3D is used to store the informtation of a 3D Fermi Surface.

    This includes the interpolated kpoints, isosurface, and scalar value This class is an extension of the general pyprocar.core.Isosurface

  • pyprocar.core.Isosurface is used to generate an isosurface for an isovalue from a numpy array of coordinate points and a a 1d numpy array of scalar values.

    This class is an extension of the pyprocar.core.Surface class.

  • pyprocar.core.Surface is used to generate a surface from vertices and faces.

    This class is an extension of the pyvista.PolyData class

  • pyprocar.core.KPath is used to store the k-path information (tick_labels,tick_positions,n_segements,kdistances) for band structure plots

  • pyprocar.core.ElectronicBandStructure is used to store and manipulate electronic band structure information.

    Electronic band structures expects kpoints, band values, fermi energy, projections, phase projections, kpath, weights, and reciprocal lattice.

  • pyprocar.core.DensityOfStates is used to store and manipulate density of states information.

    Density of states 1d numpy array of energy, (n_energy,n_spin) total densities and projections at each energy.

  • pyprocar.core.FermiSurface is used to help plot the 2d fermi surface at a given plane.

    Fermi Surface expects numpy array of k points, band energies, and projections.

  • pyprocar.core.Structure is used to store structure information.

    Expects a list of atomic symbols, numpy array of fraction coordinates of the atoms, and the atomic lattice matrix.