rydiqule.doppler_utils.get_doppler_equations¶
- rydiqule.doppler_utils.get_doppler_equations(base_eoms: ndarray, doppler_hamiltonians: ndarray, Vs: ndarray, ground_removed: bool = True) ndarray[source]¶
Returns the equations for each slice of the doppler profile.
A new axes corresponding to these slices are appended to the beginning. For example, if equations are of shape
(m,m)and there aren_dopplerdoppler values being sampled, the return will be of shape(n_doppler, m, m).- Parameters:
base_eoms (numpy.ndarray) – Stacked square arrays representing the unshifted equations, i.e. the theoretical equations for an ensemble of atoms with zero momentum.
doppler_hamiltonians (numpy.ndarray) – Arrays of hamiltonians with only doppler shifts present. One for each spatial dimension needed. See
get_doppler_shifts()for details.Vs (numpy.ndarray) – Mesh of velocity classes to sample, with same spatial dimensions as
dop_ham. Seedoppler_mesh()for details.ground_removed (bool, optional) – Whether to remove the ground state from the equations. Default is True.
- Returns:
An array of shape
(*Vs.shape[1:], *base_eoms.shape)which is a, potentially multi-dimensional, stack of individual equations of shape(m, m). Each slice of this stack is an equation of shape(m, m)with the corresponding doppler shifts applied.- Return type:
Note
Each doppler shift is equal to
k_i*vP*det_i, in units of Mrad/s, whereidenotes the einstein summation along the spatial dimensions.detis the normalized velocity class, withvP*det_i=v_igiving the velocity.vPis the most probable speed from the Maxwell-Boltzmann distribution: sqrt(2*kB*T/m).k_iis the k-vector of the field along the same axis asdet_i.doppler_hamiltoniansprovidesk_i*vP,Vsprovidesdet_i.