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 )