Exemplo n.º 1
0
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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
# 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)])