g.ylabel('A (1/meV)') g.plot( Gnuplot.Data(xs, ref, **{'with': 'lines lt 2 lc rgbcolor "blue" lw 2'}), Gnuplot.Data(xs, ys, **{'with': 'lines lt 1 lc rgbcolor "red" lw 2'}) ) g.hardcopy(name, color=1, terminal='postscript') print("File printed to %s" % name) kelvin = 8.6173423e-5 * 1000 # 1K in meV n = 1 for k in (0.6, -0.3): xs = linspace(-0.6, k, 2000) energies = harmonic_energies(hf=0.5) T = 5 * 0.5 print("calc %s" % n); n += 1 t0 = datetime.utcnow() calc = { 'leads': [ invibro.Lead(0.0, T, 0.025, linear_coupling(0.5), 50000.0), invibro.Lead(0.0, T, 0.025, linear_coupling(0.5), 50000.0) ], 'e_level': 0.0, 'ph_energy': energies, 'ph_state': thermal_dist(T, energies) } ref = lorentzian(xs, calc) ys = invibro.density_of_states(xs, calc) render(xs, ys, ref, '/tmp/falloff-highT_%s.ps' % k) print("finished in: %s" % (datetime.utcnow() - t0)) print("")
return matrix(n, m, -L) else: return (exp(-g) * g ** (n - m) * fact(m)/fact(n)) ** 0.5 * \ laguerre(m, n - m, g) * sgn(L) ** (n - m) return lambda m, n: matrix(m, n, L) w0 = 0.02 # eV T = 0.0258520269 # 300K in eV invibro.dim=8 energies = harmonic_energies(0.02) q = invibro.mat_from_fn(displace(1.0)) qbar = q.T.conjugate() rho_0 = invibro.mat_from_fn(thermal_dist(T, energies)) rho_0 /= rho_0.trace() rho_1 = qbar.dot(rho_0).dot(q) from datetime import datetime import Gnuplot def plot(xs, ys, name, first=False): g = Gnuplot.Gnuplot() g('set xrange [1.88:2.08]') g('set yrange [0:200]') g('set xtics 1.92,0.04,2.04') g('set size 0.5,0.5') if first: g('set ytics 0,40,320') else: g('set ytics -80,400,320')