pyprocar.core.ElectronicBandStructure#

class pyprocar.core.ElectronicBandStructure(kpoints: ndarray, bands: ndarray, efermi: float, n_kx: int | None = None, n_ky: int | None = None, n_kz: int | None = None, projected: ndarray | None = None, projected_phase: ndarray | None = None, weights: ndarray | None = None, kpath: KPath | None = None, labels: List | None = None, reciprocal_lattice: ndarray | None = None)[source]#

This object stores electronic band structure informomration.

Parameters:
  • kpoints (np.ndarray) – The kpoints array. Will have the shape (n_kpoints, 3)

  • bands (np.ndarray) – The bands array. Will have the shape (n_kpoints, n_bands)

  • efermi (float) – The fermi energy

  • projected (np.ndarray, optional) – The projections array. Will have the shape (n_kpoints, n_bands, n_spins, norbitals,n_atoms), defaults to None

  • projected_phase (np.ndarray, optional) – The full projections array that incudes the complex part. Will have the shape (n_kpoints, n_bands, n_spins, norbitals,n_atoms), defaults to None

  • kpath (KPath, optional) – The kpath for band structure claculation, defaults to None

  • weights (np.ndarray, optional) – The weights of the kpoints. Will have the shape (n_kpoints, 1), defaults to None

  • labels (List, optional)

  • reciprocal_lattice (np.ndarray, optional) – The reciprocal lattice vector matrix. Will have the shape (3, 3), defaults to None

  • shifted_to_efermi (bool, optional) – Boolean to determine if the fermi energy is shifted, defaults to False

Methods

ElectronicBandStructure.__init__(kpoints, ...)

ElectronicBandStructure.array_to_mesh(array, ...)

Converts a list to a mesh that corresponds to ebs.kpoints [n_kx*n_ky*n_kz,...]->[n_kx,n_ky,n_kz,...].

ElectronicBandStructure.calculate_harmonic_average_effective_mass(hessian)

ElectronicBandStructure.calculate_nd_scalar_derivatives(...)

Transforms the derivatives to cartesian coordinates

ElectronicBandStructure.calculate_nd_scalar_integral(...)

Calculate the scalar integral

ElectronicBandStructure.cartesian_to_reduced(...)

Converts cartesian coordinates to fractional coordinates

ElectronicBandStructure.ebs_ipr()

_summary_

ElectronicBandStructure.ebs_ipr_atom()

It returns the atom-resolved , pIPR:

ElectronicBandStructure.ebs_sum([atoms, ...])

_summary_

ElectronicBandStructure.expand_kpoints_to_supercell()

ElectronicBandStructure.expand_kpoints_to_supercell_by_axes([...])

ElectronicBandStructure.fix_collinear_spin()

Converts data from two spin channels to a single channel, adjusting the spin down values to negatives.

ElectronicBandStructure.ibz2fbz(rotations[, ...])

Applys symmetry operations to the kpoints, bands, and projections

ElectronicBandStructure.interpolate_mesh_grid(...)

This function will interpolate an Nd, 3d mesh grid [...,nx,ny,nz]

ElectronicBandStructure.mesh_to_array(mesh)

Converts a mesh to a list that corresponds to ebs.kpoints [n_kx,n_ky,n_kz,...]->[n_kx*n_ky*n_kz,...] :Parameters: mesh (np.ndarray) -- The mesh to convert to a list

ElectronicBandStructure.plot_kpoints([...])

This needs to be moved to core.KPath and updated new implementation of pyvista PolyData

ElectronicBandStructure.ravel_array(mesh_grid)

ElectronicBandStructure.reduce_bands_near_fermi(bands)

Reduces the bands to those near the fermi energy

ElectronicBandStructure.reduce_kpoints_to_plane(...)

Reduces the kpoints to a plane

ElectronicBandStructure.reduced_to_cartesian(...)

ElectronicBandStructure.unfold([...])

The method helps unfold the bands.

ElectronicBandStructure.update_weights(weights)

Attributes

ElectronicBandStructure.bands

ElectronicBandStructure.bands_gradient

Bands gradient is a numpy array that stores each band gradient a list that corresponds to the self.kpoints Shape = [n_kpoints,3,n_bands], where the second dimension represents d/dx,d/dy,d/dz

ElectronicBandStructure.bands_gradient_mesh

Bands gradient mesh is a numpy array that stores each band gradient in a mesh grid.

ElectronicBandStructure.bands_hessian

Bands hessian is a numpy array that stores each band hessian in a list that corresponds to the self.kpoints Shape = [n_kpoints,3,3,n_bands], where the second and third dimension represent d/dx,d/dy,d/dz

ElectronicBandStructure.bands_hessian_mesh

Bands hessian mesh is a numpy array that stores each band hessian in a mesh grid.

ElectronicBandStructure.bands_integral

ElectronicBandStructure.bands_mesh

Bands mesh is a numpy array that stores each band in a mesh grid.

ElectronicBandStructure.efermi

ElectronicBandStructure.fermi_speed

fermi speed is a numpy array that stores each fermi speed a list that corresponds to the self.kpoints Shape = [n_kpoints,n_bands]

ElectronicBandStructure.fermi_speed_mesh

Fermi speed mesh is a numpy array that stores each Fermi Velocity in a mesh grid.

ElectronicBandStructure.fermi_velocity

fermi_velocity is a numpy array that stores each fermi_velocity a list that corresponds to the self.kpoints Shape = [n_kpoints,3,n_bands], where the second dimension represents d/dx,d/dy,d/dz

ElectronicBandStructure.fermi_velocity_mesh

Fermi Velocity mesh is a numpy array that stores each Fermi Velocity in a mesh grid.

ElectronicBandStructure.harmonic_average_effective_mass

harmonic average effective mass is a numpy array that stores each harmonic average effective mass in a list that corresponds to the self.kpoints Shape = [n_kpoints,n_bands],

ElectronicBandStructure.harmonic_average_effective_mass_mesh

harmonic average effective mass mesh is a numpy array that stores each harmonic average effective mass mesh in a mesh grid.

ElectronicBandStructure.inv_reciprocal_lattice

Returns the inverse of the reciprocal lattice

ElectronicBandStructure.is_non_collinear

Boolean to determine if this is a non-colinear calculation

ElectronicBandStructure.kpath

ElectronicBandStructure.kpoints

Returns the kpoints in fractional basis

ElectronicBandStructure.kpoints_cartesian

ElectronicBandStructure.kpoints_cartesian_mesh

Kpoint cartesian mesh representation of the kpoints grid.

ElectronicBandStructure.kpoints_mesh

Kpoint mesh representation of the kpoints grid.

ElectronicBandStructure.kx_map

ElectronicBandStructure.ky_map

ElectronicBandStructure.kz_map

ElectronicBandStructure.n_kx

The number of unique kpoints in kx direction in the reduced basis

ElectronicBandStructure.n_ky

The number of unique kpoints in kx direction in the reduced basis

ElectronicBandStructure.n_kz

The number of unique kpoints in ky direction in the reduced basis

ElectronicBandStructure.natoms

The number of atoms

ElectronicBandStructure.nbands

The number of bands

ElectronicBandStructure.nkpoints

The number of k points

ElectronicBandStructure.norbitals

The number of orbitals

ElectronicBandStructure.nprincipals

The number of principal quantum numbers

ElectronicBandStructure.nspins

The number of spin channels

ElectronicBandStructure.projected

ElectronicBandStructure.projected_mesh

projected mesh is a numpy array that stores each projection in a mesh grid.

ElectronicBandStructure.projected_phase

ElectronicBandStructure.projected_phase_mesh

projected phase mesh is a numpy array that stores each projection phases in a mesh grid.

ElectronicBandStructure.reciprocal_lattice

ElectronicBandStructure.weights

ElectronicBandStructure.weights_mesh

weights mesh is a numpy array that stores each weights in a mesh grid.