COP
- sisl.physics.electron.COP(E, eig, state, M, distribution='gaussian', atol=1e-10)[source]
Calculate the Crystal Orbital Population for a set of energies, E, with a distribution function
The \(\mathrm{COP}(E)\) is calculated as:
\[\mathrm{COP}_{i,j}(E) = \sum_\alpha \psi^*_{\alpha,i}\psi_{\alpha,j} \mathbf M e^{i\mathbf k\cdot \mathbf R} 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 acquired from Distribution functions.
The COP curves generally refers to COOP or COHP curves. COOP is the Crystal Orbital Overlap Population with M being the overlap matrix. COHP is the Crystal Orbital Hamiltonian Population with M being the Hamiltonian.
- Parameters:
E (
ndarray) – energies to calculate the COP fromeig (
ndarray) – eigenvaluesstate (
ndarray) – eigenvectorsM (
ndarray) – matrix used in the COP curve.distribution (Literal['gaussian', 'lorentzian', 'fermi', 'bose-einstein', 'cold', 'step-function', 'heaviside'] | ~typing.Callable[[ArrayLike], ~numpy.ndarray]) – a function that accepts \(E-\epsilon\) as argument and calculates the distribution function.
atol (float) – tolerance value where the distribution should be above before considering an eigenstate to contribute to an energy point, a higher value means that more energy points are discarded and so the calculation is faster.
Notes
This is not tested for non-collinear states. This requires substantial amounts of memory for big systems with lots of energy points.
This method is considered experimental and implementation may change in the future.
See also
- Distribution functions
a selected set of implemented distribution functions
DOStotal DOS
PDOSprojected DOS over all orbitals
spin_momentspin moment