Ionisation.jl
Luna.Ionisation.ADK_threshold
— MethodADK_threshold(ionpot)
Determine the lowest electric field strength at which the ADK ionisation rate for the ionisation potential ionpot
is non-zero to within 64-bit floating-point precision.
Luna.Ionisation.barrier_suppression
— Methodbarrier_suppression(ionpot, Z)
Calculate the barrier-suppresion field strength for the ionisation potential ionpot
and charge state Z
.
Luna.Ionisation.ionfrac
— Methodionfrac(rate, E, δt)
Given an ionisation rate function rate
and an electric field array E
sampled with time spacing δt
, calculate the ionisation fraction as a function of time on the same time axis.
The function rate
should have the signature rate!(out, E)
and place its results into out
, like the functions returned by e.g. ionrate_fun!_ADK
or ionrate_fun!_PPTcached
.
Luna.Ionisation.ionrate_fun!_ADK
— Functionionrate_fun!_ADK(ionpot::Float64, threshold=true)
ionrate_fun!_ADK(material::Symbol)
Return a closure ionrate!(out, E)
which calculates the ADK ionisation rate for the electric field E
and places the result in out
. If threshold
is true, use ADK_threshold
to avoid calculation below floating-point precision. If cycle_average
is true
, calculate the cycle-averaged ADK ionisation rate instead.
Luna.Ionisation.ionrate_fun!_PPTaccel
— Methodionrate_fun!_PPTaccel(material::Symbol, λ0; kwargs...)
ionrate_fun!_PPTaccel(ionpot::Float64, λ0, Z, l; kwargs...)
Create an accelerated (interpolated) PPT ionisation rate function.
Luna.Ionisation.ionrate_fun!_PPTcached
— Methodionrate_fun!_PPTcached(material::Symbol, λ0; kwargs...)
ionrate_fun!_PPTcached(ionpot::Float64, λ0, Z, l; kwargs...)
Create a cached (saved) interpolated PPT ionisation rate function. If a saved lookup table exists, load this rather than recalculate.
Keyword arguments
N::Int
: Number of samples with which to create theCSpline
interpolant.Emax::Number
: Maximum field strength to include in the interpolant.cachedir::String
: Path to the directory where the cache should be stored and loaded from. Defaults to HOME/.luna/pptcache
Other keyword arguments are passed on to ionrate_fun_PPT
Luna.Ionisation.ionrate_fun_PPT
— Methodionrate_fun_PPT(ionpot::Float64, λ0, Z, l; sum_tol=1e-4, cycle_average=false)
Create closure to calculate PPT ionisation rate.
Keyword arguments
sum_tol::Number
: Relative tolerance used to truncate the infinite sum.cycle_average::Bool
: Iffalse
(default), calculate the cycle-averaged rate
References
[1] Ilkov, F. A., Decker, J. E. & Chin, S. L. Ionization of atoms in the tunnelling regime with experimental evidence using Hg atoms. Journal of Physics B: Atomic, Molecular and Optical Physics 25, 4005–4020 (1992)
[2] 1.Bergé, L., Skupin, S., Nuter, R., Kasparian, J. & Wolf, J.-P. Ultrashort filaments of light in weakly ionized, optically transparent media. Rep. Prog. Phys. 70, 1633–1713 (2007) (Appendix A)
Luna.Ionisation.keldysh
— Methodkeldysh(material, λ, E)
Calculate the Keldysh parameter for the given material
at wavelength λ
and electric field strength E
.
Luna.Ionisation.φ
— Methodφ(m, x)
Calculate the φ function for the PPT ionisation rate.
Note that wm(x) in [1] and φm(x) in [2] look slightly different but are in fact identical.