Skip to content

Commit

Permalink
Merge branch 'main' of github.com:JuliaPhysics/WaveOpticsPropagation.…
Browse files Browse the repository at this point in the history
…jl into main
  • Loading branch information
roflmaostc committed Jan 7, 2024
2 parents ec12eff + 9afac30 commit 5ab9e06
Showing 1 changed file with 25 additions and 6 deletions.
31 changes: 25 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,42 @@
# WaveOpticsPropagation.jl



| **Build Status** | **Code Coverage** |
|:-----------------------------------------:|:-------------------------------:|
| [![][CI-img]][CI-url] | [![][codecov-img]][codecov-url] |

Propagate waves efficiently, optically, physically, differentiably with [Julia Lang](https://julialang.org/).
Those functions are fast and memory efficiently implemented and hence are suited to be used in inverse problems.


Aims of this package:
## Installation
Not registered yet, hence install with:
```julia
julia> ]add https://github.com/JuliaPhysics/WaveOpticsPropagation.jl
```

## Features
### Implemented
* Propagate (electrical) fields based on wave propagation
* Propagations
* [ ] Angular Spectrum
* [ ] Fresnel Propagation with Scaling Behaviour
* [x] Angular Spectrum Method of Plane Waves (AS)
* [x] Fraunhofer Diffraction
* [ ] [Scalable Angular Spectrum propagation](https://opg.optica.org/optica/viewmedia.cfm?uri=optica-10-11-1407&html=true)
* [ ] Fresnel Propagation with Scaling Behaviour (no priority yet, PR are welcome for that. In principle very similar to the other methods.)
* CUDA support
* Differentiable
* Differentiable (mainly based on Zygote.jl and ChainRulesCore.jl)

### Planned
In principle vectorial propagation in free space is just a propagation of each of the components. Right now, this is not a priority and is not implemented yet.
But of course, each vectorial component can be propagated separately.

## Development
Contributions are very welcome!
File an [issue](https://github.com/roflmaostc/RadonKA.jl/issues) on [GitHub](https://github.com/roflmaostc/RadonKA.jl) if you encounter any problems.
Also file an issue if you want to discuss or propose features.

## Related packages
There is the outdated [PhysicalOptics.jl](https://github.com/JuliaPhysics/PhysicalOptics.jl) which provided similar methods.
For geometrical ray tracing use [OpticSim.jl](https://github.com/brianguenter/OpticSim.jl).

[CI-img]: https://github.com/JuliaPhysics/WaveOpticsPropagation.jl/actions/workflows/CI.yml/badge.svg
[CI-url]: https://github.com/JuliaPhysics/WaveOpticsPropagation.jl/actions/workflows/CI.yml
Expand Down

0 comments on commit 5ab9e06

Please sign in to comment.