Julia implementations of solvers for general Eikonal equations of the form
where
This package provides implementations for two methods
- Fast Sweeping Method (FSM) [1]
- Fast Marching Method (FMM) [2]
[1] 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
[2] J.A. Sethian. A Fast Marching Level Set Method for Monotonically Advancing Fronts, Proc. Natl. Acad. Sci., 93, 4, pp.1591--1595, 1996. PDF
This first example uses the Fast Marching method to compute a field of distances to a set of source points. It is equivalent to the example given by the FastMarching.jl package.
using Eikonal, Plots
tsize = 1000
solver = FastMarching(tsize, tsize)
solver.v .= 1;
npoints = 10
for _ in 1:npoints
(i, j) = rand(1:tsize, 2)
init!(solver, (i, j))
end
march!(solver, verbose=true)
contour(solver.t, levels=30,
aspect_ratio=1, c=:coolwarm, size=(800, 600),
title = "Distance to a set of 10 source points")
This example uses the Eikonal equation as a high-frequency approximation to the wave propagation equation. It computes the time of first arrival of a (water) wave front in a ripple tank. (The image links to the details)
This example uses the Fast Sweeping method to solve a 2D Eikonal equation in order to find a shortest path in a maze. (The image links to the details)
This example uses the Fast Sweeping method to solve a 3D Eikonal equation in order to find an optimal path when moving an object in a constrained space. (The image links to the details)
This page was generated using Literate.jl.