NES icon indicating copy to clipboard operation
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:

  1. 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})}$$

  1. 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.

0.06% 0.12%

0.42% 0.28%

0.33% 0.34%

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