The VOIGT function returns the value of the classical Voigt function, H(*a*, *u*), defined in terms of the Voigt damping parameter *a* and the frequency offset *u*:

The dimensionless frequency offset *u* and the damping parameter *a* are determined by:

where ν_{0} is the line center frequency and the Doppler width Δν_{D} (assuming no turbulence), is defined as:

and, Γ is the transition rate:

where γ is the spontaneous decay rate, and ν_{col} is the atomic collision rate. (See *Radiative Processes in Astrophysics* by G. B. Rybicki and A. P. Lightman (1979) p. 291 for more information.)

The Voigt function can be used to compute the intensity of an atomic absorption line profile (also known as a VOIGT profile). The line profile φ(*a*,* u*) is defined as:

The algorithm is from Armstrong, *JQSRT 7*, 85. (1967). The definition of the classical Voigt function H(*a*,*u*) can be found in Equation 7.4.13 of Abramowitz, M. and Stegun, I.A., 1964, *Handbook of Mathematical Functions* (Washington:National Bureau of Standards).

## Syntax

*Result* = VOIGT(*A*,* U*)

## Return Value

If both arguments are scalars, the function returns a scalar. If both arguments are arrays, the function matches up the corresponding elements of A and U, returning an array with the same dimensions as the smallest array. If one argument is a scalar and the other argument is an array, the function uses the scalar value with each element of the array, and returns an array with the same dimensions as the smallest input array. If A is double-precision, the result is double-precision, otherwise the result is single-precision.

## Arguments

### A

A scalar or array specifying the values for the Voigt damping parameter.

### U

A scalar or array specifying the values for the dimensionless frequency offset in Doppler widths.

## Keywords

### Thread Pool Keywords

This routine is written to make use of IDL’s *thread pool*, which can increase execution speed on systems with multiple CPUs. The values stored in the !CPU system variable control whether IDL uses the thread pool for a given computation. In addition, you can use the thread pool keywords TPOOL_MAX_ELTS, TPOOL_MIN_ELTS, and TPOOL_NOTHREAD to override the defaults established by !CPU for a single invocation of this routine. See Thread Pool Keywords for details.

## Version History

Pre-4.0 |
Introduced |