NES
NES copied to clipboard
Neural Eikonal Solver: framework for modeling traveltimes via solving eikonal equation using neural networks
Neural Eikonal Solver
Neural Eikonal Solver (NES) is framework for solving factored eikonal equation using physics-informed neural network, for details see our paper: early arXiv version and published final version. NES can simulate traveltimes of seismic waves in complex inhomogeneous velocity models.
Description
See quick introduction on Google Colab
NES has two solvers:
- One-Point NES (NES-OP) is to solve conventional one-point eikonal (NES-OP tutorial)
$$\Vert \nabla \tau(\textbf{x}) \Vert = \frac{1}{v(\textbf{x})}$$
- Two-Point NES (NES-TP) is to solve generalized two-point eikonal (NES-TP tutorial)
$$\Vert \nabla_r T(\textbf{x}_s, \textbf{x}_r) \Vert = \frac{1}{v(\textbf{x}_r)}$$
$$\Vert \nabla_s T(\textbf{x}_s, \textbf{x}_r) \Vert = \frac{1}{v(\textbf{x}_s)}$$
So far, NES outperforms all existing neural-network based solutions. Table shows average performance results on a smoothed part of Marmousi model (NES-OP vs. PINNeik and NES-TP vs. EikoNet). RMAE is relative mean-absolute error with respect to the reference solution (second-order factored Fast Marching Method). The tests were performed on GPU Tesla P100-PCIE.
Solver | RMAE, % | Training time, sec | Network size |
---|---|---|---|
NES-OP (ours) | 0.2 | 240 | 7856 |
PINNeik | 12.4 | 330 | 4061 |
NES-TP (ours) | 0.4 | 300 | 51308 |
EikoNet | 5.4 | 9600 | 7913249 |
For detailed comparisons see our colab notebooks EikoNet and PINNeik.
Installation
pip install git+https://github.com/sgrubas/NES.git
Quick example
import NES
Vel = NES.velocity.MarmousiSmoothedPart()
Eik = NES.NES_TP(velocity=Vel)
Eik.build_model()
h = Eik.train(x_train=100000, epochs=1000, batch_size=25000)
grid = NES.utils.RegularGrid(Vel)
Xs = grid((5, 5)); Xr = grid((100, 100))
X = grid.sou_rec_pairs(Xs, Xr)
T = Eik.Traveltime(X)
2D examples of NES-OP
Isochrones of solutions. RMAE is shown above each figure. The NES solutions are white dashed isochrones, the reference solutions are black isochrones.
Citation
If you find NES useful for your research, please cite our paper:
@article{grubas2023NES,
title = {Neural Eikonal solver: Improving accuracy of physics-informed neural networks for solving eikonal equation in case of caustics},
journal = {Journal of Computational Physics},
volume = {474},
pages = {111789},
year = {2023},
issn = {0021-9991},
doi = {https://doi.org/10.1016/j.jcp.2022.111789},
url = {https://www.sciencedirect.com/science/article/pii/S002199912200852X},
author = {Serafim Grubas and Anton Duchkov and Georgy Loginov},
keywords = {Physics-informed neural network, Eikonal equation, Seismic, Traveltimes, Caustics}
}
Future plans
- Anisotropic eikonal
- Ray tracing
- Wave amplitudes
- Earthquake localization
- Traveltime tomography
Developers
Serafim Grubas ([email protected])
Nikolay Shilov
Anton Duchkov
Georgy Loginov