pyprocar.core.DensityOfStates#

class pyprocar.core.DensityOfStates(energies: ndarray[Any, dtype[float64]], total: ndarray[Any, dtype[float64]], efermi: float, projected: ndarray[Any, dtype[float64]] | None = None, interpolation_factor: int = 1)[source]#

A class that contains density of states calculated by the a density functional theory calculation.

Parameters:
  • energies (np.ndarray,) – Points on energy spectrum. shape = (n_dos, )

  • total (np.ndarray) – Densities at each point. shape = (n_dos, )

  • efermi (float) – Fermi energy of the system.

  • projected (np.ndarray, optional) – Projection of elements, orbitals, spin, etc. shape = (n_atoms, n_principals, n_orbitals, n_spins, n_dos) i_principal works like the principal quantum number n. The last index should be the total. (i_principal = -1) n = i_principal => 0, 1, 2, 3, -1 => s, p, d, total i_orbital works similar to angular quantum number l, but not the same. i_orbital follows this order (0, 1, 2, 3, 4, 5, 6, 7, 8) => s, py, pz, px, dxy, dyz, dz2, dxz, dx2-y2. i_spin works as magnetic quantum number. m = 0, 1, for spin up and down, by default None.

  • interpolation_factor (int, optional) – The number of density of states points will increase by this factor in the interpolation, by default 1.

Methods

DensityOfStates.__init__(energies, total, efermi)

DensityOfStates.coupled_to_uncoupled_basis()

Converts coupled projections to uncoupled projections.

DensityOfStates.dos_sum([atoms, ...])

DensityOfStates.get_current_basis()

Returns a string of current orbital basis

Attributes

DensityOfStates.is_non_collinear

Boolean for if this is non-colinear calc

DensityOfStates.n_dos

The number of dos values

DensityOfStates.n_energies

The number of energy values

DensityOfStates.n_spins

The number of spin channels