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 theCSplineinterpolant.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; kwargs...)Create closure to calculate PPT ionisation rate.
Keyword arguments
sum_tol::Number: Relative tolerance used to truncate the infinite sum. Defaults to 1e-6.cycle_average::Bool: Iftrue, calculate the cycle-averaged rate. Defaults tofalse.sum_integral::Bool: whether to approximate the infinite sum in the PPT rate equation with an integral (this neglects the multiphoton thresholds).Δα::Number: polarisability difference between the ground state and the cation (in SI units) to calculate the Stark shift of the ground-state energy levels. Defaults to 0.α_ion::Number: polarisability of the cation (in SI units) to calculate the dipole correction to the rate. Defaults to 0.msum::Bool: for l ≠ 0, whether or not to sum over different m states. Defaults totrue.Cnl::Real: Pre-calculatedCₙₗconstant. If not given, defaults to the approximate expression from the PPT papers.occupancy: Occupancy of the state(s) from which ionisation is considered. Defaults to 2 for a state with two electrons (spin up/down).
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] 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)
[3] A. Couairon and A. Mysyrowicz, "Femtosecond filamentation in transparent media," Physics Reports 441(2–4), 47–189 (2007).
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.