pyprocar.core.ElectronicBandStructure — PyProcar 6.2.1 documentation

Skip to main content
`Ctrl`+`K`

# 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)

  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.general_rotation`(...) | Apply a rotation defined by an angle and an axis.
  `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.mirror_x`(kpoints, ...) | Applies the given rotational crystal symmetry to the current system.
  `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`([...]) | 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.rot_symmetry_z`(...) | Applies the given rotational crystal symmetry to the current system.
  `ElectronicBandStructure.translate`(newOrigin, ...) | Centers the Kpoints at newOrigin, newOrigin is either and index (of some Kpoint) or the cartesian coordinates of one point in the reciprocal space.
  `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.