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.
profile_linear | ( | double | c0, | |
double | g0, | |||
double | z1, | |||
double | g1, | |||
attenuation_model * | attmodel = NULL | |||
) | [inline] |
Bi-Linear verion of the profile.
c0 | Speed of sound at the surface of the water. | |
g0 | Sound speed gradient at the surface of the water. | |
z1 | Depth at which profile changes gradients. | |
g1 | Sound speed gradient for depths below z1. | |
attmodel | In-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.
c0 | Speed of sound at the surface of the water. | |
g0 | Sound speed gradient at the surface of the water. | |
attmodel | In-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.
c0 | Speed of sound at all points in the water. | |
attmodel | In-water attenuation model. Defaults to Thorp. The profile_model takes over ownership of this reference and deletes it as part of its destructor. |
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.
location | Location at which to compute sound speed. | |
speed | Speed of sound (m/s) at each location (output). | |
gradient | Sound speed gradient at each location (output). |
Implements profile_model.
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.