psf_generator.propagators.scalar_cartesian_propagator#

The propagator for scalar field in Cartesian coordinates.

Classes#

ScalarCartesianPropagator

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.CartesianPropagator

Propagator 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}\).

classmethod get_name() str[source]#
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.\]