`Eikonal.jl`

implements solvers for Eikonal equations of the form:

\begin{align}
&\qquad \left\Vert\nabla \tau\right\Vert = \sigma(x), &&\forall x\in\Omega\subset\mathbb{R}^N,\\
&\qquad\tau(x_0) = 0, &&\forall x_0\in\Gamma\subset\Omega,\end{align}

where one seeks the unknown field \tau, which can be interpreted as the time of first arrival of a (wave) front that originates in \Gamma and moves with slowness \sigma (*i.e* its speed is given by 1/\sigma).

Eikonal equations arise as a high-frequency approximation of waves propagation equations (much like geometric optics); they can also be interpreted as continuous shortest path problems.

`Eikonal.jl`

implements two kinds of methods for solving the Eikonal equation:

- Fast Sweeping Method (FSM)
^{[1]}, - Fast Marching Method (FMM)
^{[2]}.

*(Please note that the FSM implementation has benefited from more work than the FMM. Only the FSM can handle problems in arbitrary dimension; FMM is (for now) limited to 2D problems. The API is also (for now) slightly inconsistent between FSM and FMM).*

Previously existing packages allowing to handle such problems include `FastMarching.jl`

which, as the name implies, implements only the FMM. Although there are many cases in which the FSM should be faster, even the FMM implementation of `Eikonal.jl`

should be faster than that of `FastMarching.jl`

(but the latter may be more accurate in complex cases).

Although a formal documentation is almost inexistant at this point, a few usage examples of `Eikonal.jl`

are presented in its README.md. Maybe the two most interesting are (click on the images below to get all details):

- computing the time of first arrival of a water wavefront passing through a small opening:

- finding a shortest path to move an object in a complex environment (shamelessly and heavily inspired by James Sethianâ€™s page):

Finally, the package has just been registered, so you can simply install and use it using the standard `Pkg`

tooling:

```
import Pkg; Pkg.add("Eikonal")
using Eikonal
```

If you do play with it, please do not hesitate to report back!

Zhao, Hongkai (2005-01-01). â€śA fast sweeping method for Eikonal equationsâ€ť. Mathematics of Computation. 74 (250): 603â€“627. DOI: 10.1090/S0025-5718-04-01678-3 â†©ď¸Ž

J.A. Sethian. A Fast Marching Level Set Method for Monotonically Advancing Fronts, Proc. Natl. Acad. Sci., 93, 4, pp.1591â€“1595, 1996. PDF â†©ď¸Ž