Strong-field physics¶
Generated from the docstrings in the source code.
strongfield
¶
Strong-field and attosecond physics in atomic units (ℏ = mₑ = e = 1).
Laser-parameter conversions, the classical three-step ("simple-man") model of high-harmonic generation, and the spectral tools used to analyse a time-dependent dipole: harmonic spectra, Gabor time–frequency maps and attosecond pulses synthesised from a band of harmonics.
wavelength_to_omega(wavelength_nm: float) -> float
¶
intensity_to_field(intensity_w_cm2: float) -> float
¶
Peak electric field (a.u.) of a linearly polarised beam of given peak intensity.
ponderomotive_energy(field: float, omega: float) -> float
¶
U_p = E₀² / (4ω²), the cycle-averaged quiver energy of a free electron.
classical_returns(n_phases: int = 2000)
¶
Three-step model in a field E(t) = E₀ cos(ωt): an electron born at rest at phase φ₀ = ωt₀ moves as x ∝ cos φ − cos φ₀ + (φ − φ₀) sin φ₀ and returns to the core at the first φ_r > φ₀ where x = 0, with kinetic energy 2U_p (sin φ_r − sin φ₀)².
Returns:
| Name | Type | Description |
|---|---|---|
birth_phase, return_phase : ndarray
|
φ₀ and φ_r in radians, for the trajectories that return. |
|
return_energy |
ndarray
|
Kinetic energy at return in units of U_p; its maximum is ≈ 3.17. |
Source code in quantumlab/strongfield.py
classical_cutoff(ionisation_potential: float, field: float, omega: float) -> float
¶
Classical HHG cutoff energy I_p + max(E_return), i.e. I_p + 3.17 U_p (a.u.).
Source code in quantumlab/strongfield.py
harmonic_spectrum(signal: np.ndarray, dt: float, omega0: float, window: bool = True)
¶
Power spectrum |FFT|² of a dipole signal (acceleration or moment) versus harmonic order ω/ω₀. A Hann window suppresses spectral leakage.
Source code in quantumlab/strongfield.py
gabor_transform(signal: np.ndarray, dt: float, omega0: float, orders, width: float, times=None)
¶
Time–frequency map |∫ a(t') e^{−(t'−t)²/2σ²} e^{−iωt'} dt'|² on a grid of
harmonic orders, with Gaussian window width σ = width (a.u. of time).
The time resolution is σ and the frequency resolution 1/σ. Only the
samples within ±6σ of each centre contribute (the window is < 2e-8 beyond).
Returns (times, orders, map[time, order]).
Source code in quantumlab/strongfield.py
attosecond_pulses(signal: np.ndarray, dt: float, omega0: float, order_min: float, order_max: float)
¶
Intensity envelope |a_filtered(t)|² of the band order_min ≤ ω/ω₀ ≤ order_max, obtained by filtering the spectrum and transforming back (analytic signal).
Source code in quantumlab/strongfield.py
dipole_acceleration(wf, base_potential, force: float) -> float
¶
Dipole acceleration a(t) = ⟨−∂V₀/∂x⟩ + F(t) for H = p²/2 + V₀(x) − F(t)x
(Ehrenfest's theorem). Uses the potential's analytic gradient when it
has one, otherwise a spectral derivative of V₀.