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 fromeig (
array_like
) – eigenvaluesstate (
array_like
) – eigenvectorsS (
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 oflen(state[0, :])
to trigger the non-colinear calculation of PDOS.distribution (
func
orstr
, optional) – a function that accepts \(E-\epsilon\) as argument and calculates the distribution function.spin (
str
orSpin
, 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.