Numerical simulation of a Gaussian laser beam propagating through vacuum over the mean Earth-Moon distance. The project uses fixed-grid and adaptive Split-Step Fourier methods, then checks the numerical result against the exact Gaussian-beam solution and independent convergence diagnostics.
For a 1064 nm, 1 W Gaussian beam with an initial 0.5 m radius, the adaptive simulation predicts a 260.38 m beam radius at 384,400 km. The numerical radius follows the analytic Gaussian solution throughout the propagation and the total optical power remains constant to numerical precision.
| Quantity | Value |
|---|---|
| Numerical beam radius at lunar distance | 260.379006 m |
| Analytic Gaussian radius | 260.378986 m |
| Relative radius error | 7.69 x 10^-8 |
| Final peak irradiance | 9.390055 x 10^-6 W/m^2 |
| Maximum relative power drift | 1.39 x 10^-13 |
This is an idealized vacuum calculation. It excludes atmospheric turbulence, absorption, pointing error, optical imperfections, and nonlinear effects, so it is a numerical-method study rather than a complete Earth-to-Moon link budget.
A conventional FFT propagator uses one physical transverse grid. At lunar distance, a narrow launch beam expands by more than two orders of magnitude; resolving both the launch profile and the final profile on one grid is inefficient and eventually exposes the periodic FFT boundary.
The adaptive solver factors out the known Gaussian expansion and wavefront curvature, then evolves the residual field in scaled coordinates:
xi = r / (w0 a(z)), zeta = arctan(z / z_R),
a(z) = sqrt(1 + (z/z_R)^2).
The transformed field is advanced with a second-order Strang Split-Step Fourier scheme. This keeps the computational beam resolved while the physical grid expands with the beam.
The full course implementation was checked through:
- convergence in longitudinal step size, transverse resolution, and box size;
- conservation of total optical power;
- boundary-leakage and high-spatial-frequency diagnostics;
- agreement with the analytic Gaussian radius at multiple distances;
- comparison of fixed-grid and adaptive formulations in their valid regimes.
The compact code in this repository preserves the verified Gaussian-beam core
in a reusable package. Additional figures from the full validation run are
included in figures/.
The tabulated values above are stored in
results/reference_run.json for comparison with
future changes.
python -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[plots,test]"
python examples/run_earth_moon.py
pytest
python examples/make_figures.pyThe baseline adaptive run uses a 256 x 256 grid and 2,000 propagation steps.
Generated plots are written to outputs/.
src/earth_moon_laser/ physical model, grids, and propagators
examples/ baseline run and figure generation
tests/ analytic and conservation checks
figures/ selected results from the full validation suite
results/ reference parameters and numerical output
Developed as a second-year Classical Electrodynamics project at École Polytechnique by Leo Pintar, Lazar Popadić, Maria Bugrim, and Tudor Novac. The wider project combined the theoretical derivation, numerical implementation, validation, and interpretation of long-distance paraxial propagation. This repository presents the computational implementation and its validation in a reproducible form.
The project report is available in the team's shared project folder.
No reuse license has been selected yet. The source is visible for review, but reuse requires permission from the authors until a license is added.


