Born Modelling with the Scalar Wave Equation

This section describes Born modelling, a technique used to simulate wave propagation in a perturbed medium, within the Deepwave framework.

Derivation

Born modelling is based on the assumption that the wavefield in a heterogeneous medium can be approximated as a sum of an unscattered (background) wavefield and a scattered wavefield, where the scattered wavefield is generated by small perturbations in the medium. We present two derivations.

Derivation 1: Intuitive Approach via Taylor Expansion

Starting with a Taylor expansion of the inverse squared velocity:

(1)\[\frac{1}{\left(c_0+h_c\right)^2} \approx \frac{1}{c_0^2}-\frac{2h_c}{c_0^3},\]

where \(c_0\) is the background velocity and \(h_c\) is a small perturbation. If we substitute this into the scalar wave equation, and assume the total wavefield \(u\) can be approximated as the sum of an unscattered wave \(u_0\) and a singly scattered wave \(u_1\) (i.e., \(u = u_0 + u_1\)), we get:

(2)\[\Delta \left(u_0+u_1\right) - \left(\frac{1}{c_0^2}-\frac{2h_c}{c_0^3}\right)\left(\ddot u_0+\ddot u_1\right) = f,\]

where \(\Delta\) is the Laplacian operator, \(\ddot u_0\) is the second time derivative of \(u_0\), and \(f\) is the source term. By disregarding terms beyond first-order scattering, we can separate this into two equations that intuitively describe the unscattered and scattered wavefields:

Unscattered Wavefield:

(3)\[\Delta u_0 - \frac{1}{c_0^2}\ddot u_0 = f,\]

This equation describes the propagation of the unscattered wavefield \(u_0\) in the background medium \(c_0\), driven by the original source \(f\).

Scattered Wavefield:

(4)\[\Delta u_1 - \frac{1}{c_0^2}\ddot u_1 = - \frac{2h_c}{c_0^3}\ddot u_0.\]

This equation shows that the singly scattered wavefield \(u_1\) propagates in the background medium \(c_0\) and is generated by an effective source term proportional to the perturbation \(h_c\) and the second time derivative of the unscattered wavefield \(\ddot u_0\).

Derivation 2: Perturbation Theory Approach

Alternatively, we can apply a Taylor expansion directly to the wavefield with respect to the velocity perturbation:

(5)\[u^t|_{c_0+h_c} \approx u^t|_{c_0} + \left.\frac{d u^t}{d c}\right|_{c_0}h_c,\]

where \(u^t\) is the wavefield at time step \(t\). Using the scalar wave equation with a second-order accurate finite difference approximation for the second time derivative:

(6)\[u^t = c^2h_t^2\left(\Delta u^{t-1}-f^{t-1}\right)+2u^{t-1}-u^{t-2},\]

where \(h_t\) is the finite difference time step size. By differentiating (6) with respect to \(c\) and performing algebraic rearrangements, we can derive the source term for the scattered wavefield. This derivation ultimately leads to the same conclusion as the first approach: the scattered wavefield can be modelled by solving the wave equation with a source term that depends on the background wavefield and the velocity perturbation.

Implementation

Deepwave’s Born propagator simultaneously simulates two wavefields:

  1. Background Wavefield: This corresponds to \(u_0\) (or \(u^t\)) from the derivations, representing the wavefield propagating in the unperturbed background medium.

  2. Scattered Wavefield: This corresponds to \(u_1\) (or \(\left.\frac{d u^t}{d c}\right|_{c_0}h_c\)), representing waves generated by interactions with the scattering model.

The propagation details, including the Perfectly Matched Layer (PML), are identical to those used for the regular scalar propagator. The key difference is that at each time step, the interaction between the background wavefield and the scattering model is computed and then used as a source term for the scattered wavefield.

Inputs and Outputs

The Born propagator takes two primary model inputs:

  • Background Velocity Model (\(c_0\)): Provided as the velocity input.

  • Scattering Model (\(h_c\)): Provided as the scattering input.

For a small \(h_c\) (ensuring the linear approximation in (1) is valid), the output of the regular scalar propagator with a velocity model of \(c_0+h_c\) should be approximately equal to the sum of the background and scattered outputs from the Born propagator (with inputs \(c_0\) and \(h_c\)).

The output state from the Born propagator contains twice as many elements as the regular scalar propagator, reflecting the propagation of two distinct wavefields. Receiver data can be recorded from both wavefields:

  • bg_receiver_locations: Records data from the background wavefield.

  • receiver_locations: Records data from the scattered wavefield.

Internal Time Stepping (Matrix Form)

Internally, one propagation time step involves updating both wavefields. The Deepwave implementation uses a matrix form to efficiently compute these updates. This matrix, while complex, essentially combines the update rules for both the background and scattered wavefields, including their interactions and PML effects. This detailed matrix representation is primarily an internal implementation detail for optimised performance:

\[\begin{split}\begin{pmatrix} u^{t+1} \\ u^{t} \\ z^{t} \\ p^{t} \\ u_s^{t+1} \\ u_s^{t} \\ z_s^{t} \\ p_s^{t} \\ r^{t} \\ r_s^{t} \\ \end{pmatrix} = \begin{pmatrix} c^2h_t^2(1+b)\left((1+b)\partial_x^2 +\partial_x(b)\partial_x\right) + 2 & -1 & c^2h_t^2a & c^2h_t^2(1+b)\left(\partial_x a\right) & 0 & 0 & 0 & 0 & -c^2h_t^2 \\ 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ b\left((1+b)\partial_{x}^2+\partial_x(b)\partial_x\right) & 0 & a & b\left(\partial_x a\right) & 0 & 0 & 0 & 0 & 0\\ b\partial_x & 0 & 0 & a & 0 & 0 & 0 & 0 & 0 \\ 2ch_ch_t^2(1+b)\left((1+b)\partial_x^2 +\partial_x(b)\partial_x\right) & 0 & 2ch_ch_t^2a & 2ch_ch_t^2(1+b)\left(\partial_x a\right) & c^2h_t^2(1+b)\left((1+b)\partial_x^2 +\partial_x(b)\partial_x\right) + 2 & -1 & c^2h_t^2a & c^2h_t^2(1+b)\left(\partial_x a\right) & -2ch_ch_t^2 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & b\left((1+b)\partial_{x}^2+\partial_x(b)\partial_x\right) & 0 & a & b\left(\partial_x a\right) & 0\\ 0 & 0 & 0 & 0 & b\partial_x & 0 & 0 & a & 0\\ \delta_r & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & \delta_r^s & 0 & 0 & 0 & 0\\ \end{pmatrix} \begin{pmatrix} u^{t} \\ u^{t-1} \\ z^{t-1} \\ p^{t-1} \\ u_s^{t} \\ u_s^{t-1} \\ z_s^{t-1} \\ p_s^{t-1} \\ f^t \end{pmatrix}\end{split}\]