USML
profile_grid< DATA_TYPE, NUM_DIMS > Class Template Reference
Collaboration diagram for profile_grid< DATA_TYPE, NUM_DIMS >:

Detailed Description

template<class DATA_TYPE, int NUM_DIMS>
class usml::ocean::profile_grid< DATA_TYPE, NUM_DIMS >

Sound speed model constructed from a 1-D, 2-D, or 3-D data grid.

The coordinate system for each kind of data set is:

 - 1-D: Assumes that the sound speed is only a function
        of altitude
 - 2-D: Assumes that the order of axes in the grid is
        (altitude, latitude)
 - 3-D: Assumes that the order of axes in the grid is
        (altitude, latitude, longitude)

—NOTE: altitude is the distance from the surface of the ocean to the location under the ocean with down as negative.

^^^NOTE: All calculations are under the assumption that the grid axes passed in have already been transformed to their spherical earth equivalents (altitude -> rho, theta,phi).

Constructor & Destructor Documentation

profile_grid ( data_grid< DATA_TYPE, NUM_DIMS > *  speed,
attenuation_model attmodel = NULL 
)
inline

Default behavior for new profile models.

Parameters
speedSound speed for the whole ocean (m/s). Assumes control of this grid and deletes it when the class is destroyed.
attmodelIn-water attenuation model. Defaults to Thorp. The profile_model takes over ownership of this reference and deletes it as part of its destructor.
virtual ~profile_grid ( )
inlinevirtual

Delete sound speed grid.

Member Function Documentation

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

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

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

Implements profile_model.

Member Data Documentation

data_grid<DATA_TYPE,NUM_DIMS>* _sound_speed
protected

Sound speed for all locations.