SYNOPSIS
PERL PROGRAM NAME:
AUTHOR: Juan Lorenzo (Perl module only)
DATE:
DESCRIPTION:
Version:
USE
NOTES
Examples
SYNOPSIS
SEISMIC UNIX NOTES SUREMAC2D - Acoustic 2D Fourier method modeling with high accuracy
Rapid Expansion Method (REM) time integration
suremac2d [parameters]
Required parameters:
opflag= 0: variable density wave equation
1: constant density wave equation
2: non-reflecting wave equation
nx= number of grid points in horizontal direction
nz= number of grid points in vertical direction
nt= number of time samples
dx= spatial increment in horizontal direction
dz= spatial increment in vertical direction
dt= time sample interval in seconds
isx= grid point # of horizontal source positions
isz= grid point # of vertical source positions
Optional parameters:
fx=0.0 first horizontal coordinate
fz=0.0 first vertical coordinate
irx= horizontal grid point # of vertical receiver lines
irz= vertical grid point # of horizontal receiver lines
w=0.1 width of spatial source distribution (see notes)
sflag=2 source time function
0: user supplied source function
1: impulse (spike at t=0)
2: Ricker wavelet
fmax= maximum frequency of Ricker (default) wavelet
amps=1.0 amplitudes of sources
prec=0 1: precompute Bessel coefficients b_k (see notes)
2: use precomputed Bessel coefficients b_k
fsflag=0 1: perform run with free surface b.c.
vmaxu= user-defined maximum velocity
dtsnap=0.0 time interval in seconds of wave field snapshots
iabso=1 apply absorbing boundary conditions (0: none)
abso=0.1 damping parameter for absorbing boundaries
nbwx=20 horizontal width of absorbing boundary
nbwz=20 vertical width of absorbing boundary
verbose=0 1: show parameters used
2: print maximum amplitude at every expansion term
velfile=vel velocity filename
densfile=dens density filename
sname=wavelet.su user supplied source time function filename
sepxname=sectx.su x-direction pressure sections filename
sepzname=sectz.su z-direction pressure sections filename
snpname=snap.su pressure snapshot filename
jpfile=stderr diagnostic output
m is bound
Notes:
0. The combination of the Fourier method with REM time integration
allows the computation of synthetic seismograms which are free
of numerical grid dispersion. REM has no restriction on the
time step size dt. The Fourier method requires at least two
grid points per shortest wavelength.
1. nx and nz must be valid numbers for pfafft transform lengths.
nx and nz must be odd numbers (unless opflag=1). For valid
numbers see e.g. numbers in structure 'nctab' in source file
$CWPROOT/src/cwp/lib/pfafft.c.
2. Velocities (and densities) are stored as plain C style files
of floats where the fast dimension is along the z-direction.
3. Units must be consistent, e.g. m, s and m/s.
4. A 20 grid points wide border at the sides and the bottom of
the modeling grid is used for sponge boundary conditions
(default: iabso=1).
Source and receiver lines should be placed some (e.g. 10) grid
points away from the absorbing boundaries in order to reduce
reflections due to obliquely incident wavefronts.
5. Dominant frequency is about fmax/2 (sflag=2), absolute maximum
is delayed by 3/fmax from beginning of wavelet.
6. If opflag!=1 the source should be not a spike in space; the
parameter w determines at which distance (in grid points) from
the source's center the Gaussian weight decays to 10 percent
of its maximum. w=2 may be a reasonable choice; however, the
waveform will be distorted.
7. Horizontal and vertical receiver line sections are written to
separate files. Each file can hold more than one line.
8. Parameter vmaxu may be enlarged if the modeling run becomes
unstable. This happens if the largest eigenvalue of the modeling
operator L is larger than estimated from the largest velocity.
In particular if using the variable density acoustic wave
equation the eigenvalues depend also on the density and it is
impossible to estimated the largest eigenvalue analytically.
9. Bessel coefficients can be precomputed (prec=1) and stored on
disk to save CPU time when several shots need to be run.
In this case computation of Bessel coefficients can be skipped
and read from disk file for reuse (prec=2).
For reuse of Bessel coefficients the user may need to define
the overall maximum velocity (vmaxu).
10. If snapshots are not required, a spike source (sflag=1) may be
applied and the resulting impulse response seismograms can be
convolved later with a desired wavelet.
11. The free surface (fsflag=1) does not coincide with the first
vertical grid index (0). It appears to be half a grid spacing
above that position.
User's notes (Juan Lorenzo) untested
CHANGES and their DATES
Import packages
instantiation of packages
Encapsulated hash of private variables
sub Step
collects switches and assembles bash instructions by adding the program name
sub note
collects switches and assembles bash instructions by adding the program name
sub clear
sub abso
sub amps
sub densfile
sub dt
sub dtsnap
sub dx
sub dz
sub fmax
sub fsflag
sub fx
sub fz
sub iabso
sub irx
sub irz
sub isx
sub isz
sub jpfile
sub nbwx
sub nbwz
sub nt
sub nx
sub nz
sub opflag
sub prec
sub sepxname
sub sepzname
sub sflag
sub sname
sub snpname
sub t
sub velfile
sub verbose
sub vmaxu
sub w
sub get_max_index
max index = number of input variables -1