PlasmaDispersionFunctions

Quickstart

julia> using PlasmaDispersionFunctions
julia> Z(0)0.0 + 1.7724538509055159im
julia> Z(1.0 + 1.0im)-0.3690584588490665 + 0.5401450401487555im
julia> Z(1.0 + 1.0im, Kappa(5))-0.3287839474818036 + 0.4817312441757257im
PlasmaDispersionFunctions.ZFunction
Z(ζ, [f, l])

\[Z_l(ζ)= \int_{-\infty}^{\infty} \frac{x^l f(x)}{x-ζ} dx\]

Calculate the genralized plasma dispersion function for an arbitrary distribution function f of order l.

source
PlasmaDispersionFunctions.ZMethod
Z(ζ, Kappa(κ))

Modified kappa plasma dispersion function (Summers & Thorne), defined as

\[Z_{κ}(ζ)=\frac{\Gamma(κ+1)}{\sqrt{\pi\,κ^3}\,\Gamma(κ-1/2)} \int_{-\infty}^{\infty}\frac{dx}{(x-ζ)\,(1+x^2/κ)^{κ+1}},\qquad \Im(ζ)>0.\]

For any positive integer $κ$ and all $ζ \neq \pm i\sqrt{κ}$, a closed-form expansion is used:

\[Z_{κ}(ζ)=\frac{i(κ-1/2)}{2κ^{3/2}}\,\frac{κ!}{(2κ)!} \sum_{l=1}^{κ+1}\frac{(κ+l-1)!}{(l-1)!}\left(\frac{2i}{(ζ/\sqrt{κ})+i}\right)^{κ-l+2}.\]

source
PlasmaDispersionFunctions.ZMethod
Z(ζ, Maxwellian(), l)

\[Z_l(ζ) \equiv \frac{1}{\sqrt{\pi}} \int \frac{ x^l e^{-x^2} }{x-ζ} \,dx,\]

satisfy the recurrence relation

\[Z_l(ζ) = ζ Z_{l-1}(ζ) + I_l\]

where $I_l = \int x^l e^{-x^2}\,dx / \sqrt{\pi}$ is the l-th moment of the Maxwellian distribution.

source
PlasmaDispersionFunctions.ZMethod
Z(ζ, Maxwellian())

\[Z(ζ) = \frac{1}{\sqrt{π}} \int \frac{e^{-x^2}}{x-ζ}\,dx,\qquad \Im(ζ)>0\]

Implemented via the Faddeeva function:

\[Z(ζ) = i\sqrt{π}\,w(ζ),\qquad w(z)=e^{-z^2}\,\operatorname{erfc}(-iz).\]

source

Benchmarks

julia> using Chairmarks
julia> ζ = 1.0 + 1.0im1.0 + 1.0im
julia> @b Z($ζ, 3)163.531 ns
julia> @b Z($ζ, Kappa(5))620.085 ns
julia> @b Z($ζ, Kappa(5.00001))20.888 μs (4 allocs: 960 bytes)