USML
profile_munk.h
1 
6 #ifndef USML_OCEAN_PROFILE_MUNK_H
7 #define USML_OCEAN_PROFILE_MUNK_H
8 
9 #include <usml/ocean/profile_model.h>
10 
11 namespace usml {
12 namespace ocean {
13 
16 
36 class USML_DECLSPEC profile_munk : public profile_model {
37 
38  private:
39 
41  const double _axis_depth ;
42 
44  const double _scale ;
45 
47  const double _axis_speed ;
48 
50  const double _epsilon ;
51 
52 
53  //**************************************************
54  // sound speed model
55 
56  public:
57 
66  virtual void sound_speed( const wposition& location,
67  matrix<double>* speed, wvector* gradient=NULL ) ;
68 
69  //**************************************************
70  // initialization
71 
88  double axis_depth=1300.0, double scale=1300.0,
89  double axis_speed=1500.0, double epsilon=7.37e-3,
90  attenuation_model* attmodel=NULL)
91  : profile_model(attmodel), _axis_depth(axis_depth), _scale(scale),
92  _axis_speed(axis_speed), _epsilon(epsilon)
93  { }
94 
96  double axis_depth() { return _axis_depth; }
97 
99  double scale() { return _scale; }
100 
102  double axis_speed() { return _axis_speed; }
103 
105  double epsilon() { return _epsilon; }
106 };
107 
109 } // end of namespace ocean
110 } // end of namespace usml
111 
112 #endif
double axis_speed()
Sound speed on the deep sound channel axis (m/s).
Definition: profile_munk.h:102
Creates an analytic model for the Munk profile, an idealized representation of a deep sound (SOFAR) c...
Definition: profile_munk.h:36
World location in geodetic earth coordinates (latitude, longitude, and altitude). ...
Definition: wposition.h:39
const double _axis_speed
Sound speed on the deep sound channel axis (m/s).
Definition: profile_munk.h:47
double epsilon()
Perturbation coefficient.
Definition: profile_munk.h:105
const double _epsilon
Perturbation coefficient.
Definition: profile_munk.h:50
const double _scale
Depth scaling factor (meters).
Definition: profile_munk.h:44
double scale()
Depth scaling factor (meters).
Definition: profile_munk.h:99
profile_munk(double axis_depth=1300.0, double scale=1300.0, double axis_speed=1500.0, double epsilon=7.37e-3, attenuation_model *attmodel=NULL)
Build Munk profile from its component parts.
Definition: profile_munk.h:87
const double _axis_depth
Depth of the deep sound channel axis (meters)
Definition: profile_munk.h:41
A "profile model" computes the environmental parameters of ocean water.
Definition: profile_model.h:28
double axis_depth()
Depth of the deep sound channel axis (meters)
Definition: profile_munk.h:96
World vector in spherical earth coordinates.
Definition: wvector.h:42
An attenuation loss model computes the absorption of sound by the minerals in sea water...
Definition: attenuation_model.h:30