dos: 2D tetrahedron methods¶

elphmod.dos.
double_delta
(x, y, f=None, eps=1e07)¶ Calculate doubledelta integrals via 2D tetrahedron method .
\[I(z) = \frac 1 N \sum_{\vec k} \delta(x_{\vec k}  z) \delta(y_{\vec k}  z) f_{\vec k}\] Parameters
 x, y, fndarray
Three functions sampled on uniform N x N mesh.
 epsndarray
Negligible difference between fractional meshpoint indices.
 Returns
 functionfloat > dict
Intersection points of \(x, y = z\) isolines and corresponding weights as a function of \(z\). The above doubledelta integral \(I(z)\) can be calulated as:
I_z = sum(double_delta(x, y, f)(z).values())

elphmod.dos.
hexDOS
(energies)¶ Calculate DOS from energies on triangular mesh (2D tetrahedron method).
Integration over all energies yields unity.
Derivation: The density of states can be expressed as
\[\rho(E) = \frac 1 V \int_{W(k) = E} \frac{\D k}{\vec \nabla W(k)},\]where \(V\) is the volume of a reciprocal unit cell, \(W(k)\) is the dispersion relation and the integral is over an isoenergy surface/line in k space.
In the following, consider a two dimensional reciprocal unit cell which can be divided into \(2 \times N \times N\) equilateral triangles of reciprocal side length \(a\), on each of which the energy is interpolated linearly. On a triangle with the energies \(A, B, C\) at its corners, the gradient of the energy plane is
\[\vec \nabla W = \frac 2 {\sqrt 3 a} \sqrt{A^2 + B^2 + C^2  A B  A C  B C}.\]For the special case \(A < B < E < C\), the reciprocal length of the \(E\) isoline within the triangle reads
\[\D k = a \sqrt{A^2 + B^2 + C^2  A B  A C  B C} \frac{C  E}{(C  A) (C  B)}.\]Taking into account that \(V = N^2 a^2 \sqrt 3 / 2\), one finds the contribution of this triangle to the density of states:
\[\frac 1 {N^2} \frac{C  E}{(C  A) (C  B)}.\]

elphmod.dos.
hexa2F
(energies, couplings)¶ Calculate a2F from energies and coupling.
Integration over all energies yields the arithmetic mean of the coupling.
Note that it may be more convenient to calculate the mass renormalization
\[\lambda_n = \int_0^\infty \D \omega \frac{2 \omega \alpha^2 F(\omega)} {\omega^2 + \omega_n^2} = N(0) \sum_{\vec q \nu} \frac{2 \omega_{\vec q \nu} g^2_{\vec q \nu}} {\omega_{\vec q \nu}^2 + \omega_n^2}\]directly from energies and couplings, without integrating this function.

elphmod.dos.
isoline
(energies)¶ Calculate isoline on triangular mesh (2D tetrahedron method).