rydiqule.doppler_exact.doppler_1d_exact¶
- rydiqule.doppler_exact.doppler_1d_exact(sensor: Sensor, rtol: float = 1e-05, atol: float = 1e-09) Solution [source]¶
Analytically solves a sensor in steady-state in the presence of 1 dimensional Doppler broadening.
Uses the method outlined in Ref [1]. In particular, it uses Eq. 12 to analytically evaluate the Doppler average in 1D.
This solver is considered more accurate than
solve_steady_state()
since it replaces direct sampling and solving of the velocity classes with a few tensor inversions and calculation of the numerical prefactor. This also leads to faster solves, approximately dictated by the ratio of samples along the doppler axis relative to the other parameter dimensions.- Parameters:
sensor (
Sensor
) – The sensor for which the solution will be calculated. It must define 1 and only 1 dimension of doppler shifts (ie one or more couplings withkvec
with non-zero values on the same dimension).rtol (float, optional) – Relative tolerance parameter for checking 0-eigenvalues when calculating the doppler prefactor. Passed to
isclose()
. Defaults to 1e-5.atol (float, optional) – Absolute tolerance parameter for checking 0-eigenvalues when calculating the doppler prefactor. Passed to
isclose()
. Defaults to 1e-9.
- Returns:
An object containing the solution and related information.
- Return type:
- Raises:
RydiquleError – If the
sensor
does not have exactly 1 dimension of doppler shifts to average over.AssertionError – If the initial rho0 calculation results in an unphysical result.
- Warns:
RydiquleWarning – If the averaged result is not real within tolerances. While rydiqule’s computational basis is real, the method employed here involves complex number floating point calculations. If all is well, the complex parts should cancel to return a real result, but imprecision in floating point operations can occur.
PopulationNotConservedWarning – Before removing the ground state in the final solution, population conservation is confirmed. If the resulting density matrices do not preserve trace, this warning is raised indicating an issue in the calculation.
References