SYNOPSIS
PERL PROGRAM NAME:
AUTHOR: Juan Lorenzo (Perl module only)
DATE:
DESCRIPTION:
Version:
USE
NOTES
Examples
SYNOPSIS
SEISMIC UNIX NOTES NORMRAY - dynamic ray tracing for normal incidence rays in a sloth model
normray <modelfile >rayends [optional parameters]
Optional Parameters:
caustic= 0: show all rays 1: show only caustic rays
nonsurface= 0: show rays which reach surface 1: show all rays
surface= 0: shot ray from subsurface 1: from surface
nrays= number of location to shoot rays
dangle= increment of ray angle for one location
nangle= number of rays shot from one location
ashift= shift first taking off angle
xs1= x of shooting location
zs1= z of shooting location
nangle=101 number of takeoff angles
fangle=-45 first takeoff angle (in degrees)
rayfile file of ray x,z coordinates of ray-edge intersections
nxz=101 number of (x,z) in optional rayfile (see notes below)
wavefile= file of ray x,z coordinates uniformly sampled in time
nt=101 number of (x,z) in optional wavefile (see notes below)
infofile= ASCII-file to store useful information
fresnelfile= used if you want to plot the fresnel volumes.
default is <fresnelfile.bin>
outparfile= contains parameters for the plotting software.
default is <outpar>
krecord= if specified, only rays incident at interface with index
krecord are displayed and stored
prim =1, only single-reflected rays are plotted ",
=0, only direct hits are displayed
ffreq=-1 FresnelVolume frequency
refseq=1,0,0 index of reflector followed by sequence of reflection (1)
transmission(0) or ray stops(-1).
The default rayend is at the model boundary.
NOTE:refseq must be defined for each reflector
NOTES:
The rayends file contains ray parameters for the locations at which
the rays terminate.
The rayfile is useful for making plots of ray paths.
nxz should be larger than twice the number of triangles intersected
by the rays.
The wavefile is useful for making plots of wavefronts.
The time sampling interval in the wavefile is tmax/(nt-1),
where tmax is the maximum time for all rays.
The infofile is useful for collecting information along the
individual rays. The fresnelfile contains data used to plot
the Fresnel volumes. The outparfile stores information used
for the plotting software.
Author: Dave Hale, Colorado School of Mines, 02/16/91
MODIFIED: Andreas Rueger, Colorado School of Mines, 08/12/93
Modifications include: functions writeFresnel, checkIfSourceIsOnEdge;
options refseq=, krecord=, prim=, infofile=;
computation of reflection/transmission losses, attenuation.
MODIFIED: Boyi Ou, Colorado School of Mines, 4/14/95
Notes:
This code can shoot rays from specified interface by users, normally you
need to use gbmodel2 to generate interface parameters for this code, both
code have a parameter named nrays, it should be same. If you just want to
shoot rays from one specified location, you need to specify xs1,zs1,
otherwise, leave them alone. If you want to shoot rays from surface, you need
to define surface equal to 1. The rays from one location will be
approximately symmetric with direction Normal_direction - ashift.(if nangle is
odd, it is symmetric, even, almost symmetric. The formula for the first take
off angle is: angle=normal_direction-nangle/2*dangle-ashift. If you only want to
see caustics, you specify caustic=1, if you want to see rays which does not
reach surface, you specify nonsurface=1.
/
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 angle
sub ashift
sub caustic
sub dangle
sub fangle
sub ffreq
sub fresnelfile
sub infofile
sub krecord
sub nangle
sub nonsurface
sub nrays
sub nt
sub nxz
sub outparfile
sub prim
sub refseq
sub surface
sub wavefile
sub xs1
sub zs1
sub get_max_index
max index = number of input variables -1