def set_cor_func(for_agg, params, ax_len = 10000): ax_length = ax_len # Needs to have small step for the dynamics to converge t_ax_sd = qr.TimeAxis(0.0, ax_length, 1) db = SpectralDensityDB() # Parameters for spectral density. ODBO, Renger or Silbey params = params with qr.energy_units('1/cm'): sd_low_freq = qr.SpectralDensity(t_ax_sd, params) reorg = qr.convert(sd_low_freq.measure_reorganization_energy(), "int", "1/cm") print("spectral density reorg -", reorg) # Adding the high freq modes sd_high_freq = db.get_SpectralDensity(t_ax_sd, "Wendling_JPCB_104_2000_5825") ax = sd_low_freq.axis sd_high_freq.axis = ax sd_tot = sd_low_freq + sd_high_freq cf = sd_tot.get_CorrelationFunction(temperature=params['T'], ta=t_ax_sd) # Assigning the correlation function to the list of molecules for mol in for_agg: mol.set_transition_environment((0,1),cf)
def assign_spec_dens(self, sd_type = 'OverdampedBrownian', high_freq = True): t_ax_sd = qr.TimeAxis(0.0, 10000, 1) db = SpectralDensityDB() # Parameters for spectral density. ODBO, Renger or Silbey params = { "ftype": sd_type, "alternative_form": True, "reorg": self.reorg, "T": self.temp, "cortime": self.cor_time } with qr.energy_units('1/cm'): sd_low_freq = qr.SpectralDensity(t_ax_sd, params) if high_freq: # Adding the high freq modes sd_high_freq = db.get_SpectralDensity(t_ax_sd, "Wendling_JPCB_104_2000_5825") ax = sd_low_freq.axis sd_high_freq.axis = ax sd_tot = sd_low_freq + sd_high_freq cf = sd_tot.get_CorrelationFunction(temperature=self.temp, ta=t_ax_sd) # Assigning the correlation function to the list of molecules else: cf = sd_low_freq.get_CorrelationFunction(temperature=self.temp, ta=t_ax_sd) for mol in self.mol_list: mol.set_transition_environment((0,1),cf)
# Needs to have small step for the dynamics to converge t_ax_sd = qr.TimeAxis(0.0, 10000, 1) db = SpectralDensityDB() # Parameters for spectral density. ODBO, Renger or Silbey params = { "ftype": "OverdampedBrownian", #"ftype": "B777", "alternative_form": True, "reorg": reorganisation, "T": temperature, "cortime": cor_time } with qr.energy_units('1/cm'): sd_low_freq = qr.SpectralDensity(t_ax_sd, params) # Adding the high freq modes sd_high_freq = db.get_SpectralDensity(t_ax_sd, "Wendling_JPCB_104_2000_5825") ax = sd_low_freq.axis sd_high_freq.axis = ax sd_tot = sd_low_freq + sd_high_freq cf = sd_tot.get_CorrelationFunction(temperature=temperature, ta=t_ax_sd) # Assigning the correlation function to the list of molecules for mol in for_agg: mol.set_transition_environment((0, 1), cf) if _test_: with qr.energy_units("1/cm"): sd_tot.plot(show=True, axis=[0, 2000, 0.0, np.max(sd_tot.data)])