Nonlinear.jl
Luna.Nonlinear.PlasmaCumtrapz
— TypeResponse type for cumtrapz-based plasma polarisation, adapted from: M. Geissler, G. Tempea, A. Scrinzi, M. Schnürer, F. Krausz, and T. Brabec, Physical Review Letters 83, 2930 (1999).
Luna.Nonlinear.PlasmaCumtrapz
— MethodPlasmaCumtrapz(t, E, ratefunc, ionpot)
Construct the Plasma polarisation response for a field on time grid t
with example electric field like E
, an ionization rate callable ratefunc
and ionization potential ionpot
.
Luna.Nonlinear.PlasmaCumtrapz
— MethodHandle plasma polarisation routing to PlasmaVector
or PlasmaScalar
.
Luna.Nonlinear.RamanPolar
— TypeRaman polarisation response type
Luna.Nonlinear.RamanPolar
— MethodCalculate Raman polarisation for field/envelope Et
Luna.Nonlinear.RamanPolarEnv
— TypeRaman polarisation response type for an envelope
Luna.Nonlinear.RamanPolarEnv
— MethodRamanPolarEnv(t, ht)
Construct Raman polarisation response for an envelope on time grid t
using response function r
.
Luna.Nonlinear.RamanPolarField
— TypeRaman polarisation response type for a carrier resolved field
Luna.Nonlinear.RamanPolarField
— MethodRamanPolarField(t, ht; thg=true)
Construct Raman polarisation response for a field on time grid t
using response function r
. If thg=false
then exclude the third harmonic generation component of the response.
Luna.Nonlinear.Kerr_env
— MethodKerr response for envelope
Luna.Nonlinear.Kerr_field
— MethodKerr response for real field
Luna.Nonlinear.Kerr_field_nothg
— MethodKerr response for real field but without THG
Luna.Nonlinear.PlasmaScalar!
— MethodThe plasma response for a scalar electric field
Luna.Nonlinear.PlasmaVector!
— MethodThe plasma response for a vector electric field.
We take the magnitude of the electric field to calculate the ionization rate and fraction, and then solve the plasma polarisation component-wise for the vector field.
A similar approach was used in: C Tailliez et al 2020 New J. Phys. 22 103038.
Luna.Nonlinear.sqr!
— MethodSquare the field or envelope