PDOS

sisl.physics.electron.PDOS(E, eig, state, S=None, distribution='gaussian', spin=None)[source]

Calculate the projected density of states (PDOS) for a set of energies, E, with a distribution function

The \(\mathrm{PDOS}(E)\) is calculated as:

\[\mathrm{PDOS}_i(E) = \sum_\alpha \psi^*_{\alpha,i} [\mathbf S | \psi_{\alpha}\rangle]_i D(E-\epsilon_\alpha)\]

where \(D(\Delta E)\) is the distribution function used. Note that the distribution function used may be a user-defined function. Alternatively a distribution function may be aquired from distribution.

In case of an orthogonal basis set \(\mathbf S\) is equal to the identity matrix. Note that DOS is the sum of the orbital projected DOS:

\[\mathrm{DOS}(E) = \sum_i\mathrm{PDOS}_i(E)\]

For non-colinear calculations (this includes spin-orbit calculations) the PDOS is additionally separated into 4 components (in this order):

  • Total projected DOS

  • Projected spin magnetic moment along \(x\) direction

  • Projected spin magnetic moment along \(y\) direction

  • Projected spin magnetic moment along \(z\) direction

These are calculated using the Pauli matrices \(\boldsymbol\sigma_x\), \(\boldsymbol\sigma_y\) and \(\boldsymbol\sigma_z\):

\[\begin{split}\mathrm{PDOS}_i^\sigma(E) &= \sum_\alpha \psi^*_{\alpha,i} \boldsymbol\sigma_z \boldsymbol\sigma_z [\mathbf S | \psi_\alpha\rangle]_i D(E-\epsilon_\alpha) \\ \mathrm{PDOS}_i^x(E) &= \sum_\alpha \psi^*_{\alpha,i} \boldsymbol\sigma_x [\mathbf S | \psi_\alpha\rangle]_i D(E-\epsilon_\alpha) \\ \mathrm{PDOS}_i^y(E) &= \sum_\alpha \psi^*_{\alpha,i} \boldsymbol\sigma_y [\mathbf S | \psi_\alpha\rangle]_i D(E-\epsilon_\alpha) \\ \mathrm{PDOS}_i^z(E) &= \sum_\alpha\psi^*_{\alpha,i} \boldsymbol\sigma_z [\mathbf S | \psi_\alpha\rangle]_i D(E-\epsilon_\alpha)\end{split}\]

Note that the total PDOS may be calculated using \(\boldsymbol\sigma_\gamma\boldsymbol\sigma_\gamma\) where \(\gamma\) may be either of \(x\), \(y\) or \(z\).

Parameters:
  • E (array_like) – energies to calculate the projected-DOS from

  • eig (array_like) – eigenvalues

  • state (array_like) – eigenvectors

  • S (array_like, optional) – overlap matrix used in the \(\langle\psi|\mathbf S|\psi\rangle\) calculation. If None the identity matrix is assumed. For non-colinear calculations this matrix may be halve the size of len(state[0, :]) to trigger the non-colinear calculation of PDOS.

  • distribution (func or str, optional) – a function that accepts \(E-\epsilon\) as argument and calculates the distribution function.

  • spin (str or Spin, optional) – the spin configuration. This is generally only needed when the eigenvectors correspond to a non-colinear calculation.

See also

sisl.physics.distribution

a selected set of implemented distribution functions

DOS

total DOS (same as summing over orbitals)

COP

calculate COOP or COHP curves

spin_moment

spin moment

Geometry.apply

allows one to convert orbital data, to atomic data

Returns:

numpy.ndarray – projected DOS calculated at energies, has dimension (1, state.shape[1], len(E)). For non-colinear calculations it will be (4, state.shape[1] // 2, len(E)), ordered as indicated in the above list.