profile_munk.h

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     // sound speed model
00053 
00054   public:
00055 
00064     virtual void sound_speed( const wposition& location, 
00065         matrix<double>* speed, wvector* gradient=NULL ) ;
00066 
00067     //**************************************************
00068     // initialization
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 }  // end of namespace ocean
00108 }  // end of namespace usml

Generated on 4 May 2015 for USML by  doxygen 1.6.1