USML
profile_linear Class Reference
Collaboration diagram for profile_linear:

Detailed Description

Creates an analytic model for a bi-linear, linear, or constant profile.

This type of profile is commonly used as an analytic test case in propagation loss modeling. The general form of the bi-linear profile is defined as:

         c(z) = c0 + g0 * z                      for z < z1
         c(z) = c0 + g0 * z1 + g1 * ( z - z1 )   for z >= z1
where:
         c0   = speed of sound at the surface of the water
         z    = depth below the ocean surface (positive direction down)
         z1   = depth at which profile changes gradients
         g0   = sound speed gradient for z < z1
         g1   = sound speed gradient for z >= z1
         c(z) = speed of sound as a function of depth

This can be used as a linear profile by setting z1=0 and g1=g0. In a contant profile, all of the values are zero except c0.

Constructor & Destructor Documentation

profile_linear ( double  c0,
double  g0,
double  z1,
double  g1,
attenuation_model attmodel = NULL 
)
inline

Bi-Linear verion of the profile.

Parameters
c0Speed of sound at the surface of the water.
g0Sound speed gradient at the surface of the water.
z1Depth at which profile changes gradients.
g1Sound speed gradient for depths below z1.
attmodelIn-water attenuation model. Defaults to Thorp. The profile_model takes over ownership of this reference and deletes it as part of its destructor.
profile_linear ( double  c0,
double  g0,
attenuation_model attmodel = NULL 
)
inline

Linear verion of the profile.

Parameters
c0Speed of sound at the surface of the water.
g0Sound speed gradient at the surface of the water.
attmodelIn-water attenuation model. Defaults to Thorp. The profile_model takes over ownership of this reference and deletes it as part of its destructor.
profile_linear ( double  c0 = 1500.0,
attenuation_model attmodel = NULL 
)
inline

Constant speed verion of the profile.

Parameters
c0Speed of sound at all points in the water.
attmodelIn-water attenuation model. Defaults to Thorp. The profile_model takes over ownership of this reference and deletes it as part of its destructor.

Member Function Documentation

void sound_speed ( const wposition location,
matrix< double > *  speed,
wvector gradient = NULL 
)
virtual

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

Parameters
locationLocation at which to compute sound speed.
speedSpeed of sound (m/s) at each location (output).
gradientSound speed gradient at each location (output).

Implements profile_model.

Member Data Documentation

double _depth1
private

Depth at which profile changes gradients.

double _gradient0
private

Sound speed gradient at the surface of the water.

double _gradient1
private

Sound speed gradient for depths below _depth1.

double _soundspeed0
private

Speed of sound at the surface of the water.