Ionisation.jl

Luna.Ionisation.ADK_thresholdMethod
ADK_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.

source
Luna.Ionisation.ionfracMethod
ionfrac(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.

source
Luna.Ionisation.ionrate_fun!_ADKFunction
ionrate_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.

source
Luna.Ionisation.ionrate_fun!_PPTaccelMethod
ionrate_fun!_PPTaccel(material::Symbol, λ0; kwargs...)
ionrate_fun!_PPTaccel(ionpot::Float64, λ0, Z, l; kwargs...)

Create an accelerated (interpolated) PPT ionisation rate function.

source
Luna.Ionisation.ionrate_fun!_PPTcachedMethod
ionrate_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 the CSpline 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

source
Luna.Ionisation.ionrate_fun_PPTMethod
ionrate_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.
  • cycle_average::Bool: If false (default), calculate the cycle-averaged rate
  • 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.
  • msum::Bool: for l ≠ 0, whether or not to sum over different m states. Defaults to true.
  • Cnl::Real : Pre-calculated Cₙₗ 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).

source
Luna.Ionisation.keldyshMethod
keldysh(material, λ, E)

Calculate the Keldysh parameter for the given material at wavelength λ and electric field strength E.

source
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.

source