00001
00005 #pragma once
00006
00007 #include <usml/ocean/profile_model.h>
00008
00009 namespace usml {
00010 namespace ocean {
00011
00014
00034 class USML_DECLSPEC profile_munk : public profile_model {
00035
00036 private:
00037
00039 const double _axis_depth ;
00040
00042 const double _scale ;
00043
00045 const double _axis_speed ;
00046
00048 const double _epsilon ;
00049
00050
00051
00052
00053
00054 public:
00055
00064 virtual void sound_speed( const wposition& location,
00065 matrix<double>* speed, wvector* gradient=NULL ) ;
00066
00067
00068
00069
00085 profile_munk(
00086 double axis_depth=1300.0, double scale=1300.0,
00087 double axis_speed=1500.0, double epsilon=7.37e-3,
00088 attenuation_model* attmodel=NULL)
00089 : profile_model(attmodel), _axis_depth(axis_depth), _scale(scale),
00090 _axis_speed(axis_speed), _epsilon(epsilon)
00091 { }
00092
00094 double axis_depth() { return _axis_depth; }
00095
00097 double scale() { return _scale; }
00098
00100 double axis_speed() { return _axis_speed; }
00101
00103 double epsilon() { return _epsilon; }
00104 };
00105
00107 }
00108 }