Eikonal Fast Marching
eikonalfm is a Python (C++) extension which implements the Fast Marching method for the eikonal equation
and the factored eikonal equation
where
References
- J. Sethian. Fast marching methods. SIAM Review, 41(2):199-235, 1999. doi: 10.1137/S0036144598347059. URL https://doi.org/10.1137/S0036144598347059
- Eran Treister and Eldad Haber. A fast marching algorithm for the factored eikonal equation. Journal of Computational Physics, 324:210-225, 2016.
Requirements
- Python 3
- numpy version 1.7 or higher
- C++11 compiler
Installation
Installation from PyPi:
pip install eikonalfm
Manual install from the repository:
git clone https://github.com/kevinganster/eikonalfm.git
cd eikonalfm
pip install .
or
pip install git+https://github.com/kevinganster/eikonalfm.git
Examples
import numpy as np
import eikonalfm
c = np.ones((100, 100))
x_s = (0, 0)
dx = (1.0, 1.0)
order = 2
tau_fm = eikonalfm.fast_marching(c, x_s, dx, order)
tau1_ffm = eikonalfm.factored_fast_marching(c, x_s, dx, order)
Note that the source position x_s
describes an index-vector.
To visualize the results, matplotlib (https://pypi.org/project/matplotlib/) can be used, for example:
import matplotlib.pyplot as plt
tau0 = eikonalfm.distance(tau1_ffm.shape, dx, x_s, indexing="ij")
plt.contourf(tau0 * tau1_ffm)
plt.show()