src.RadiativeTransfer.Profile.Voigt¶
-
src.RadiativeTransfer.Profile.
Voigt
(*args, **kwargs)¶ Calculate Doppler width normalized voigt function using polynomial fitting formula.
voigt(a,x) function itself is not a vectorized function, only available to scalar operation. so we applied
nb.vectorize([nb.float64(nb.float64,nb.float64)],nopython=True).
- Parameters
a (np.double or array-like) – damping constant normalized by Doppler width, [-]
x (np.double or array-like) – Doppler width normalized mesh, [-]
- Returns
res – voigt function, normalized to 1, [-]
- Return type
np.double or array-like
Notes
The Voigt function is not normalized but has area \(\sqrt{\pi}\) in x unit
This is a combination of Humlicek(1982) 1 and Hui et al.(1978) 2 methods.
When \(a > 0.1\), one can not ignore the wing component of Voigt function. That is, to guarantee its normalization, one has to take care of whether the mesh points are wide enough.
References
- 1
J.Humlicek, ‘Optimized computation of the voigt and complex probability functions’, Journal of Quantitative Spectroscopy and Radiative Transfer (JQSRT), Volume 27, Issue 4, April 1982, Pages 437-444.
- 2
A.K.Hui, B.H.Armstrong, A.A.Wray, ‘Rapid computation of the Voigt and complex error functions’, Journal of Quantitative Spectroscopy and Radiative Transfer (JQSRT), Volume 19, Issue 5, May 1978, Pages 509-516.