{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 13 - Implementation of a Devito acoustic Least-square Reverse time migration\n",
"\n",
"## This tutorial is contributed by SENAI CIMATEC (2021)\n",
"\n",
"This tutorial is based on:\n",
"\n",
"
**LEAST-SQUARES REVERSE TIME MIGRATION (LSRTM) IN THE SHOT DOMAIN** (2016)\n",
"
Antonio Edson Lima de Oliveira, Reynam da Cruz Pestana and Adriano Wagner Gomes dos Santos\n",
"
Brazilian Journal of Geopyisics\n",
"
http://dx.doi.org/10.22564/rbgf.v34i3.831\n",
"\n",
"
**Plane-wave least-squares reverse-time migration** (2013)\n",
"
Wei Dai and Gerard T. Schuster\n",
"
GEOPHYSICS Technical Papers \n",
"
http://dx.doi.org/10.22564/rbgf.v34i3.831\n",
"\n",
"
**Two-point step size gradient method** (1988)\n",
"
Barzilai, J. and Borwein, J. \n",
"
IMA Journal of Numerical Analysis \n",
"
https://doi.org/10.1093/imanum/8.1.141"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Introduction \n",
"The goal of this tutorial is to implement and validate the Least-squares reverse time migration (LSRTM) using a 2D three-layered velocity model with a square in the middle. The algorithm has been implemented using the Born's appoximation.\n",
"\n",
"The acoustic wave equation for constant density is:\n",
"\n",
"\\begin{equation}\n",
" m_{0} \\dfrac{\\partial^2 p_0 }{\\partial t^2} - \\nabla^2 p_0 = s (\\mathbf{x},t) \\hspace{0.5cm} (1)\n",
"\\end{equation}\n",
"\n",
"where $s (\\mathbf{x},t) $ is the source, $p_{0}$ is the background wavefield and $m_{0}$ is the smoothed squared slowness.\n",
"\n",
"A perturbation in the squared slowness $m = m_{0} + \\delta m$ produces a background wavefield ( $p_{0}$ ) and scattered wavefield ( $\\delta p$ ), so the wavefield $p$ is approximated to $ p = p_0 + \\delta p$, that obeys the relation:\n",
"\n",
"\\begin{equation}\n",
" m \\dfrac{\\partial^2 p}{\\partial t^2} - \\nabla^2 p = s (\\mathbf{x},t) \\hspace{0.5cm} (2)\n",
"\\end{equation}\n",
"\n",
"\n",
"Using the approximation of $p$ and $m$ into equation (2),\n",
"\n",
"\\begin{equation}\n",
" (m_{0} + \\delta m) \\dfrac{\\partial^2 (p_0 + \\delta p)}{\\partial t^2} - \\nabla^2 (p_0 + \\delta p) = s (\\mathbf{x},t) \\hspace{0.5cm} (3)\n",
"\\end{equation}\n",
"\n",
"Expanding equation (3) we have:\n",
"\\begin{equation}\n",
"m_{0} \\dfrac{\\partial^2 p_0 }{\\partial t^2} - \\nabla^2 p_0 + m_{0} \\dfrac{\\partial^2 \\delta p }{\\partial t^2} - \\nabla^2\\delta p + \\delta m \\dfrac{\\partial^2 (p_{0} +\\delta p) }{\\partial t^2}= s (\\mathbf{x},t) \\hspace{0.5cm} (4)\n",
"\\end{equation}\n",
"\n",
"Reordering the equation (4), \n",
"\\begin{equation}\n",
"m_{0} \\dfrac{\\partial^2 p_0 }{\\partial t^2} - \\nabla^2 p_0 + m_{0} \\dfrac{\\partial^2 \\delta p }{\\partial t^2} - \\nabla^2\\delta p = s (\\mathbf{x},t) - \\delta m \\dfrac{\\partial^2 (p_{0} +\\delta p) }{\\partial t^2} \\hspace{0.5cm} (5)\n",
"\\end{equation}\n",
"\n",
"Considering that $ \\delta m \\dfrac{\\partial^2 (p_{0} +\\delta p) }{\\partial t^2} = \\delta m \\dfrac{\\partial^2 p }{\\partial t^2} \\approx \\delta m \\dfrac{\\partial^2 p_{0} }{\\partial t^2} $( Via Born's approximation $p\\approx p_{0}$ ):\n",
"\n",
"\\begin{equation}\n",
"m_{0} \\dfrac{\\partial^2 p_0 }{\\partial t^2} - \\nabla^2 p_0 + m_{0} \\dfrac{\\partial^2 \\delta p }{\\partial t^2} - \\nabla^2\\delta p = s (\\mathbf{x},t) -\\delta m \\dfrac{\\partial^2 p_{0} }{\\partial t^2}\\hspace{0.5cm} (6)\n",
"\\end{equation}\n",
"\n",
"Now we get an equations system:\n",
"\n",
"\\begin{equation}\n",
" \\left\\{\n",
"\\begin{array}{lcl}\n",
"m_{0} \\dfrac{\\partial^2 p_0 }{\\partial t^2} - \\nabla^2 p_0 = s (\\mathbf{x},t),\\hspace{0.5cm} (7a) \\\\\n",
"m_{0} \\dfrac{\\partial^2 \\delta p }{\\partial t^2} - \\nabla^2\\delta p = - \\delta m \\dfrac{\\partial^2 p_{0} }{\\partial t^2} \\hspace{0.5cm} (7b) \\\\\n",
"\\end{array}\n",
"\\right.\n",
"\\end{equation}\n",
"\n",
"Equations (7a) and (7b) are for Born modelling. The adjoint modelling is defined by the equation:\n",
" \n",
"\\begin{equation}\n",
"m_{0} \\dfrac{\\partial^2 v}{\\partial t^2} - \\nabla^2 v =\\textbf{d} \\hspace{0.5cm} (8)\n",
"\\end{equation}\n",
"where $\\textbf{d}$ is the shot recorded.\n",
"\n",
"With all these equations, the migrated image can be constructed\n",
"\n",
"\\begin{equation}\n",
"\\mathbf{m}_{mig}= \\sum_{t} \\dfrac{\\partial^2 p_0}{\\partial t^2}v \\hspace{0.5cm} (9)\n",
"\\end{equation}\n",
"\n",
"In this notebook the migration and gradient has been precoditioned by the source illumination, so equation (9) becomes:\n",
"\n",
"\\begin{equation}\n",
"\\mathbf{m}_{mig}= \\frac{\\sum_{t} \\dfrac{\\partial^2 p_0}{\\partial t^2}v}{\\sum_{t} p_{0}^2} \\hspace{0.5cm} (10)\n",
"\\end{equation}\n",
"\n",
"\n",
"LSRTM aims to solve the reflectivity model $\\mathbf{m}$ by minimizing the difference between the forward modeled data $L\\mathbf{m}$ and the recorded data $d$ in a least-squares sense:\n",
"\n",
"\\begin{equation}\n",
" f(\\mathbf{m}) = \\frac{1}{2}||L\\mathbf{m}-\\mathbf{d}||^{2} \\hspace{0.5cm} (11)\n",
"\\end{equation}\n",
"\n",
"To solve equation (11), it has been implemented here the steepest descent method with an appropriate step-length,\n",
"\n",
"\\begin{equation}\n",
"\\textbf{m}_{k+1} = \\textbf{m}_k -\\alpha_k \\textbf{g}_k \\hspace{0.5cm} (12)\n",
"\\end{equation}\n",
"where $\\textbf{g}_k$ is the gradient and $\\alpha_k$ is the step-length. The gradient computation is simply taking equation (9) and instead of injecting the shot recorded $\\textbf{d}$, injects the residue $\\textbf{d}_{calc}-\\textbf{d}_{obs}$\n",
"\n",
"For now we are going to import the utilities."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import numpy as np\n",
"\n",
"from devito import Operator,Eq,solve,Grid,SparseFunction,norm\n",
"from devito import TimeFunction,Function\n",
"from devito import gaussian_smooth\n",
"from devito import mmax\n",
"\n",
"from devito.logger import info\n",
"\n",
"from examples.seismic import Model\n",
"from examples.seismic import plot_velocity,plot_shotrecord\n",
"from examples.seismic import Receiver\n",
"from examples.seismic import PointSource\n",
"from examples.seismic import plot_image,AcquisitionGeometry\n",
"from examples.seismic import TimeAxis\n",
"\n",
"from examples.seismic.self_adjoint import (setup_w_over_q)\n",
"from examples.seismic.acoustic import AcousticWaveSolver\n",
"\n",
"import matplotlib.pyplot as plt\n",
"from mpl_toolkits.axes_grid1 import ImageGrid\n",
"from mpl_toolkits.axes_grid1.axes_divider import make_axes_locatable\n",
"import matplotlib.ticker as plticker\n",
"\n",
"from devito import configuration\n",
"configuration['log-level'] = 'WARNING'"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Seismic modelling with Devito"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's import all the parameters needed and create the true 2D velocity model and the smoothed model to perform the Born's modelling."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"shape = (101, 101) # Number of grid point (nx, nz)\n",
"spacing = (10., 10.) # Grid spacing in m. The domain size is now 1km by 1km\n",
"origin = (0., 0.) # What is the location of the top left corner. This is necessary to define\n",
"\n",
"fpeak = 0.025# Source peak frequency is 25Hz (0.025 kHz)\n",
"t0w = 1.0 / fpeak\n",
"omega = 2.0 * np.pi * fpeak\n",
"qmin = 0.1\n",
"qmax = 100000\n",
"npad=50\n",
"dtype = np.float32\n",
"\n",
"nshots = 21\n",
"nreceivers = 101\n",
"t0 = 0.\n",
"tn = 1000. # Simulation last 1 second (1000 ms)\n",
"filter_sigma = (5, 5) # Filter's length\n",
"\n",
"v = np.empty(shape, dtype=dtype)\n",
"\n",
"# Define a velocity profile. The velocity is in km/s\n",
"vp_top = 1.5\n",
"\n",
"v[:] = vp_top # Top velocity \n",
"v[:, 30:65]= vp_top +0.5\n",
"v[:, 65:101]= vp_top +1.5\n",
"v[40:60, 35:55]= vp_top+1\n",
"\n",
"init_damp = lambda func, nbl: setup_w_over_q(func, omega, qmin, qmax, npad, sigma=0)\n",
"model = Model(vp=v, origin=origin, shape=shape, spacing=spacing,\n",
" space_order=8, bcs=init_damp,nbl=npad,dtype=dtype)\n",
"model0 = Model(vp=v, origin=origin, shape=shape, spacing=spacing,\n",
" space_order=8, bcs=init_damp,nbl=npad,dtype=dtype)\n",
"\n",
"dt = model.critical_dt \n",
"s = model.grid.stepping_dim.spacing\n",
"time_range = TimeAxis(start=t0, stop=tn, step=dt)\n",
"nt=time_range.num"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"