spreading_ray Class Reference

Collaboration diagram for spreading_ray:
Collaboration graph
[legend]

Constructor & Destructor Documentation

spreading_ray ( wave_queue wave  )  [protected]

Estimate initial ensonfied area between rays at radius of 1 meter.

\[ A_{ab} = \left( cos( \mu_b ) - cos( mu_a) \right) \left( \eta_b - \eta_a\right) \]

where:

  • $ \mu_a, \mu_b $ = depression/elevation angles at source
  • $ \eta_a, \eta_b $ = azimuthal angles at source
  • $ A_{ab} = $ = initial area of interest between these rays
Parameters:
wave Wavefront object associated with this model.
virtual ~spreading_ray (  )  [inline, protected, virtual]

Virtual destructor.


Member Function Documentation

const vector< double > & intensity ( const wposition1 location,
size_t  de,
size_t  az,
const vector< double > &  offset,
const vector< double > &  distance 
) [protected, virtual]

Estimate intensity as the ratio of current area to initial area.

Approximates the area as the sum of two triangles that connect the corner points.

Extrapolates across edges in the wavefront by keeping a constant level for three (3) extra beam widths. This compensates for the fact that the detection scheme used by wavefront.on_edges() may leave the closest valid wavefront segment may be up to 1 1/2 segments away from the actual edge. A failure to properly take this into account will show up as weak eignerays near the surface, bottom, or caustics.

Parameters:
location Target location.
de DE index of closest point of approach.
az AZ index of closest point of approach.
offset Offsets in time, DE, and AZ at collision.
distance Offsets in distance units.
Returns:
Intensity of ray at this point.

Implements spreading_model.

double width_az ( size_t  de,
size_t  az,
const vector< double > &  offset 
) [protected, virtual]

Compute the harmonic mean of the distance between the position on the wavefront that is AZ+1 and AZ-1 from AZ.

Divides the result by 1/2, as the width of the gaussian cell is half of the distance.

Parameters:
de DE index of contributing cell.
az AZ index of contributing cell.
offset (Not used in this calculation)
Returns:
Half-width of cell in the AZ direction.

Divides the result by 1/2, as the width of the gaussian cell is half of the distance.

Implements spreading_model.

double width_de ( size_t  de,
size_t  az,
const vector< double > &  offset 
) [protected, virtual]

Compute the harmonic mean of the distance between the position on the wavefront that is DE+1 and DE-1 from DE.

Divides the result by 1/2, as the width of the gaussian cell is half of the distance.

Parameters:
de DE index of contributing cell.
az AZ index of contributing cell.
offset (Not used in this calculation)
Returns:
Half-width of cell in the DE direction.

Divides the result by 1/2, as the width of the gaussian cell is half of the distance.

Implements spreading_model.


Friends And Related Function Documentation

friend class wave_queue [friend]

Reimplemented from spreading_model.

friend class wave_queue_reverb [friend]

Member Data Documentation

matrix<double> _init_area [private]

Initial ensonified area for each ray span.

Assign the area for each span to the index of the ray that precedes it in D/E and azimuth. Copy the last element in each direction from the one before it. Divide the initial area by the initial speed of sound so that we don't have to do this each time intensity is calculated.


Generated on 4 May 2015 for USML by  doxygen 1.6.1