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
Calculate the scalar integral
Converts cartesian coordinates to fractional coordinates
_summary_
It returns the atom-resolved , pIPR:
ElectronicBandStructure.ebs_sum
([atoms, ...])_summary_
ElectronicBandStructure.expand_kpoints_to_supercell_by_axes
([...])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
This function will interpolate an Nd, 3d mesh grid [...,nx,ny,nz]
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
This needs to be moved to core.KPath and updated new implementation of pyvista PolyData
ElectronicBandStructure.ravel_array
(mesh_grid)Reduces the bands to those near the fermi energy
Reduces the kpoints to a plane
The method helps unfold the bands.
Attributes
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
Bands gradient mesh is a numpy array that stores each band gradient in a mesh grid.
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
Bands hessian mesh is a numpy array that stores each band hessian in a mesh grid.
Bands mesh is a numpy array that stores each band in a mesh grid.
fermi speed is a numpy array that stores each fermi speed a list that corresponds to the self.kpoints Shape = [n_kpoints,n_bands]
Fermi speed mesh is a numpy array that stores each Fermi Velocity in a mesh grid.
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
Fermi Velocity mesh is a numpy array that stores each Fermi Velocity in a mesh grid.
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.
Returns the inverse of the reciprocal lattice
Boolean to determine if this is a non-colinear calculation
Returns the kpoints in fractional basis
Kpoint cartesian mesh representation of the kpoints grid.
Kpoint mesh representation of the kpoints grid.
The number of unique kpoints in kx direction in the reduced basis
The number of unique kpoints in kx direction in the reduced basis
The number of unique kpoints in ky direction in the reduced basis
The number of atoms
The number of bands
The number of k points
The number of orbitals
The number of principal quantum numbers
The number of spin channels
projected mesh is a numpy array that stores each projection in a mesh grid.
projected phase mesh is a numpy array that stores each projection phases in a mesh grid.
weights mesh is a numpy array that stores each weights in a mesh grid.