# Electron related functions

In sisl electronic structure calculations are relying on routines specific for electrons. For instance density of states calculations from electronic eigenvalues and other quantities.

This module implements the necessary tools required for calculating DOS, PDOS, band-velocities and spin moments of non-colinear calculations. One may also plot real-space wavefunctions.

 DOS(E, eig[, distribution]) Calculate the density of states (DOS) for a set of energies, E, with a distribution function PDOS(E, eig, state[, S, distribution, spin]) Calculate the projected density of states (PDOS) for a set of energies, E, with a distribution function COP(E, eig, state, M[, distribution, tol]) Calculate the Crystal Orbital Population for a set of energies, E, with a distribution function berry_phase(contour[, sub, eigvals, closed, ...]) Calculate the Berry-phase on a loop path berry_curvature(state, energy, dHk[, dSk, ...]) Calculate the Berry curvature matrix for a set of states (using Kubo) conductivity(bz[, distribution, method, ...]) Electronic conductivity for a given BrillouinZone integral wavefunction(v, grid[, geometry, k, spinor, ...]) Add the wave-function (Orbital.psi) component of each orbital to the grid spin_moment(state[, S, project]) Spin magnetic moment (spin texture) and optionally orbitally resolved moments spin_squared(state_alpha, state_beta[, S]) Calculate the spin squared expectation value between two spin states

## Supporting classes

Certain classes aid in the usage of the above methods by implementing them using automatic arguments.

For instance, the PDOS method requires the overlap matrix in non-orthogonal basis sets at the $$k$$-point corresponding to the eigenstates. Hence, the argument S must be $$\mathbf S(\mathbf k)$$. The EigenstateElectron class automatically passes the correct S because it knows the states $$k$$-point.

 CoefficientElectron(c[, parent]) Coefficients describing some physical quantity related to electrons StateElectron(state[, parent]) A state describing a physical quantity related to electrons StateCElectron(state, c[, parent]) A state describing a physical quantity related to electrons, with associated coefficients of the state EigenvalueElectron(c[, parent]) Eigenvalues of electronic states, no eigenvectors retained EigenvectorElectron(state[, parent]) Eigenvectors of electronic states, no eigenvalues retained EigenstateElectron(state, c[, parent]) Eigen states of electrons with eigenvectors and eigenvalues.