.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/optics/diffraction/plot_fresnel_poisson_spot.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_api_gallery_optics_diffraction_plot_fresnel_poisson_spot.py: Fresnel diffraction and the Poisson/Arago spot =================================================== Augustin-Jean Fresnel combined Huygens' wavelet construction with Young's principle of interference into a quantitative near-field diffraction theory. Simeon Poisson pointed out -- intending it as a reductio ad absurdum -- that Fresnel's own theory predicted a bright spot at the center of the shadow of a circular obstacle; Francois Arago promptly observed the "Poisson spot" in the laboratory, turning a supposed refutation into the theory's most dramatic confirmation. :func:`~physicskit.optics.wave.fresnel_diffraction` implements the near-field quadratic-phase (paraxial) propagator that predicts this effect, computed as a single Fourier transform of the field :math:`U_0(x,y)` immediately after the obstacle: .. math:: U(x',y') = \frac{e^{ikz}}{i\lambda z} e^{i\frac{k}{2z}(x'^2+y'^2)}\, \mathcal{F}\!\left[U_0(x,y)\, e^{i\frac{k}{2z}(x^2+y^2)}\right]_{f_x=x'/(\lambda z),\ f_y=y'/(\lambda z)}, with wavenumber :math:`k = 2\pi/\lambda` and propagation distance :math:`z`. Here :math:`U_0` is generated by :func:`~physicskit.optics.wave.circular_aperture`, inverted so that it is 1 everywhere *except* a disk of radius ``disk_radius`` -- the complementary transmittance of an opaque circular obstacle -- and propagated a distance ``z = 200`` mm at wavelength ``wavelength = 0.5e-3`` mm. Wavelets diffracting around the rim of the disk travel equal path lengths to the axis and interfere constructively there, reproducing the on-axis bright spot Arago observed. .. GENERATED FROM PYTHON SOURCE LINES 35-41 .. code-block:: Python import numpy as np from physicskit.optics.visualizers import plot_diffraction_pattern from physicskit.optics.wave import circular_aperture, fresnel_diffraction, intensity .. GENERATED FROM PYTHON SOURCE LINES 42-44 An opaque circular obstacle: transmittance 1 everywhere except the disk --------------------------------------------------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 44-57 .. code-block:: Python wavelength = 0.5e-3 # mm dx = 0.004 N = 512 disk_radius = 0.15 disk = (1.0 - circular_aperture((N, N), dx=dx, radius=disk_radius)).astype(complex) U = fresnel_diffraction(disk, wavelength=wavelength, z=200.0, dx=dx) fig, ax = plot_diffraction_pattern(U, dx=dx, log_scale=True) ax.set_title("Poisson/Arago spot: bright point at the center of the shadow") fig.tight_layout() .. image-sg:: /api/gallery/optics/diffraction/images/sphx_glr_plot_fresnel_poisson_spot_001.png :alt: Poisson/Arago spot: bright point at the center of the shadow :srcset: /api/gallery/optics/diffraction/images/sphx_glr_plot_fresnel_poisson_spot_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 58-63 The unobstructed on-axis intensity (no disk at all) is the baseline a "reductio ad absurdum" argument implicitly compares against: Poisson's point was that Fresnel's theory predicts a bright spot in the *shadow* of the disk, comparably bright to the unobstructed beam -- not simply "some nonzero intensity." .. GENERATED FROM PYTHON SOURCE LINES 63-76 .. code-block:: Python I_shadow = intensity(U) center = I_shadow[N // 2, N // 2] unobstructed = np.ones((N, N), dtype=complex) U_open = fresnel_diffraction(unobstructed, wavelength=wavelength, z=200.0, dx=dx) I_open_center = intensity(U_open)[N // 2, N // 2] print(f"disk radius: {disk_radius} mm") print(f"intensity at the center of the disk's geometric shadow: {center:.4f}") print(f"intensity with no disk at all (unobstructed reference): {I_open_center:.4f}") print("a bright spot at the center of the shadow, comparable to the") print("unobstructed beam, is exactly the 'absurd' prediction Arago confirmed.") .. rst-class:: sphx-glr-script-out .. code-block:: none disk radius: 0.15 mm intensity at the center of the disk's geometric shadow: 1.0338 intensity with no disk at all (unobstructed reference): 1.2977 a bright spot at the center of the shadow, comparable to the unobstructed beam, is exactly the 'absurd' prediction Arago confirmed. .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.096 seconds) .. _sphx_glr_download_api_gallery_optics_diffraction_plot_fresnel_poisson_spot.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_fresnel_poisson_spot.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_fresnel_poisson_spot.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_fresnel_poisson_spot.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_