COP

sisl.physics.electron.COP(E, eig, state, M, distribution='gaussian', atol: float = 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 aquired from distribution.

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 (array_like) – energies to calculate the COP from

  • eig (array_like) – eigenvalues

  • state (array_like) – eigenvectors

  • M (array_like) – matrix used in the COP curve.

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

  • atol (float, optional) – 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

sisl.physics.distribution

a selected set of implemented distribution functions

DOS

total DOS

PDOS

projected DOS over all orbitals

spin_moment

spin moment

Returns:

oplist – COP calculated at energies, has dimension (len(E), *M.shape).