Eigenray search is perhaps one of the most difficult problems to tackle within the context of ray tracing.
Stated simply as the task of calculating a set of rays,
which connect the source to the receiver,
it is important to keep in mind that in general rays can be sent backwards to the source.
Therefore,
if a ray misses the receiver when propagating forward it still has the chance to hit the receiver on its way back
to the source.
Further complications arise when the rays can be absorbed by the boundaries,
or when small variations of the launching angle lead to non-linear variations of ray trajectories
(a situation, typical of the placing of objects inside the waveguide).
In order to provide a robust method of eigenray search TRACEO uses two different
approaches to the problem,
namely:
- If all rays are propagating forwards,
TRACEO interpolates ray depth at each array range for every launching angle.
This procedure generates a matrix of the form:
where represents ray depth at range and launching angle .
Then, at the th range, with the hydrophone located at depth ,
TRACEO calculates the function
using the correspond row of the matrix;
if an eigenray exists in the interval and ,
the function will switch signs between and ;
in such case the Regula Falsi method is used to find the zero of the function.
Once the zero is found the ray is calculated,
and written to the output file as an eigenray.
In order to avoid an infinite loop the eigenray search is interrupted if the number of iterations
is greater than a given limit.
Particular care is taken in order to deal with rays,
which for any reason do not reach the given array range.
The search is interrupted if a ``returning'' ray is detected.
The Regula Falsi method is computationally accurate and efficient,
as long as the function can be properly computed,
which won't be the case for returning rays.
- As an alternative to the previous method TRACEO can use a less accurate (but stable)
search of eigenrays by proximity.
At each range ray depth is calculated,
and for each depth (if there is more than one) TRACEO calculates the difference
where represents hydrophone depth;
if the difference is less than a given threshold TRACEO writes the ray to the output file
as an eigenray.
Certainly,
the accuracy of the method depends on the choice of the threshold,
and on the number of launching angles
(the more, the better).
Until a better approach is idealized for dealing with returning rays the proximity method seems to offer
a reasonable compromise between accuracy and stability.
Eigenrays are not grouped by TRACEO according the coordinates of the array;
they are witten progressively, one after another, to the output file.
It is up to the user to group them according to the position of each hydrophone.
Orlando Camargo Rodríguez
2012-06-21