App-SeismicUnixGui
view release on metacpan or search on metacpan
lib/App/SeismicUnixGui/sunix/model/normray.pm view on Meta::CPAN
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.
/
=head2 User's notes (Juan Lorenzo)
untested
=cut
=head2 CHANGES and their DATES
=cut
use Moose;
our $VERSION = '0.0.1';
=head2 Import packages
=cut
use aliased 'App::SeismicUnixGui::misc::L_SU_global_constants';
use App::SeismicUnixGui::misc::SeismicUnix qw($in $out $on $go $to $suffix_ascii $off $suffix_su $suffix_bin);
use aliased 'App::SeismicUnixGui::configs::big_streams::Project_config';
=head2 instantiation of packages
=cut
my $get = L_SU_global_constants->new();
my $Project = Project_config->new();
my $DATA_SEISMIC_SU = $Project->DATA_SEISMIC_SU();
my $DATA_SEISMIC_BIN = $Project->DATA_SEISMIC_BIN();
my $DATA_SEISMIC_TXT = $Project->DATA_SEISMIC_TXT();
my $var = $get->var();
my $on = $var->{_on};
my $off = $var->{_off};
my $true = $var->{_true};
my $false = $var->{_false};
my $empty_string = $var->{_empty_string};
=head2 Encapsulated
hash of private variables
=cut
my $normray = {
_angle => '',
_ashift => '',
_caustic => '',
_dangle => '',
( run in 1.416 second using v1.01-cache-2.11-cpan-39bf76dae61 )