In geophysics, we usually wish the side-boundary question did not arise. The only real reason for side boundaries is that either our survey or our processing activity is necessarily limited in extent. Given that side boundaries are inevitable, we must think about them. The subroutine wavemovie() included zero-slope boundary conditions. This type of boundary treatment resulted from taking
and in the call to ctris taking
Mexpandsphere
Figure 6 Given that the domain of computation is xmax and zmax, how would you modify the initial conditions at z=0 to simulate a point source at (x,z)= (xmax/3, -zmax/2)? |
A quick way to get zero-value side-boundary conditions is to take
Compare the side-boundary behavior of Figures 6 and 7.
Mzeroslope
Figure 7 Modify the program so that zero-slope side boundaries are replaced by zero-value side boundaries. |
The zero slope boundary condition is explicitly visible as identical signal on the two end columns. Likewise, the zero-value side boundary condition has a column of zero-valued signal on each side. In each case, the end trace need not be explicitly present, and it is not present in Dave Hale's coding of the boundary conditions which I give, but do not derive, below.
p0 = bl * p(1); pnxp1 = br * p(nx)
cd(1) = aa * p(2) + ( 1. - 2. * aa ) * p( 1) + aa * p0
cd(nx) = aa * p(nx-1) + ( 1. - 2. * aa ) * p(nx) + aa * pnxp1
endl = c * bl + b;
endr = a * br + b
call ctris(nx,endl,a,b,c,endr,cd,p,ce,cf)
Note that bl=br=0 for zero-value boundaries, and bl=br=1 for zero-slope boundaries. Absorbing side boundaries, derived in chapter are obtained by letting bl and br be complex.