pado.optical_element.CosineSquaredLens

class CosineSquaredLens(dim, pitch, focal_length, wvl, device, polar='non')[source]
Parameters:
__init__(dim, pitch, focal_length, wvl, device, polar='non')[source]

Lens with cosine squared phase distribution.

Creates a lens with phase distribution of form [1+cos(k*r^2)]/2.

Parameters:
  • dim (tuple) – Field dimensions (B, 1, R, C) - batch size, channels, rows, columns

  • pitch (float) – Pixel pitch in meters

  • focal_length (float) – Focal length in meters

  • wvl (float) – Wavelength in meters

  • device (str) – Device to store wavefront (‘cpu’, ‘cuda:0’, …)

  • polar (str) – Polarization mode (‘non’: scalar, ‘polar’: vector)

Return type:

None

Examples

>>> # Create basic cosine squared lens
>>> lens = CosineSquaredLens((1,1,1024,1024), 2e-6, 0.1, 633e-9, 'cpu')
compute_and_set_phase_change()[source]

Compute and set the phase change induced by the lens.

Calculates and applies phase change in range [0, π] to the lens. :rtype: None

Examples

>>> lens.compute_and_set_phase_change()
Return type:

None