sfkirmod is a program for modeling seismic reflection data using the Kirchhoff method. According to this method, the reflection response is computed by integrating over the reflector surface. For a theoretical derivation, see, for example,

Haddon, R. A. W., and P. W. Buchen, 1981, Use of Kirchhoff’s formula for body wave calculations in the earth: Geophys. J. Roy. Astr. Soc., 67, 587-598.

At the moment, sfkirmod can handle only asymptotic Green’s functions, analytically computed in three kinds of velocity models:

  1. Constant velocity
  2. Constant gradient of velocity
  3. Constant gradient of velocity squared

The type is specified with type= parameter, and the velocity model is specified with vel=, refx=, refz=, gradx=, and gradz=.

The following example from rsf/scons/rsf shows shot gathers modeled by sfkirmod in a medium with horizontal reflectors and a constant vertical gradient of velocity

It is also possible to model a converted (PS or SP) wave by supplying vel2=, gradx2=, and gradz2= to specify the converted velocity. The standard input file for sfkirmod contains the shape of one or more reflectors. Several other input files can be optionally provided: dip= specifies the slope of the reflector(s), refl= specifies normal-incidence reflectivity (AVA intercept), rgrad= specifies AVA gradient.

The sampling of the time axis in the output is controlled by nt=, t0=, and dt= parameters. A Ricker wavelet is used with the peak frequency specified by freq=. Factors such as the geometrical spreading and the obliquity factor are taken into account. The geometrical spreading correction is different for 2-D (cylindrical waves) or 2.5-D (spherical waves). The default behavior is 2.5_D. To switch to 2-D, use twod=y. By default, sfkirmod outputs shot gathers.

It is also possible to compute CMP gathers directly by using cmp=y. The following example from jsg/crs/dome2 shows CMP gathers computed over a hyperbolic-shape reflector.

Since Kirchhoff modeling is fundamentally a linear operation, it is easy to run sfkirmod in a data-parallel fashion, for example by using pscons with split=[1,n1] and reduce=’add’.

The 3-D version of sfkirmod is sfkirmod3.

10 previous programs of the month