Go to the list of seismic processes.      Go to SIOSEIS introduction.
                              PROCESS FDFMOD

Document Date:  25 July 1990

     Finite-Difference Forward Modelling using the 45-degree algorithm

The finite-difference migration technique is an effective way to handle 
many types of migration problems.  Often it is necessary to do the 
reverse problem -- given a subsurface structure and velocity field,  
calculate its response on a zero-offset section, or unmigrated section  
( a zero-offset section is a good approximation to a stacked section
in regions of small dip).   This technique is very similar to migration 
except that the receivers are upward continued to the surface P(x,z=0,t), 
whereas the migration process downward continues the receivers - via a 
finite-difference approximation to the scalar wave equation - into the 
subsurface and collecting terms at P(x,z,t=0).   Input to FDFMOD can be 
generated by process SYN and FILTER, and should represent the structure 
you care to model (or unmigrate).  Therefore, point sources should become 
diffractors, interfaces should increase both dip and length, etc...

This process will most likely be used in conjunction with processes SYN 
and FILTER which generate seismic traces for modelling.


see process FDMIGR

Some Important Parameters

The parameter Rho is inserted into the expression for the discretization 
of the time derivative. This serves to counteract any potential growing 
waves from the expression for migration, as an explicit damping with time. 
It can be thought of as a "numerical viscosity".  A value of Rho less 
than 1 reinforces stability.  However, any deviation of Rho away from 1, 
by at most 1 percent,  results in some loss of signal as well as noise.

In the discretization of depth, the parameter Theta is introduced, with 
the most natural value being .500.  If Theta = 0 is used, there is a 
tendency to overshoot on variations, whereas   Theta = 1 will produce an 
overdamping of change.

To discretize the horizontal distance component, an approximation to the 
second derivative is found by an iterative method.  When the iteration is 
truncated, the parameter Gamma is introduced, which is allowed to vary 
between .08 and .17, based primarily on the look of migrated sections.  
If Gamma is allowed to increase too much more, spurious noise results.

In the ideal case, Tau would equal the sample rate of the data, meaning 
that the entire section would be migrated exactly one sample rate step 
at each pass through the section. While this scheme reduces the errors, 
it is impractical due to the huge run-time needed. In practice, Tau should 
be chosen in the range of 20 to 200 ms. (.02 to .2 secs), with the smaller 
Tau values producing greater accuracy.  It is possible to vary Tau 
vertically (not recommended), and should be done in order to save run-time. 
Generally, the value of Tau should decrease from shallow to deep data 
times. This is because greater accuracy is needed in the migration of the 
deeper events where the greatest movement is taking place.

More detailed explanation of the origin of these parameters, and some 
results of allowing them to vary, may be found in the paper published 
by H. Brysk (Geophysics: May 1983).

--------- ----------

DX     - Trace separation distance.  This is the distance between 
         reflection points.  DX is a constant for the entire seismic line.
         REQUIRED.  range 1.0 to 500.0 e.g.  dx 25

FNO    - The first shot/rp number the parameter list applies to.
         Preset = the first shot/rp received.    e.g.   FNO 101

LNO    - The last shot/rp number the parameter list applies to.
         Preset = the last shot/rp received.     e.g.   LNO 101

VTP    - The rms velocity to use in migration.  The rms velocity function 
         is the same as the velocity function used to moveout the data.  
         Given as velocity-time pairs.  Velocities not specified are 
         calculated through interpolation and "straight-lining" from the 
         ends.  Times must be given in seconds.
         Preset = none    velocity range 350 to 32000

VDIX   - The interval velocities to use in migrating, given as interval 
         velocity-time pairs.  Time must be in seconds.
         Preset = none    range 350 to 32000

BPAD   - The number of zero amplitude traces to insert prior to the first 
         Preset = 1   range 1 to 500   e.g. bpad 10

EPAD   - The number of zero amplitude traces to append after the last trace.
         Preset = 1   range 1 to 500   e.g. epad 10

OPAD   - A switch indicating that the pad traces (both bpad and epad) 
         should be output in addition to the migrated input.
         Preset = no   range yes/no    e.g.   opad yes

NRHO   - A parameter used to control the Tau step interpolation.
         Preset = 2.0   range 0. to 10000  

FCRHO  - A parameter used to control the Tau step interpolation.
         Preset = .99   range .0001 to 1.

RHO    - A "hidden" migration parameter discussed above.
         Preset = .9990   range  0 to .9999
THETA  - A "hidden" migration parameter discussed above.
         Preset = .501  range  0 to 1.0

GAMMA  - A "hidden" migration parameter discussed above.
         Preset = .125   range  .08 to .17

TSTEPS - A set of time-delta-tau pairs governing the tau step size 
         (delta-tau) in the time interval terminating with the time given.  
         Up to 7 pairs of time and delta-tau may be given.  The user must 
         give the max time modelled in last pair. e.g. 8.0 0.10 with 8.0 
         secs being last sample modelled. It is HIGHLY suggested that the 
         user use only one time-delta-tau pair and vary the size of the 
         step to conserve cpu time.  Units are in seconds.
         Preset = REQUIRED            

NX     - The total number of traces, including pads, to migrate.  The 
         entire seismic line must be transformed from TX (time-space) to 
         XT (space-time).  FDDIFF requires much extra disk I/O if the 
         entire seismic line (nx*maxsam) is larger than the computer 
         memory allocated for the transformation.  NX does not have to
         be a power of 2.  
         Preset = 4096 e.g. nx 500

MAXSAM - The maximum number of samples per trace, including the deep 
         water delay, to migrate. A trace exceeding MAXSAM will be 
         Preset = the number of samples plus delay of the first trace.

PATH   - The pathname (filename) of a scratch file FDDIFF should use for 
         the intermediate transposed data.  The purpose of this parameter 
         is to allow the user to specify the exact disk partition to use 
         in case the "current" partition does not have enough space.
         Preset = a scratch file in the current directory
         e.g.    path /user/scratch/moreroom


1)   Generate a constant velocity hyperbola.  
     (Script file examples/c_hypcvel) 
     sioseis << eof
     procs syn filter diskoa fdfmod diskob end 
        FNO  1 LNO 49  ntrcs 1 secs 3.0 tva 3.1 2500 1 end
        FNO 50 LNO 50  
          tva .3 2500 1 .7 2500 1  1.0 2500 1 1.3 2500 1 1.8 2500 1 end
        FNO 51 LNO 100  tva 3.1 2500 1 end
          pass 10 20 end
          opath impulsecvel.segy fon 1 end
          nx 102 bpad 1 epad 1 opad no maxsam 751 dx 25 maxdip .001 
          path scratch vtp 2500 0.0 2500 3.0 tsteps 3.00 .1 end
          opath impulsecvel.fddiff fon 1 end

2)   Generate a hyperbola with laterally varying velocity.
     See script file examples/c_hypvlat.

3)   Generate a hyperbola with rms velocity.
     See script file examples/c_rms.fddiff.

4)   Generate a hyperbola with dip.  
     See script file examples/c_mod.dip.refl

  Copyright (C) by The Regents of The University of California, 1988
  Written by Paul Henkart and Graham Kent, 
  Scripps Institution of Oceanography, La Jolla, Ca.
Go to the list of seismic processes.      Go to SIOSEIS introduction.