Creates an analytic model for an N^2 Linear profile.
In this profile, the square of the index of refraction is linear. This is a useful profile because its ray paths can be computed analytically and used to test propagation loss modeling accuracy against standard benchmarks. The general form of the N^2 Linear profile is defined as:
n(z) = c0 / c(z)
c(z) = c0 / sqrt( 1 - 2 g0 / c0 * z )
where: z = depth below the ocean surface (negative is down). n(z) = index of refraction as a function of depth. c(z) = speed of sound as a function of depth. c0 = speed of sound at z=0 g0 = sound speed gradient at z=0 (+ when deeper depths are slower).
profile_n2 | ( | double | c0, | |
double | g0, | |||
attenuation_model * | attmodel = NULL | |||
) | [inline] |
Default behavior for new profile models.
c0 | Speed of sound at the surface of the water. | |
g0 | Gradient for the square of the index of refraction. | |
attmodel | In-water attenuation model. Defaults to Thorp. The profile_model takes over ownship 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 _factor [private] |
Gradient factor = 2 g0 / c0.
double _soundspeed0 [private] |
Speed of sound at the surface of the water.