profile_linear.h

00001 
00005 #pragma once
00006 
00007 #include <usml/ocean/profile_model.h>
00008 
00009 namespace usml {
00010 namespace ocean {
00011 
00014 
00036 class USML_DECLSPEC profile_linear : public profile_model {
00037 
00038     //**************************************************
00039     // sound speed model
00040 
00042     double _soundspeed0 ;
00043 
00045     double _gradient0 ;
00046 
00048     double _depth1 ;
00049 
00051     double _gradient1 ;
00052 
00053   public:
00054 
00063     virtual void sound_speed( const wposition& location,
00064         matrix<double>* speed, wvector* gradient=NULL ) ;
00065 
00066     //**************************************************
00067     // initialization
00068 
00080     profile_linear(
00081         double c0, double g0, double z1, double g1,
00082         attenuation_model* attmodel=NULL
00083         ) :
00084         profile_model(attmodel),
00085         _soundspeed0(c0), _gradient0(g0),
00086         _depth1(z1), _gradient1(g1)
00087         { }
00088 
00098     profile_linear(
00099         double c0, double g0,
00100         attenuation_model* attmodel=NULL
00101         ) :
00102         profile_model(attmodel),
00103         _soundspeed0(c0), _gradient0(g0),
00104         _depth1(0.0), _gradient1(g0)
00105         { }
00106 
00115     profile_linear(
00116         double c0 = 1500.0,
00117         attenuation_model* attmodel=NULL
00118         ) :
00119         profile_model(attmodel),
00120         _soundspeed0(c0), _gradient0(0.0),
00121         _depth1(0.0), _gradient1(0.0)
00122         { }
00123 
00124 };
00125 
00126 }  // end of namespace ocean
00127 }  // end of namespace usml

Generated on 4 May 2015 for USML by  doxygen 1.6.1