A package for simulation of physical optics. Physical optics is more general than ray optics but not as general as full electrodynamics.
Warning
Documentation | Build Status | Code Coverage |
---|---|---|
Currently not registered and under development. But the main branch can be installed with:
julia> ] add https://github.com/JuliaPhysics/PhysicalOptics.jl
- Fast convolutions adapted to the needs of Physical Optics. Methods like
conv_psf
andconv_otf
are wrappers for the more generalconv
andconv_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.
- Register adjoints of convolution via ChainRulesCore
- more tests
- cleaning of method arguments
- Documentation
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.
In Julia there is no similar project. However, in Python POPPY offers similar functionality.