fullseye

gaussian_beam — OPTICS wave op

使い方

Gaussian-beam propagation: spot size, wavefront curvature and Gouy phase.

The q-parameter solution of the paraxial wave equation, evaluated at distance_mm from the waist. With zR = pi*w0^2*n/lambda:

w(z) = w0*sqrt(1 + (z/zR)^2) · R(z) = z*(1 + (zR/z)^2) · psi(z) = arctan(z/zR) (Gouy) · far-field half-divergence theta = lambda/(pi*n*w0).

Returns a dict: radius_um the 1/e^2 field radius w(z) · rayleigh_mm zR · wavefront_radius_mm R(z) · curvature_per_mm 1/R(z) · gouy_deg · divergence_mrad the far-field half angle · waist_um and distance_mm echoed back.

wavefront_radius_mm is inf exactly at the waist, by contract: the wavefront there is planar and a plane has infinite radius. That is why curvature_per_mm is also returned — it is 0 at the waist and finite everywhere, so downstream arithmetic never has to divide by an infinity. A negative R (before the waist, z < 0) means a converging wavefront.

Ground truth it reproduces exactly (verified at machine precision): at z = zR the spot is sqrt(2)*w0, the wavefront radius is 2*zR (its minimum over all z) and the Gouy phase is exactly 45 degrees; the beam-parameter product w0*theta = lambda/(pi*n) holds for every input.

Raises ValueError: non-positive or non-finite waist_um, wavelength_um, n_medium; non-finite distance_mm.

Paraxial and fundamental-mode (TEM00) only: a real multimode beam needs an M^2 factor, which this op deliberately does not fake by accepting one silently.

ファミリ共通の入力契約(fail-closed)

optics の全 op は入力を検証してから計算する(黙って通さない):

詳しい使い方ガイド

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(table を入力に取れる)

abcd_matrix · wavefront_stats · paraxial_trace · seidel_coefficients · spot_stats · tolerance_analysis · wavefront_from_opd · spot_diagram

同カテゴリ(wave)

airy_pattern · angular_spectrum_propagate · fraunhofer_pattern · defocus_from_shift · pupil_psf · pupil_blur


Provenance: optics.py — OPTICS operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.