The easiest way to understand 15 migration in -space is to refer to the -space migration. Instead of a scalar function U( kx ), we use , a vector whose components uj measure pressure at .Think of kx2 as a tridiagonal matrix, call it T, with (-1, 2, -1) on the main diagonal. Note that kx2 is positive, and that T is a positive definite matrix with a positive element on its main diagonal. Take equation (55) and use to denote the left constant. This gives
(59) |
# Time Domain 15-degree Diffraction Movie # Star: w=p(t ,z) y=p(t ,z+1) #%Star: u=p(t+1,z) v=p(t+1,z+1) subroutine test() real p(37,96),u(36),w(36),v(36),y(36),e(36),f(36),d(36),z(96),alfa,beta real apb, amb, diag, offdi, dd integer i,ix,nx,iz,nz,it,nt,esize nx = 36; nz = 96; nt = 96; esize=4 to history: integer esize, n1:nx+1, n2:nz, n3:nz/2 call hclose() alfa = .125 # v*dz*dt/(8*dx*dx) beta = .140 # accurate x derivative parameter; simplest case b=0. do iz = 1,nz { do ix=1,nx { p(ix,iz) = 0.}} do iz = nz/5, nz, nz/4 # Set up initial model do it= 1,15 # of 4 band limited do ix= 1,4 # "point" scatterers. p(ix,it+iz) = (5.-ix)*(8-it)*exp(-.1*(it-8)**2) apb = alfa+beta; amb = alfa-beta # tridiagonal coefficients diag = 1.+2.*amb; offdi = -amb do iz= nz, 2, -2 { # Climb up in steps of 2 z-levels do i=1,nz{ p(nx+1,i)=0}; p(nx+1,iz)=1. # Pointer to current z-level call srite('out', p, nz*(nx+1)*4) do ix= 1, nx { u(ix) = p(ix,iz-1); v(ix) = u(ix) } do it= iz, nt { do ix= 1, nx #update the differencing star { w(ix) = u(ix); y(ix) = v(ix); v(ix) = p(ix,it) } dd = (1.-apb)*(v(1)+w(1))+apb*(v(2)+w(2)) d(1) = dd-diag*y(1)-offdi*(y(1)+y(2)) do ix= 2, nx-1 { dd = (1.-2.*apb)*(v(ix)+w(ix)) dd = dd + apb*(v(ix-1)+w(ix-1)+v(ix+1)+w(ix+1)) d(ix) = dd-diag*y(ix)-offdi*(y(ix-1)+y(ix+1)) } dd = (1.-apb)*(v(nx)+w(nx))+apb*(v(nx-1)+w(nx-1)) d(nx) = dd-diag*y(nx)-offdi*(y(nx)+y(nx-1)) call rtris(nx,diag+offdi,offdi,diag,offdi,diag+offdi,d,u) do ix= 1, nx p(ix,it) = u(ix) } } return; end
Consider a modeling program. It begins down inside the earth with the differencing star on the right side of (57). Solving (59) for the unknown and dropping all primes yields
(60) |
Heeding the earlier remark that with waves of modest dip, the z'-axis need not be sampled so densely as the t'-axis, we do a computation that skips alternate levels of z'. The specific order chosen in the computer program time15 is indicated by the numbers in the following table:
(61) |
An inescapable practical problem shown in the table when the number of points in t'-space is not exactly equal that in z'-space is that the earth image must be interpolated along a diagonal on the mesh. The crude interpolation in (61) illustrates the assumption that the wave field changes rapidly in t' but slowly in z', i.e. the small-angle assumption.
Figure 5 shows the last frame in the movie produced by the test program.
diffr
Figure 5 Diffractions in the last frame of the downward-continuation movie. |
Exercise 1 suggests minor changes to the program time15 to convert it from diffraction to migration. As modified, the program is essentially the original wave equation migration program introduced by Johnson and Claerbout [1971] and Doherty and Claerbout [1972].
gas
Figure 6 The program time15 was used to create synthetic data from a more complicated model. The three frames depict three depths. The leftmost channel of each frame depicts the depth of the frame. |