USML
reflect_loss_rayleigh.h
1 
7 #ifndef USML_OCEAN_REFLECT_LOSS_RAYLEIGH_H
8 #define USML_OCEAN_REFLECT_LOSS_RAYLEIGH_H
9 
10 #include <usml/ocean/reflect_loss_model.h>
11 
12 namespace usml {
13 namespace ocean {
14 
15 using boost::numeric::ublas::vector;
16 
19 
86 class USML_DECLSPEC reflect_loss_rayleigh : public reflect_loss_model {
87 
88  //**************************************************
89  // bottom type lookup table
90 
91  public:
92 
93 
95  typedef enum {
96  CLAY, SILT, SAND, GRAVEL, MORAINE, CHALK, LIMESTONE, BASALT, MUD
97  } bottom_type_enum ;
98 
99  private:
100 
102  static struct bottom_type_table {
104  double density ;
105  double speed ;
106  double att_bottom ;
107  double speed_shear ;
108  double att_shear ;
109  } lookup[] ;
110 
111  //**************************************************
112  // impedance mis-match factors
113 
115  const double _density_water ;
116 
118  const double _speed_water ;
119 
121  const double _density_bottom ;
122 
124  const double _speed_bottom ;
125 
127  const double _att_bottom ;
128 
130  const double _speed_shear ;
131 
133  const double _att_shear ;
134 
135  public:
136 
145 
162  double density, double speed, double att_bottom=0.0,
163  double speed_shear=0.0, double att_shear=0.0 ) ;
164 
175  virtual void reflect_loss(
176  const wposition1& location,
177  const seq_vector& frequencies, double angle,
178  vector<double>* amplitude, vector<double>* phase=NULL ) ;
179 
180  private:
181 
197  complex<double> impedance(
198  double density, double speed, double attenuation, double angle,
199  complex< double >* cosA ) ;
200 } ;
201 
203 } // end of namespace ocean
204 } // end of namespace usml
205 
206 #endif
const double _speed_bottom
Compressional speed of sound in bottom (m/s).
Definition: reflect_loss_rayleigh.h:124
double density
Definition: reflect_loss_rayleigh.h:104
double att_bottom
Definition: reflect_loss_rayleigh.h:106
const double _att_bottom
Compressional wave attenuation in bottom (nepers/wavelength).
Definition: reflect_loss_rayleigh.h:127
A reflection loss model computes the changes in amplitude and phase that result from the reflection o...
Definition: reflect_loss_model.h:30
const double _density_water
Density of water (kg/m^3).
Definition: reflect_loss_rayleigh.h:115
Bottom types lookup table.
Definition: reflect_loss_rayleigh.h:102
double speed
Definition: reflect_loss_rayleigh.h:105
double speed_shear
Definition: reflect_loss_rayleigh.h:107
const double _speed_shear
Shear speed of sound in bottom (m/s).
Definition: reflect_loss_rayleigh.h:130
double att_shear
Definition: reflect_loss_rayleigh.h:108
World location in geodetic earth coordinates (latitude, longitude, and altitude). ...
Definition: wposition1.h:23
const double _density_bottom
Bottom density (kg/m^3).
Definition: reflect_loss_rayleigh.h:121
const double _speed_water
Speed of sound in water (m/s).
Definition: reflect_loss_rayleigh.h:118
Models plane wave reflection loss from a flat fluid-solid interface.
Definition: reflect_loss_rayleigh.h:86
const double _att_shear
Shear wave attenuation in bottom (nepers/wavelength).
Definition: reflect_loss_rayleigh.h:133
A read-only, monotonic sequence of values.
Definition: seq_vector.h:36
Definition: reflect_loss_rayleigh.h:96
bottom_type_enum
Bottom types supported by table lookup feature.
Definition: reflect_loss_rayleigh.h:95
bottom_type_enum type
Definition: reflect_loss_rayleigh.h:103