gftool.lattice.sc.dos_mp

gftool.lattice.sc.dos_mp(eps, half_bandwidth=1)[source]

Multi-precision DOS of non-interacting 3D simple cubic lattice.

Has a van Hove singularity (continuous but not differentiable) at abs(eps) = D/3.

Implements Eq. 7.37 from [joyce1973] for the special case of eps = 0, otherwise calls gf_z_mp.

Parameters:
epsmpmath.mpf or mpf_like

DOS is evaluated at points eps.

half_bandwidthmpmath.mpf or mpf_like

Half-bandwidth of the DOS of the simple cubic lattice. The half_bandwidth corresponds to the nearest neighbor hopping \(t=D/6\).

Returns:
mpmath.mpf

The value of the DOS.

References

[economou2006]

Economou, E. N. Green’s Functions in Quantum Physics. Springer, 2006.

[joyce1973]

G. S. Joyce, Phil. Trans. of the Royal Society of London A, 273, 583 (1973). https://www.jstor.org/stable/74037

[katsura1971]

S. Katsura et al., J. Math. Phys., 12, 895 (1971). https://doi.org/10.1063/1.1665663

Examples

>>> eps = np.linspace(-1.1, 1.1, num=501)
>>> dos_mp = [gt.lattice.sc.dos_mp(ee, half_bandwidth=1) for ee in eps]
>>> dos_mp = np.array(dos_mp, dtype=np.float64)
>>> import matplotlib.pyplot as plt
>>> _ = plt.axvline(1/3, color="black", linewidth=0.8)
>>> _ = plt.axvline(-1/3, color="black", linewidth=0.8)
>>> _ = plt.plot(eps, dos_mp)
>>> _ = plt.xlabel(r"$\epsilon/D$")
>>> _ = plt.ylabel(r"DOS * $D$")
>>> _ = plt.axvline(0, color="black", linewidth=0.8)
>>> _ = plt.ylim(bottom=0)
>>> _ = plt.xlim(left=eps.min(), right=eps.max())
>>> plt.show()

(png, pdf)

../_images/gftool-lattice-sc-dos_mp-1.png