Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

141 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PhysicalOptics (DEPRECATED)

A package for simulation of physical optics. Physical optics is more general than ray optics but not as general as full electrodynamics.

Warning

⚠️⚠️ This package has been deprecated in favor of WaveOpticsPropagation.jl ⚠️⚠️

Documentation Build Status Code Coverage

Installation

Currently not registered and under development. But the main branch can be installed with:

julia> ] add https://github.com/JuliaPhysics/PhysicalOptics.jl

Features

Implemented

  • Fast convolutions adapted to the needs of Physical Optics. Methods like conv_psf and conv_otf are wrappers for the more general conv and conv_v_ft.
  • Light propagation with Fresnel and Rayleigh-Sommerfeld (propagate)
  • 2D jinc PSF
  • some conversion methods
  • Light propagation with Fresnel
  • Optical elements like lenses, apertures
  • some optical conversions
  • micro lenses
  • Light propagation with Fraunhofer
  • Focused and defocused PSFs (3D) with Debye integral.

Wanted

  • Register adjoints of convolution via ChainRulesCore
  • more tests
  • cleaning of method arguments
  • Documentation

Literature

As resources we recommend

  • Goodman, Joseph W. Introduction to Fourier optics,
  • Mertz, Jerome. Introduction to optical microscopy. Cambridge University Press, 2019.

For simulation there exists a MATLAB tutorial

  • Voelz, David. "Computational fourier optics: a MATLAB tutorial." Society of Photo-Optical Instrumentation Engineers, 2011.

Similar Projects

In Julia there is no similar project. However, in Python POPPY offers similar functionality.

About

A package for simulation of physical optics. Physical optics is more general than ray optics but not as general as full electrodynamics.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages