(np.sum(c_alphas * c_betas ** 3) - np.sum(c_alphas ** 3 * c_betas)) * g_site_dot[k] + 2.0j * np.sum(c_betas ** 3 * c_alphas) * site_reorg_energy ) ** 2 ) for k, t in enumerate(time) ] ) mixing_integral1 = [] mixing_integral2 = [] for i, delta_E in enumerate(delta_E_values): evals, evecs = utils.sorted_eig(hamiltonian(delta_E, 20.0)) rates, abs_lineshapes, fl_lineshapes, mixing_function, time2 = os.modified_redfield_relaxation_rates( hamiltonian(delta_E, 20.0), np.array([reorg_energy, reorg_energy]), cutoff_freq, None, temperature, 0, 0.5 ) # mixing_integral1.append(integrate.simps(mixing_function[0,1], time2[:-5])) # mixing_integral2.append(integrate.simps(new_mixing_function(time, evecs[0], evecs[1], reorg_energy, site_lbf, site_lbf_dot, site_lbf_dot_dot))) mixing_integral1.append(mixing_function[0, 1]) mixing_integral2.append( new_mixing_function(time, evecs[0], evecs[1], reorg_energy, site_lbf, site_lbf_dot, site_lbf_dot_dot) ) plt.plot(delta_E_values, mixing_integral1[0], label="1") plt.plot(delta_E_values, mixing_integral2[0], label="2", linewidth=2, ls="--", color="red") plt.legend() # plt.plot(delta_E_values, [np.abs(mixing_integral1[i] - mixing_integral2[i]) for i in range(len(mixing_integral1))]) plt.show()
reorg_energy = 100. # wavenumbers cutoff_freq = 53. # wavenumbers temperature = 300. ''' Code to calculate rates for various coupling strengths and energy gaps between the monomers in a dimer, then saves data to file for plotting ''' rates_data = [] for i, V in enumerate(coupling_values): print 'calculating rates for coupling ' + str(V) rates = [] for delta_E in delta_E_values: rates.append( os.modified_redfield_relaxation_rates( hamiltonian(delta_E, V), np.array([reorg_energy, reorg_energy]), cutoff_freq, None, temperature, 0)[0, 1]) plt.subplot(1, coupling_values.size, i + 1) rates_data.append(rates) plt.loglog(delta_E_values, np.array(rates) * utils.WAVENUMS_TO_INVERSE_PS, label=V) # plot extracted data from Ed's thesis xdata, ydata = np.loadtxt('../../data/thieved_data' + str(i) + '.txt', delimiter=', ', unpack=True) plt.loglog(xdata, ydata, color='red') plt.xlabel(r'$\Delta E$ (cm$^{-1}$)') plt.ylabel(r'rate')
reorg_energy = 100.0 # wavenumbers cutoff_freq = 53.0 # wavenumbers temperature = 300.0 """ Code to calculate rates for various coupling strengths and energy gaps between the monomers in a dimer, then saves data to file for plotting """ rates_data = [] for i, V in enumerate(coupling_values): print "calculating rates for coupling " + str(V) rates = [] for delta_E in delta_E_values: rates.append( os.modified_redfield_relaxation_rates( hamiltonian(delta_E, V), np.array([reorg_energy, reorg_energy]), cutoff_freq, None, temperature, 0 )[0, 1] ) plt.subplot(1, coupling_values.size, i + 1) rates_data.append(rates) plt.loglog(delta_E_values, np.array(rates) * utils.WAVENUMS_TO_INVERSE_PS, label=V) # plot extracted data from Ed's thesis xdata, ydata = np.loadtxt("../../data/thieved_data" + str(i) + ".txt", delimiter=", ", unpack=True) plt.loglog(xdata, ydata, color="red") plt.xlabel(r"$\Delta E$ (cm$^{-1}$)") plt.ylabel(r"rate") plt.ylim(0.01, 200) plt.xlim(5, 1000) plt.legend()
np.exp(2. * np.sum(c_alphas**2 * c_betas**2) * (g_site[k] + 1.j * site_reorg_energy * t)) * ((np.sum(c_alphas**2 * c_betas**2) * g_site_dot_dot[k]) - ((np.sum(c_alphas * c_betas**3) - np.sum(c_alphas**3 * c_betas)) * g_site_dot[k] + 2.j * np.sum(c_betas**3 * c_alphas) * site_reorg_energy)**2) for k, t in enumerate(time) ]) mixing_integral1 = [] mixing_integral2 = [] for i, delta_E in enumerate(delta_E_values): evals, evecs = utils.sorted_eig(hamiltonian(delta_E, 20.)) rates, abs_lineshapes, fl_lineshapes, mixing_function, time2 = os.modified_redfield_relaxation_rates( hamiltonian(delta_E, 20.), np.array([reorg_energy, reorg_energy]), cutoff_freq, None, temperature, 0, 0.5) # mixing_integral1.append(integrate.simps(mixing_function[0,1], time2[:-5])) # mixing_integral2.append(integrate.simps(new_mixing_function(time, evecs[0], evecs[1], reorg_energy, site_lbf, site_lbf_dot, site_lbf_dot_dot))) mixing_integral1.append(mixing_function[0, 1]) mixing_integral2.append( new_mixing_function(time, evecs[0], evecs[1], reorg_energy, site_lbf, site_lbf_dot, site_lbf_dot_dot)) plt.plot(delta_E_values, mixing_integral1[0], label='1') plt.plot(delta_E_values, mixing_integral2[0], label='2', linewidth=2, ls='--', color='red')