Next: You Can't Time Shift Up: FINITE DIFFERENCING IN (t, Previous: Migration in (z, t)-space

## (t,x,z)-Space, 15 degree Diffraction Program

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)
First, evaluate the expression on the right. The left side is a tridiagonal system to be solved for the unknown .Allowable sequences in which (60) may be applied are dictated by the differencing star on the right side of (57).

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.

Next: You Can't Time Shift Up: FINITE DIFFERENCING IN (t, Previous: Migration in (z, t)-space
Stanford Exploration Project
10/31/1997