fgr_py

libra_py.fgr_py.run_NEFGRL_populations(omega_DA, V, omega_nm, gamma_nm, req_nm, shift_NE, params)[source]
Noneq FGR in non-Condon/Condon case (linear coupling) using normal modes

k(t’) = 2/(hbar^2) * Re { int_0^t’ { dtau * C(tau) } }

Compute the non-equilibrium FGR populations as a function of time

Parameters
  • omega_DA (double) – energy gap between donor and acceptor states E(donor) - E(acceptor) [units: a.u.]

  • V (double) – electronic coupling between the two states [units: a.u.]

  • omega_nm (list of doubles) – frequencies of the bath normal modes [units: a.u.]

  • gamma_nm (list of doubles) – couplings of the bath modes to the quantum system/primary mode [units: a.u.]

  • req_nm (list of doubles) – displacements of the normal modes from their equilibrium positions upon the charge transfer

  • shift_NE (list of doubles) – non-equilibrium displacements of the normal modes

  • params (dictionary) –

    parameters controlling the execution of the calculations

    • params[“tmax”] ( double ): time since the initial photoexcitation [units: a.u. of time; default: 10 fs]

    • params[“dt”] ( double ): integration timestep for the forward propagation [units: a.u. of time, ]

    • params[“dtau”] ( double ): integration timestep for backward propagation,

      used to take the integral above (tau = dtau*n < t, where n is integer) [units: a.u.]

    • params[“method”] ( int ): flag that specifies which method to use:

      • 0: Exact quantum result [ default ]

      • 1: LSC

      • 2: CAV

      • 3: CD

      • 4: W0

      • 5: C0

    • params[“dyn_type”] ( int ): flag that selects:

      • 0: Condon [ default ]

      • 1: non-Condon

    • params[“Temperature”] ( double ): temperature of the bath [ units: K, default: 300.0 ]

    • params[“do_output”] ( Boolean ): whether to print out the results in a file [ default: False ]

    • params[“filename”] ( string ): the name of the file where the results would be

      printed out if `do_output` is set to True [ default: “FGR.txt” ]

Returns

(time, rate, pop), where:

  • time ( list of doubles ): time axis [ units: a.u. ]

  • rate ( list of doubles ): time-dependent rate constants [ units: a.u.^-1 ]

  • pop ( list of doubles ): time-dependent population of the donor state

Return type

tuple

libra_py.fgr_py.run_NEFRG_acf(t, omega_DA, V, omega_nm, gamma_nm, req_nm, shift_NE, params)[source]

Noneq FGR in non-Condon/Condon case (linear coupling) using normal modes

Compute the non-equilibrium FGR populations as a function of time

Parameters
  • t (double) – compute the properties (e.g. rates) for the time t [units: a.u.]

  • SeeAlso`run_NEFGRL_populations` - the present function takes the same arguments

Returns

(_tau, _argg_re, _argg_im, _lin_re, _lin_im, _C_re, _C_im, _int_re, _int_im), where:

  • _tau ( list of doubles ): time axis [ units: a.u. ]

  • _argg_re ( list of doubles ): real part of the sum over frequencies - sitting in the exponent, at given tau

  • _argg_im ( list of doubles ): imaginary part of the sum over frequencies - sitting in the exponent, at given tau

  • _lin_re ( list of doubles ): real part of the linear term - in front of the exponent, at given tau

  • _lin_im ( list of doubles ): imaginary part of the linear term - in front of the exponent, at given tau

  • _C_re ( list of doubles ): real part of the time-correlation function, at given tau

  • _C_im ( list of doubles ): real part of the time-correlation function, at given tau

  • _int_re ( list of double ): integral of _C_re to this time point, int_0_t { C(t,tau) dtau } for a fixed t

  • _int_re ( list of double ): integral of _C_re to this time point, int_0_t { C(t,tau) dtau } for a fixed t

Return type

tuple