The change of Sigma_12¶
![../_images/sphx_glr_plot_sigma_12_001.png](../_images/sphx_glr_plot_sigma_12_001.png)
# Created Mon Mar 7 01:14:02 2016
# Author: Óscar Nájera
from __future__ import division, absolute_import, print_function
from math import log, ceil
import numpy as np
import matplotlib.pyplot as plt
import dmft.dimer as dimer
from dmft import ipt_imag
import dmft.common as gf
def ipt_u_tp(tprange, u_int, beta):
tau, w_n = gf.tau_wn_setup(dict(BETA=beta, N_MATSUBARA=2**11))
giw_d, giw_o = dimer.gf_met(w_n, 0., tprange[0], 0.5, 0.)
giw_d, giw_o, loops = dimer.ipt_dmft_loop(
beta, u_int + 3, tprange[0], giw_d, giw_o, tau, w_n, 1e-10)
sigma = []
for tp in tprange:
giw_d, giw_o, loops = dimer.ipt_dmft_loop(
beta, u_int, tp, giw_d, giw_o, tau, w_n, 1e-10)
g0iw_d, g0iw_o = dimer.self_consistency(
1j * w_n, 1j * giw_d.imag, giw_o.real, 0., tp, 0.25)
siw_d, siw_o = ipt_imag.dimer_sigma(
u_int, tp, g0iw_d, g0iw_o, tau, w_n)
sigma.append(siw_o.real)
return np.array(sigma)
tprange = np.arange(0.1, 1, 0.1)
BETA = 512.
tau, w_n = gf.tau_wn_setup(dict(BETA=BETA, N_MATSUBARA=2**11))
sigma = ipt_u_tp(tprange, 3, BETA)
plt.plot(w_n, sigma.T)
plt.show()
le = [np.polyfit(w_n[:2], s[:2], 1)[1] for s in sigma]
plt.plot(tprange, sigma[:, 0])
plt.plot(tprange, le + tprange)
plt.show()
Total running time of the script: ( 0 minutes 0.709 seconds)