qiu_classical_simulation.wave_optics.gaussian_beam
¶
Gaussian beams through paraxial optical systems, with ABCD ray transfer matrices.
A Gaussian beam of waist radius w0, a distance d behind its waist, is described by
its complex beam parameter q = d + i z_R, with the Rayleigh range
z_R = pi w0**2 / wavelength. A system of ray transfer matrix [[A, B], [C, D]] maps
it to q' = (A q + B) / (C q + D), from which the radius of curvature R of the
wavefront and the beam radius w follow by 1 / q' = 1 / R - i wavelength / (pi w**2).
The matrices of a sequence of elements multiply in reverse order, the last element
first: thin_lens_matrix(f) followed by propagation_matrix(d) is
propagation_matrix(d) @ thin_lens_matrix(f).
Functions:
-
propagation_matrix–Return the ray transfer matrix of a free propagation over a distance.
-
thin_lens_matrix–Return the ray transfer matrix of a thin lens of a focal length.
-
rayleigh_range–Return the Rayleigh range of a Gaussian beam of a waist radius.
-
beam_after_system–Return the wavefront curvature radius and beam radius after an optical system.
-
beam_after_free_space–Return
(R, w)of a beam after a propagation from its waist in a medium. -
beam_after_thin_lens–Return
(R, w)of a beam after a thin lens and a propagation behind it. -
gaussian_signal–Return the field
exp(-(x - mean)**2 / waist**2)of a Gaussian beam on an axis.
propagation_matrix
¶
Return the ray transfer matrix of a free propagation over a distance.
Source code in packages/qiu-classical-simulation/src/qiu_classical_simulation/wave_optics/gaussian_beam.py
20 21 22 | |
thin_lens_matrix
¶
Return the ray transfer matrix of a thin lens of a focal length.
Source code in packages/qiu-classical-simulation/src/qiu_classical_simulation/wave_optics/gaussian_beam.py
25 26 27 | |
rayleigh_range
¶
Return the Rayleigh range of a Gaussian beam of a waist radius.
Source code in packages/qiu-classical-simulation/src/qiu_classical_simulation/wave_optics/gaussian_beam.py
30 31 32 | |
beam_after_system
¶
beam_after_system(waist: float, distance_from_waist: float, wavelength: float, matrix: NDArray[float64]) -> tuple[float, float]
Return the wavefront curvature radius and beam radius after an optical system.
Parameters:
-
waist(float) –The waist radius of the incoming beam.
-
distance_from_waist(float) –The distance the beam propagated from its waist to the entrance of the system.
-
wavelength(float) –The wavelength in the medium.
-
matrix(NDArray[float64]) –The ray transfer matrix of the system.
Returns:
-
float–The radius of curvature
Rof the wavefront, infinite for a flat one, and the -
float–beam radius
w, at the exit of the system.
Source code in packages/qiu-classical-simulation/src/qiu_classical_simulation/wave_optics/gaussian_beam.py
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | |
beam_after_free_space
¶
beam_after_free_space(waist: float, distance: float, wavelength: float, refractive_index: float) -> tuple[float, float]
Return (R, w) of a beam after a propagation from its waist in a medium.
Parameters:
-
waist(float) –The waist radius of the beam.
-
distance(float) –The propagation distance from the waist.
-
wavelength(float) –The vacuum wavelength.
-
refractive_index(float) –The refractive index of the medium.
Source code in packages/qiu-classical-simulation/src/qiu_classical_simulation/wave_optics/gaussian_beam.py
63 64 65 66 67 68 69 70 71 72 73 74 75 76 | |
beam_after_thin_lens
¶
beam_after_thin_lens(waist: float, distance: float, focal_length: float, wavelength: float, refractive_index: float, distance_from_waist: float = 0.0) -> tuple[float, float]
Return (R, w) of a beam after a thin lens and a propagation behind it.
Parameters:
-
waist(float) –The waist radius of the incoming beam.
-
distance(float) –The propagation distance behind the lens.
-
focal_length(float) –The focal length of the lens.
-
wavelength(float) –The vacuum wavelength.
-
refractive_index(float) –The refractive index of the medium around the lens.
-
distance_from_waist(float, default:0.0) –The distance from the waist of the incoming beam to the lens.
Source code in packages/qiu-classical-simulation/src/qiu_classical_simulation/wave_optics/gaussian_beam.py
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | |
gaussian_signal
¶
gaussian_signal(axis: PhysicalAxis, waist: float, mean: float) -> AlgebraicSignal
Return the field exp(-(x - mean)**2 / waist**2) of a Gaussian beam on an axis.
Source code in packages/qiu-classical-simulation/src/qiu_classical_simulation/wave_optics/gaussian_beam.py
104 105 106 | |