SimpleFWI

June 2, 2020 · View on GitHub

This code provides the basic building blocks to test optimization algorithms on seismic inverse problems. The canonical seismic waveform inversion problem is given by

\min_{m} \sum_{i} \frac{1}{2}||P^TA(m)^{-1}q_i - d_i||_$2^{2}$ + \frac{\alpha}{2}||Lm||_$2^{2}$,

where A(m)A(m) is the discretized Helmholtz operator ω2m+2\omega^2 m + \nabla^2 with absorbing boundary conditions, PP is the sampling operator, qiq_i are the source vectors, did_i are the observed data and LL is the discretized \nabla.

The main function is misfit.m, which takes as input the medium parameters mm and the data did_i (and definitions of PP, qiq_i, ω\omega etc.) and returns the misfit value, its gradient and a function handle to compute the action of the Gauss-Newton hessian.

For an example, see /examples, which uses a simple BB iteration to solve the optimization problem. To run these, you need to install the SPOT library: https://github.com/mpf/spot

Feel free to contact me with any questions, suggestions, etc.

Tristan van Leeuwen - T.vanLeeuwen@uu.nl