Frequency-domain finite-difference (FDFD) is widely used for the numerical simulation of seismic wave propagation and is the engine of most of Full Waveform Inversion (FWI) and Reverse Time Migration (RTM) algorithms. Frequency-domain simulation is free of time discretization problems such as instability and enables us simultaneous simulation of multiple sources using direct solvers. Considering attenuation is also straightforward in the frequency domain through using complex velocity values. This MATLAB package solves 2D visco-acoustic wave equation using mixed-grid stencil to reduce numerical dispersion error and uses the hybrid PML ABC boundary condition to suppress reflections from the model boundaries.
- 2D visco-acoustic wave equation (model specified by Vp, Rho and Q factor)
- Kolsky-Futterman attenuation mechanism
- Simultaneous modeling of multiple sources using direct solver
- Easy parallelization over frequencies using parfor loop in multicore machines
- Hybrid PML ABC boundary condition for attenuation of reflections from model boundaries
- Neumann (free boundary) or Dirichlet (fixed boundary) or PML ABC absorbing boundary condition for the top boundary
Open example_fdfd.m and run it section by section as a tutorial for this package. I tried to explain each line briefly with appropriate comments. All functions inputs and outputs are also explained inside the functions.
For more information about the theory and of this work please see the following paper:
This FDFD package initially was published as the supplemental material of this paper. Current version of the codes is the updated version considering updates happened in MATLAB since 2011 and fixing some bugs and some other improvements. Please cite the above paper when reporting, reproducing or extending the results.