Logo

A physics toolbox for laser spectroscopy.

Static Badge Static Badge Static Badge

Static Badge Static Badge

© 2025 Patrick Müller. All rights reserved.

qspec.simulate. Interaction.rates  (  t delta = None m = 0 v = None y0 = None analytic = False  )[source]

Solver for the rate equations $$\begin{aligned} \frac{\partial\rho_{ii}}{\partial t} &= \sum\limits_j \left[ \left(\sum\limits_m R_{ij}^m\right)(\rho_{jj} - \rho_{ii}) + \Gamma_{\!ij}\,\rho_{jj} - \Gamma_{\!ji}\,\rho_{ii}\right]\\[2ex] R_{ij}^m &= \frac{|\Omega_{ij}^m|^2\,\tilde{\Gamma}_{\!ij}}{ (\omega^\prime_m - \omega_{ij})^2 + \frac{1}{4}\tilde{\Gamma}_{\!ij}^2}\\[2ex] \omega^\prime_m &= 2\pi(\nu_m + \Delta_m) \gamma(\vec{v})(1 - \hat{k}_m\cdot\frac{\vec{v}}{c})\\[2ex] \tilde{\Gamma}_{\!ij} &= \sum\limits_u\sum\limits_{Xk_{ui}}A_{iu}^{Xk_{ui}} + \sum\limits_v\sum\limits_{Xk_{vj}}A_{jv}^{Xk_{vj}}\\[2ex] \Gamma_{\!ij} &= \sum\limits_{Xk_{ij}} (a_{ij,k_{ij}}^{m_j - m_i})^2\,A_{ji}^{Xk_{ij}}\\[2ex] a_{ij,k_{ij}}^\lambda &= (-1)^{F_i + I + k_{ij} + J_j}\sqrt{(2F_i + 1)(2J_j + 1)} \langle F_im_ik_{ij}\lambda|F_jm_j\rangle\begin{Bmatrix}J_j & J_i & k_{ij} \\F_i & F_j & I\end{Bmatrix}\\[2ex] X_{\!ij} &= \begin{cases}+1, & \text{if electric } (\mathrm{E}k_{ij}) \\ \ \,0, & \text{if magnetic } (\mathrm{M}k_{ij})\end{cases}, \end{aligned}$$ where $A_{ji}^{Xk_{ij}}$ is the Einstein coefficient for the electric (magnetic) decay $|i\rangle\rightarrow|f\rangle$ and the rank-$k_{fi}$ multipole order, $\vec{v}$ is the velocity vector of the atom, $\hat{k}_m$ is the direction of laser m, $\Delta_m$ is the detuning of lasers m, $\gamma(\vec{v})$ is the time-dilation factor, see qspec.physics.gamma_3d and $\Omega_{ij}^m$ is the Rabi frequency induced by laser m, see qspec.simulate.Interaction.rabi. Solutions for n samples can be calculated in parallel for nt times.

Parameters:
tarray_like

The times $t$ when to compute the solution. Any array is cast to the shape (nt, ), where nt is the size of the array t (μs).

deltaarray_like

An array of laser frequency shifts $\vec{\Delta}$. delta must be a scalar, a 1d- or 2d-array with shapes (n, ) or (n, nl), respectively, where nl is the number of lasers of the Interaction (MHz).

mOptional[int]

The index of the shifted laser. If delta is a 2d-array, m ist omitted.

varray_like

Atom velocities $\vec{v}$. Must be a scalar or have shape (n, ) or (n, 3). In the first two cases, the velocity vector(s) are assumed to be aligned with the $x$-axis (m/s).

y0array_like

The initial state of the Atom. This must be None or have shape (Atom.size, ) or (n, Atom.size). If None, all states with the same label as the first State in atom.states are populated equally.

analyticbool

Calculate the rate equations analytically through a matrix exponential (True) or numerically (False, default).

Returns:
diag_rho_tndarray

The integrated rate equations as a real-valued array of shape (n, atom.size, nt).

API navigation