Partial density of states

class rhodent.pdos.PDOSCalculator(voronoi, energies, sigma, gpw_file=None, zerofermi=False)[source]

PDOS calculator

Parameters:
  • voronoi (VoronoiWeights) – Voronoi weights object

  • energies (list[float] | ndarray[Any, dtype[float64]]) – Array of energies (in eV) for which the broadened PDOS is computed

  • sigma (float) – Gaussian broadening width in eV

  • gpw_file (Optional[str]) – Filename of GPAW ground state file

  • zerofermi (bool) – Eigenvalues relative to Fermi level if True, else relative to vacuum

property calc: gpaw.GPAW

GPAW Calculator object

property energies: ndarray[Any, dtype[float64]]

Energy grid in eV

icalculate()[source]

Read eigenvalues and wave functions from ground state and calculate broadened PDOS.

The PDOS is projected on each group of atoms in atom_projections. Calculates Voronoi weights from ground state file using LCAO basis function overlaps and PAW corrections,

\[W_{nn'} = \left<\psi_n|\hat{w}|\psi_{n'}\right> = \int w(\vec{r}) \psi_n^*(\vec{r}) \psi_{n'}(\vec{r}) d\vec{r}\]

where the operator \(\hat{w} = w(\vec{r})\) is 1 in the Voronoi region of the atomic projections and 0 outside.

Parameters:
  • voronoi – Voronoi weights calculator/reader

  • sigma – Gaussian broadening width in eV

Yields:

Once per atom group in atom_projections a dictionary with keys –

  • weight_n - Array of dimensions (Nn) of projections. None on non-root ranks.

  • pdos_e - Broadened PDOS. None on non-root ranks.

Return type:

Generator[dict[str, ndarray[Any, dtype[float64]] | None], None, None]

property log: Logger

Logger

property sigma: float

Gaussian broadening width in eV.

property voronoi: VoronoiWeights

Voronoi weights object