pyprocar.core.ElectronicBandStructure

class pyprocar.core.ElectronicBandStructure(kpoints: ndarray[tuple[int, Literal[3]], dtype[float64]] | None = None, fermi: float = 0.0, bands: ndarray[tuple[int, int, int], dtype[float64]] | None = None, projected: ndarray[tuple[int, int, int, int, int], dtype[float64]] | None = None, projected_phase: ndarray[tuple[int, int, int, int, int], dtype[float64]] | None = None, weights: ndarray[tuple[int, int], dtype[float64]] | None = None, orbital_names: list[str] | None = None, reciprocal_lattice: ndarray[tuple[Literal[3], Literal[3]], dtype[float64]] | None = None, shifted_to_fermi: bool = False, structure: Structure | None = None, point_set: PointSet | 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)

  • fermi (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

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

  • orbital_names (list, optional) – The names of the orbitals. Defaults to None

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

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

Methods

ElectronicBandStructure.__init__([kpoints, ...])

ElectronicBandStructure.compute_ebs_ipr(**kwargs)

ElectronicBandStructure.compute_ebs_ipr_atom(...)

ElectronicBandStructure.compute_projected_sum([...])

ElectronicBandStructure.compute_projected_sum_spin_texture([...])

ElectronicBandStructure.compute_property(...)

ElectronicBandStructure.compute_spin_texture(...)

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

_summary_

ElectronicBandStructure.extract_band_index(label)

ElectronicBandStructure.extract_property_label(label)

ElectronicBandStructure.fix_collinear_spin([...])

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

ElectronicBandStructure.from_code(code, dirpath)

ElectronicBandStructure.get_atom_label(atoms)

ElectronicBandStructure.get_atomic_orbital_label(...)

ElectronicBandStructure.get_band_label(...)

ElectronicBandStructure.get_band_property_label(...)

ElectronicBandStructure.get_orbital_label(...)

ElectronicBandStructure.get_property([key])

ElectronicBandStructure.get_property_gradient_label(...)

ElectronicBandStructure.get_property_hessian_label(...)

ElectronicBandStructure.get_spin_projection_label(...)

ElectronicBandStructure.has_spin_channels(...)

ElectronicBandStructure.is_band_property(...)

ElectronicBandStructure.is_orbital_property(...)

ElectronicBandStructure.iter_properties()

ElectronicBandStructure.load(path)

ElectronicBandStructure.reduce_bands([...])

ElectronicBandStructure.reduce_bands_by_index(bands)

Reduces the bands to those near the fermi energy

ElectronicBandStructure.reduce_bands_near_energy(energy)

Reduces the bands to those near the fermi energy

ElectronicBandStructure.reduce_bands_near_fermi([...])

Reduces the bands to those near the fermi energy

ElectronicBandStructure.save(path)

ElectronicBandStructure.shift_bands(shift_value)

ElectronicBandStructure.shift_kpoints_to_fbz([...])

ElectronicBandStructure.unfold([...])

The method helps unfold the bands.

Attributes