psf_generator.propagators.scalar_cartesian_propagator#
The propagator for scalar field in Cartesian coordinates.
Classes#
Propagator for the scalar approximation of the Richards-Wolf integral in Cartesian parameterization. |
Module Contents#
- class psf_generator.propagators.scalar_cartesian_propagator.ScalarCartesianPropagator(n_pix_pupil=128, n_pix_psf=128, device='cpu', zernike_coefficients=None, special_phase_mask=None, custom_field=None, wavelength=632, na=1.3, pix_size=10, defocus_step=0, n_defocus=1, sz_correction=True, apod_factor=False, envelope=None, gibson_lanni=False, z_p=1000.0, n_s=1.3, n_g=1.5, n_g0=1.5, t_g=170000.0, t_g0=170000.0, n_i=1.5, n_i0=1.5, t_i0=100000.0)[source]#
Bases:
psf_generator.propagators.cartesian_propagator.CartesianPropagatorPropagator for the scalar approximation of the Richards-Wolf integral in Cartesian parameterization.
The scalar approximation is
\[\boldsymbol{e}_{\infty}(\mathbf{s}) = \boldsymbol{e}_{\textrm{inc}}(\mathbf{s}).\]The equation to compute the eletric field is
\[E(\boldsymbol{\rho}) = -\frac{\mathrm{i}fk}{2\pi}\iint\limits_{s_x^2 + s_y^2 \leq s_{max}^2} \frac{\boldsymbol{e}_{\infty}(s_x,s_y)}{s_z} \mathrm{e}^{\mathrm{i} ks_z z} \mathrm{e}^{\mathrm{i} k (s_x x + s_y y)} ds_x ds_y.\]The focus field is the 2D Fourier transform of \(\frac{\boldsymbol{e}_{\infty}(s_x,s_y)}{s_z}\mathrm{e}^{\mathrm{i} k s_z z}\).
- initialize_input_field() torch.Tensor[source]#
Define the corresponding 2D pupil function as the input field.
Notes#
This function is defined on the unit disk centered at (0,0)
\[u^2 + v^2 <= 1.\]The mapping between this domain and the physical pupil coordinates are
\[u = s_x / s_{\mathrm{max}}, v = s_y / s_{\mathrm{max}}.\]such that the physical domain is:
\[s_x^2 + s_y^2 <= s_{\mathrm{max}}^2 = \sin(\theta_{\mathrm{max}})^2.\]