17.1.1.8. pysisyphus.franckcondon package

17.1.1.8.1. Submodules

17.1.1.8.2. pysisyphus.franckcondon.duschinsky module

class pysisyphus.franckcondon.duschinsky.AxisSwitch(T0, B0, masses, coords3d_init, coords3d_final, coords3d_init_rot)[source]

Bases: object

B0: ndarray
T0: ndarray
coords3d_final: ndarray
coords3d_init: ndarray
coords3d_init_rot: ndarray
masses: ndarray
class pysisyphus.franckcondon.duschinsky.DuschinskyRef(value)

Bases: Enum

An enumeration.

FINAL = 2
INITIAL = 1
class pysisyphus.franckcondon.duschinsky.DuschinskyResult(J, K, ref)[source]

Bases: object

J: ndarray
K: ndarray
ref: DuschinskyRef
to_K_unitless(wavenums)[source]
pysisyphus.franckcondon.duschinsky.duschinsky(L_init, coords3d_init, L_final, coords3d_final, masses, reference=DuschinskyRef.INITIAL, with_axis_switch=True)[source]

Duschinsky matrix & displacment matrix according to [1].

Q' = JQ + K J = L'^T L (Duschinsky matrix J) K = L'^T m^(1/2) * (x^0 - x^0') (Displacement vector)

Return type:

DuschinskyResult

pysisyphus.franckcondon.duschinsky.get_axis_switch(coords3d_init, coords3d_final, masses, planar=False)[source]
pysisyphus.franckcondon.duschinsky.unitless_displs_from_eigensystem(mw_gradient, eigenvalues, eigenvectors)[source]

Unitless displacements from gradient and normal mode eigensystem.

Useful to determine Huang-Rhys factors and/or displacements in situations where no Hessian is avaialable or its calculation is impossible, e.g., in excited state calculations.

Parameters:
  • mw_gradient (ndarray) -- Mass-weighted gradient in atomic units Eh/(a0 sqrt(amu)).

  • eigenvalues (ndarray) -- Eigenvalues of the projected, mass-weighted Hessian in Eh/(a0² amu).

  • eigenvectors (ndarray) -- Eigenvectors of the projected, mass-weighted Hessian. Unitless.

Return type:

Unitless displacements along the normal modes.

17.1.1.8.3. pysisyphus.franckcondon.helpers module

pysisyphus.franckcondon.helpers.nu2angfreq_au(wavenum)[source]

Angular frequency in atomic units from wavenumber in cm⁻¹.

pysisyphus.franckcondon.helpers.nu2eV(wavenum)[source]

Wavenumber to electronvolt.

17.1.1.8.4. pysisyphus.franckcondon.imdho module

pysisyphus.franckcondon.imdho.get_crossec_integrand(dE_exc, gamma, displs, nus)[source]

Integral in eq. (2) of [1].

dE_exc - excitation energy, in wavenumbers gamma - in wavenumbers

pysisyphus.franckcondon.imdho.imdho_abs_cross_section(dEs_inc, dE_exc, gamma, displs, nus, ithresh=1e-06)[source]

17.1.1.8.5. pysisyphus.franckcondon.lq2 module

pysisyphus.franckcondon.lq2.lq2_abs_cross_sec(E, f_osc, dE_vert, angfreqs, displacements)[source]

LQ2 absorption cross section.

Eq. (11) in [1].

Parameters:
  • E (ndarray) -- Array containing the energies of the incident photon in atomic units.

  • f_osc (float) -- Oscillator strength.

  • dE_vert (float) -- Vertic excitation energy of the excited state in atomic units.

  • angfreqs (ndarray) -- Array of normal mode angular frequncies in atomic units.

  • displacements (ndarray) -- Array of unitless displacements in along the normal modes.

Returns:

Array containing absorption cross sections. Its maximum will be centered at the excitation energy. In [1] the peak is shifted by its HWHM. See just below eq. (11) in [1] for the formula. While the sigmas are calculated for the values in the array 'E', they should be plotted at 'E' + 'hwhm'.

Return type:

sigma

17.1.1.8.6. Module contents