.. _sphx_glr_dimer_lattice_plot_bandwith_dos.py: =========================================== Evolution of DOS as function of temperature =========================================== Using a real frequency solver in the IPT scheme the Density of states is tracked through the first orders transition. .. image:: /dimer_lattice/images/sphx_glr_plot_bandwith_dos_001.png :align: center .. rst-class:: sphx-glr-script-out Out:: D/U: 0.4 tp/U: 0.2 Beta 60 D/U: 0.37037037037 tp/U: 0.2 Beta 60 D/U: 0.344827586207 tp/U: 0.2 Beta 60 0.999643296063 0.999643302756 0.999643308605 | .. code-block:: python # Created Tue Jun 14 15:44:38 2016 # Author: Óscar Nájera from __future__ import division, absolute_import, print_function import numpy as np import scipy.signal as signal from scipy.integrate import trapz import matplotlib.pyplot as plt from joblib import Parallel, delayed import dmft.common as gf import dmft.ipt_real as ipt from dmft.utils import optical_conductivity plt.matplotlib.rcParams.update({'axes.labelsize': 22, 'xtick.labelsize': 14, 'ytick.labelsize': 14, 'axes.titlesize': 22}) def loop_bandwidth(drange, tp, beta, seed='mott gap'): """Solves IPT dimer and return Im Sigma_AA, Re Simga_AB returns list len(betarange) x 2 Sigma arrays """ s = [] g = [] w = np.linspace(-6, 6, 2**13) dw = w[1] - w[0] gssi = gf.semi_circle_hiltrans(w + 5e-3j - tp - 1) gsai = gf.semi_circle_hiltrans(w + 5e-3j + tp + 1) nfp = gf.fermi_dist(w, beta) for D in drange: print('D/U: ', D, 'tp/U: ', tp, 'Beta', beta) (gss, gsa), (ss, sa) = ipt.dimer_dmft( 1, tp, nfp, w, dw, gssi, gssi, conv=1e-2, t=(D / 2)) g.append((gss, gsa)) s.append((ss, sa)) return np.array(g), np.array(s), w, nfp def plot_spectralfunc(gwi, drange, yshift=False): plt.figure() shift = 0 for (gss, gsa), D in zip(gwi, drange): Awloc = -.5 * (gss + gsa).imag / np.pi print(trapz(Awloc, w)) plt.plot(w, Awloc, label=r'D/U={:.2}'.format(D)) plt.plot(w, Awloc * nfp, 'k:') plt.xlabel(r'$\omega$') plt.ylabel(r'$A(\omega)$') plt.legend(loc=0) plt.xlim([-1.7, 0]) drange = 1 / np.array([2.5, 2.7, 2.9]) giw, swi, w, nfp = loop_bandwidth(drange, 0.2, 60) plot_spectralfunc(giw, drange) plt.title(r"Bandwidth drop @ $t_\perp/U=0.2$, $\beta/U=60$") #giw, swi, w, nfp = loop_bandwidth(drange, 0.3, 180) #plot_spectralfunc(giw, drange) #plt.title(r"Bandwidth drop @ $t_\perp/U=0.17$, $\beta/U=150$") **Total running time of the script:** ( 0 minutes 0.823 seconds) .. container:: sphx-glr-footer .. container:: sphx-glr-download :download:`Download Python source code: plot_bandwith_dos.py ` .. container:: sphx-glr-download :download:`Download Jupyter notebook: plot_bandwith_dos.ipynb ` .. rst-class:: sphx-glr-signature `Generated by Sphinx-Gallery `_