Faddeeva function

The Faddeeva function or Kramp function is a scaled complex complementary error function,

It is related to the Fresnel integral, to Dawson's integral, and to the Voigt function.

The function arises in various physical problems in describing electromagnetic response in complicated media.

Properties

Real and imaginary parts

The decomposition into real and imaginary parts is usually written

,

where V and L are called the real and imaginary Voigt functions, since V(x,y) is the Voigt profile (up to prefactors).

Sign inversion

For sign-inverted arguments, the following both apply:

and

where * denotes complex conjugate.

Integral representation

The Faddeeva function occurs as

meaning that it is a convolution of a Gaussian with a simple pole.

History

The function was tabulated by Faddeeva and Terent'ev in 1954.[5] It appears as nameless function w(z) in Abramowitz and Stegun (1964), formula 7.1.3. The name Faddeeva function was apparently introduced by Poppe and Wijers in 1990;[6] previously, it was known as Kramp's function (probably after Christian Kramp).[7]

Early implementations used methods by Gautschi (1969/70; ACM Algorithm 363)[8] or by Humlicek (1982).[9] A more efficient algorithm was proposed by Poppe and Wijers (1990; ACM Algorithm 680).[10] Weideman (1994) proposed a particularly short algorithm that takes no more than eight lines of Matlab code.[11] Zaghloul and Ali pointed out deficiencies of previous algorithms and proposed a new one (2011; ACM Algorithm 916).[2] Another algorithm has been proposed by Abrarov and Quine (2011/2012).[12]

Implementations

Two software implementations, which are free for non-commercial use only[13] (and hence are not Free and open-source software), were published in ACM Transactions on Mathematical Software (TOMS) as Algorithm 680 (in Fortran,[14] later translated into C[15]) and Algorithm 916 by Zaghloul and Ali (in MATLAB).[16]

Gnuplot incorporates a C implementation of the Humlicek algorithm, which is fast but relatively low precision. A free/open-source C++ implementation derived from a combination of Algorithm 680 and Algorithm 916 (using different algorithms for different z) is also available under the MIT License.[17] This implementation is also available as a plug-in for Matlab,[17] GNU Octave,[17] and in Python via Scipy as scipy.special.wofz (which was originally the TOMS 680 code, but was replaced due to copyright concerns[18]), and it has been packaged into a C library libcerf.[19]

References

  1. 1 2 http://nlpc.stanford.edu/nleht/Science/reference/errorfun.pdf
  2. 1 2 M. R. Zaghloul and A. N. Ali, ACM Transactions on Mathematical Software 38(2)15 (2011)
  3. Richard Fitzpatrick, Plasma Dispersion Function, Plasma Physics lecture notes, University of Texas at Austin (2011/3/31).
  4. Brendel, R.; Bormann, D. (1992). "An infrared dielectric function model for amorphous solids". Journal of Applied Physics. 71 (1): 1. doi:10.1063/1.350737. ISSN 0021-8979.
  5. V. N. Faddeeva and N. N. Terent'ev: Tables of values of the function for complex argument. Gosud. Izdat. Teh.-Teor. Lit., Moscow, 1954; English transl., Pergamon Press, New York, 1961. Unverified citation, copied from Poppe and Wijers (1990).
  6. Earliest search result in Google Scholar as of Oct 2012.
  7. For instance in Al'pert, Space Science Reviews 6, 781 (1967), formula (3.13), with reference to Faddeeva and Terent'ev.
  8. See references 3 and 4 in Poppe and Wijers (1990).
  9. J. Humlicek, J. Quant. Spectrosc. Radiat. Transfer 27, 437-444 (1982).
  10. G. P. M. Poppe and C. M. J. Wijers, ACM Transactions on Mathematical Software 16, 38-46 (1990).
  11. J. A. C. Weideman, SIAM J. Numer. Anal. 31, 1497-1518 (1994).
  12. S. M. Abrarov and B. M. Quine, Appl. Math. Comp. 218, 1894-1902 (2011) and arXiv:1205.1768v1 (2012).
  13. http://www.acm.org/publications/policies/softwarecrnotice
  14. http://www.cs.kent.ac.uk/people/staff/trh/CALGO/680.gz
  15. http://spec.jpl.nasa.gov/ftp/pub/calpgm/collisions/ZWOFZ.C
  16. Mofreh R. Zaghloul and Ahmed N. Ali, "Algorithm 916: Computing the Faddeyeva and Voigt Functions," ACM Trans. Math. Soft. 38 (2), 15 (2011). Preprint available at arXiv:1106.0151.
  17. 1 2 3 Faddeeva Package, free/open-source C++ implementation, accessed 13 October 2012.
  18. https://github.com/scipy/scipy/issues/2260
  19. http://apps.jcns.fz-juelich.de/libcerf
This article is issued from Wikipedia - version of the 8/18/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.