Functions used for computing molecular vibronic spectra with GBS.

In vibronic spectroscopy, incoming light simultaneously excites a molecule to higher electronic and vibrational states. The difference in the energies of the initial and final states determines the frequency of the photons that are absorbed by the molecule. The probability of the transition between two specific vibrational states are referred to as Franck-Condon factors (FCFs). They determine the intensity of absorption peaks in a vibronic spectrum. A GBS device can be programmed to provide samples that can be processed to obtain the molecular vibronic spectra. Theoretical background on computing vibronic spectra using GBS can be found in [1] and [13].

See also

Vibronic spectra

GBS parameters

The Franck-Condon factor is given by

\[FCF = \left | \left \langle \mathbf{m} |U_{Dok}| \mathbf{n} \right \rangle \right | ^ 2,\]

where \(|\mathbf{m}\rangle\) and \(|\mathbf{n}\rangle\) are the final and initial states, respectively, and \(U_{Dok}\) is known as the Doktorov operator which can be written in terms of displacement \(D_\alpha\), squeezing \(\Sigma_{r}\), and interferometer \(U_{1}, U_{2}\) operators as

\[U_{Dok} = D_\alpha U_{2} \Sigma_{r} U_{1}.\]

A GBS device can be programmed with the \(U_{Dok}\) operator obtained for a given molecule. The function gbs_params() transforms molecular parameters, namely vibrational frequencies, displacement vector and Duschinsky matrix, to the required GBS parameters. Additionally, this function computes two-mode squeezing parameters \(t\), from the molecule’s temperature, which are required by the GBS algorithm to compute vibronic spectra for molecules at finite temperature. The sample() function then takes the computed GBS parameters and generates samples. The VibronicTransition() function is an operation that can be used within the conventional Program interface for application of the Doktorov operator, allowing for greater freedom on the choice of input state and any subsequent quantum operations.

Energies from samples

In the GBS algorithm for vibronic spectra, samples are identified with transition energies. The most frequently sampled energies correspond to peaks of the vibronic spectrum. The function energies() converts samples to energies.


VibronicTransition(U1, r, U2, alpha)

An operation for applying the Doktorov operator \(\hat{U}_{\text{Dok}} = \hat{D}({\alpha}) \hat{R}(U_2) \hat{S}({r}) \hat{R}(U_1)\) on a given state.

energies(samples, w, wp)

Computes the energy \(E = \sum_{k=1}^{N}m_k\omega'_k - \sum_{k=N+1}^{2N}n_k\omega_k\) of each GBS sample in units of \(\text{cm}^{-1}\).

gbs_params(w, wp, Ud, delta[, T])

Converts molecular information to GBS gate parameters.

sample(t, U1, r, U2, alpha, n_samples[, loss])

Generate samples for computing vibronic spectra.