Vectorial Huygens PSF - 2D

This example demonstrates how to use the VectorialHuygensPSF class to calculate the 2D PSF of an optical system.

Note: Vectorial PSF calculations are automatically performed when polarization is enabled in the optical system. This accounts for the vectorial nature of the electric field at the exit pupil.

[1]:
from optiland.psf import HuygensPSF
from optiland.samples.objectives import CookeTriplet
from optiland.rays import PolarizationState
[2]:
lens = CookeTriplet()
polarized_state = PolarizationState(is_polarized=False)  # unpolarized light
lens.updater.set_polarization(polarized_state)  # Enable polarization to trigger vectorial PSF
_ = lens.draw()
../../_images/gallery_wavefront_vectorial_huygens_psf_2d_2_0.png
[3]:
psf = HuygensPSF(lens, field=(0, 1), wavelength=0.55)
_ = psf.view()
../../_images/gallery_wavefront_vectorial_huygens_psf_2d_3_0.png