Classical Trajectory Monte Carlo (CTMC) simulation for strong-field ionization of Krypton (Kr) atoms in 3D with quantum phase tracking.
This code simulates electron trajectories during strong-field ionization of Kr atoms using the Classical Trajectory Monte Carlo method within the Strong Field Approximation (SFA) framework. The simulation:
- Samples initial conditions from the quantum tunneling distribution
- Propagates classical trajectories in 3D under the combined Coulomb and laser fields
- Tracks the quantum phase (action integral) along each trajectory
- Outputs ionized electron trajectories and their quantum phases
ctmc_simulation.cpp- Main CTMC simulation- Parallel MPI implementation
- Samples initial electron positions and momenta at tunnel exit
- Integrates classical equations of motion using Boost odeint
- Tracks quantum phase accumulation
- Outputs trajectory data for post-processing
analysis/phase_analysis.cpp- Post-processing and momentum distribution- Reads simulation output files
- Computes asymptotic momenta via Kepler orbit extrapolation
- Accumulates quantum phase contributions
- Generates 3D momentum probability distribution
toml11/- TOML configuration parsertoml++/- Alternative TOML parser
- Stark-shifted ionization potential: Accounts for AC Stark shift due to laser field
- Tunneling initial conditions: Electron starts at tunnel exit with appropriate momentum distribution
- Quantum phase tracking: Accumulates semiclassical action along trajectory
- Elliptically polarized laser pulse
- Sin² envelope with configurable number of cycles
- Carrier-envelope phase (CEP) control
- Parameters read from
conf.toml
- Soft-core Coulomb potential: V(r) = -Z/(r + a)
- Includes static polarizability (αN) and ionic polarizability (αI)
The simulation reads parameters from conf.toml:
[laser]
frequency = 0.05695 # Laser frequency (a.u.)
intensity = 1.0e14 # Laser intensity (W/cm²)
ellipticity = 0.0 # Ellipticity (0=linear, 1=circular)
cep = 0.0 # Carrier-envelope phase (radians)
[atom]
ip = 0.514 # Ionization potential (a.u.)
alphaN = 16.8 # Static polarizability (a.u.)
alphaI = 3.0 # Ionic polarizability (a.u.)- C++17 compiler (g++, clang++)
- Boost libraries (odeint, math)
- MPI library (OpenMPI, MPICH)
- toml11 header library
- fmt library (for analysis)
- xtensor (for analysis)
# Main simulation
mpic++ -std=c++17 -O3 -o ctmc_simulation ctmc_simulation.cpp \
-I./toml11 -lboost_system
# Analysis
g++ -std=c++17 -O3 -o phase_analysis analysis/phase_analysis.cpp \
-I./toml11 -lfmt -lpthread# Run with MPI (e.g., 10 processes)
mpirun -np 10 ./ctmc_simulationEach MPI process generates:
t0rat###.txt- Ionization times and weightsini###.txt- Initial positions and momenta (x0, y0, z0, px0, py0, pz0)electron###.txt- Final positions, momenta, and phases (x, y, z, px, py, pz, phase)counts###.txt- Number of trajectories attempted
# Process all output files
cd analysis
./phase_analysisout.npy- 3D momentum probability distribution (NumPy format)counts.txt- Total trajectory count
- Sample ionization time t₀ uniformly over one laser cycle
- Compute tunnel exit position from WKB theory
- Sample transverse momenta from Gaussian distribution
- Sample longitudinal momentum from tunneling rate
- Accept/reject based on ADK-like probability
- Integrator: Runge-Kutta-Dopri5 with adaptive step size
- Equations of motion: Classical Newton's equations in combined Coulomb + laser field
- Phase accumulation: dS/dt = -(p²/2 - Z/r)
- Filter trajectories with positive energy (E > 0)
- Compute asymptotic momentum via Kepler orbit extrapolation
- Add phase contribution from Coulomb tail
- Bin into 3D momentum grid with quantum phase
- Energy: Hartree (27.2 eV)
- Length: Bohr radius (0.529 Å)
- Time: ℏ/Hartree (24.2 as)
- Electric field: 5.14 × 10⁹ V/cm
- Kr ionization potential: 0.514 a.u. (14.0 eV)
- Laser wavelength: 800 nm → ω = 0.057 a.u.
- Laser intensity: 10¹⁴ W/cm² → E₀ = 0.053 a.u.
This code implements the CTMC-SFA method for strong-field ionization:
- Quantum tunneling initial conditions from ADK/PPT theory
- Classical trajectory propagation
- Semiclassical phase tracking for quantum interference
- The simulation generates ~10⁸ trajectories for good statistics
- MPI parallelization distributes trajectory sampling across processes
- Phase tracking enables computation of quantum interference patterns
- The analysis code performs Coulomb asymptotic correction for accurate final momenta