profile_model Class Reference
[Ocean Profiles]

Collaboration diagram for profile_model:
Collaboration graph
[legend]

Detailed Description

A "profile model" computes the environmental parameters of ocean water.

The modeled properties include the sound velocity profile and the attenuation due to sea water absorption. This class implements an attenuation model through delegation. The delegated model is defined separately and added to its host during/after construction. The host is defined as an attenuation_model subclass so that its children can share the attenuation model through this delegation.


Constructor & Destructor Documentation

profile_model ( attenuation_model attenuation = NULL  )  [inline]

Constructor - Initialize component models within ocean profile.

Parameters:
attenuation In-water attenuation model. Uses Thorp model if none specified.
virtual ~profile_model (  )  [inline, virtual]

Destructor - Delete attenuation model.


Member Function Documentation

void adjust_speed ( const wposition location,
matrix< double > *  speed,
wvector gradient = NULL 
) [protected, virtual]

When the flat earth option is enabled, this routine applies an anti-correction term to the profile.

Used to compare propagation effect to models that have been computed in rectangular coordinates. The corrected sound speed and gradient are given by:

      c' = c r / R
      dc/dr' = dc/dr r / R + c / R
 where:
      c, dc/dr    = uncorrected sound speed and gradient
      c', dc/dr'  = anti-corrected sound speed and gradient
      r           = radial component of wavefront position
      R           = earth's radius of curvature
 

An additional horizontal correction must be made to properly compare the results of this model to flat earth models. To convert lat/long changes (dA) into horizontal range (dx), you can not use the average earth radius (R) such that dx = R dA. Instead you must use the radial position (r) at each point in the wavefront such that dx = r dA. This routine does not provide horizontal correction.

References:
S.M. Reilly, M.S. Goodrich, "Geodetic Acoustic Rays in the Time Domain, Comprehensive Test Results", Alion Science and Technology, Norfolk, VA, September, 2006.
Parameters:
location Location at which to compute attenuation.
speed Speed of sound (m/s) at each location (in/out).
gradient Sound speed gradient at each location (in/out).
virtual void attenuation ( const wposition location,
const seq_vector frequencies,
const matrix< double > &  distance,
matrix< vector< double > > *  attenuation 
) [inline, virtual]

Computes the broadband absorption loss of sea water.

Parameters:
location Location at which to compute attenuation.
frequencies Frequencies over which to compute loss. (Hz)
distance Distance travelled through the water (meters).
attenuation Absorption loss of sea water in dB (output).

Implements attenuation_model.

void attenuation ( attenuation_model attenuation  )  [inline]

Define a new in-water attenuation model.

Parameters:
attenuation In-water attenuation model.
void flat_earth ( bool  flat  )  [inline]

Anti-correction term to make the earth seem flat.

Used to compare propagation effect to models that have been computed in rectangular coordinates.

Parameters:
flat Make the earth seem flat when true.
virtual void sound_speed ( const wposition location,
matrix< double > *  speed,
wvector gradient = NULL 
) [pure virtual]

Compute the speed of sound and it's first derivatives at a series of locations.

Parameters:
location Location at which to compute attenuation.
speed Speed of sound (m/s) at each location (output).
gradient Sound speed gradient at each location (output).

Implemented in profile_catenary, profile_grid< DATA_TYPE, NUM_DIMS >, profile_grid_fast, profile_linear, profile_lock, profile_munk, and profile_n2.


Member Data Documentation

Reference to the in-water attenuation model.

bool _flat_earth [protected]

Anti-correction term to make the earth seem flat.


Generated on 4 May 2015 for USML by  doxygen 1.6.1