39#ifndef UWPHYSICALROGERSMODEL_H
40#define UWPHYSICALROGERSMODEL_H
43#include <underwater-mpropagation.h>
75 virtual int command(
int,
const char *
const *);
78 virtual double getGain(Packet *p);
93 virtual double getAttenuation(
const double &_sound_speed_water_bottom,
94 const double &_distance,
const double &_frequency,
95 const double &_bottom_depth);
107 sqrt(pow((1 - pow(
get_N0(), 2)), 3));
161 getTheta_g(
const double &_bottom_depth,
const double &_distance)
const
163 return std::sqrt((1.7 * _bottom_depth) / (
getBeta() * _distance));
176 return std::sqrt((2 *
get_g()) / (_sound_speed_water_bottom));
191 const double &_frequency,
const double &_bottom_depth)
const
193 return (_sound_speed_water_bottom / (2 * _frequency * _bottom_depth));
206 double f2_ = pow(_frequency, 2);
209 if (_frequency >= 0.4)
210 return (0.11 * f2_ / (1.0 + f2_) + 44.0 * f2_ / (4100.0 + f2_) +
211 2.75e-4 * f2_ + 0.003) *
214 return (0.002 + 0.11 * f2_ / (1 + f2_) + 0.011 * f2_) *
218#if __cplusplus <= 199711L
Definition uwphysicalrogersmodel.h:50
const double getTheta_g_max(const double &_sound_speed_water_bottom) const
Definition uwphysicalrogersmodel.h:174
int debug_
Definition uwphysicalrogersmodel.h:238
const double get_M0() const
Definition uwphysicalrogersmodel.h:136
double density_water
Definition uwphysicalrogersmodel.h:235
const double getTheta_c(const double &_sound_speed_water_bottom, const double &_frequency, const double &_bottom_depth) const
Definition uwphysicalrogersmodel.h:190
double density_sediment
Definition uwphysicalrogersmodel.h:234
static const double FROMDBPERKYARDTODMPERM
Definition uwphysicalrogersmodel.h:219
const double get_g() const
Definition uwphysicalrogersmodel.h:147
const double get_Ks() const
Definition uwphysicalrogersmodel.h:116
virtual ~UnderwaterPhysicalRogersModel()
Definition uwphysicalrogersmodel.h:61
double sound_speed_water_bottom
Definition uwphysicalrogersmodel.h:229
const double getBeta() const
Definition uwphysicalrogersmodel.h:104
double sound_speed_water_surface
Definition uwphysicalrogersmodel.h:231
double getThorp(double _frequency)
Definition uwphysicalrogersmodel.h:204
double attenuation_coeff_sediment
Definition uwphysicalrogersmodel.h:236
virtual double getAttenuation(const double &_sound_speed_water_bottom, const double &_distance, const double &_frequency, const double &_bottom_depth)
Definition uwphysicalrogersmodel.cpp:168
UnderwaterPhysicalRogersModel()
Definition uwphysicalrogersmodel.cpp:55
virtual double getGain(Packet *p)
Definition uwphysicalrogersmodel.cpp:131
double bottom_depth
Definition uwphysicalrogersmodel.h:228
double sound_speed_sediment
Definition uwphysicalrogersmodel.h:233
virtual int command(int, const char *const *)
Definition uwphysicalrogersmodel.cpp:76
const double get_N0() const
Definition uwphysicalrogersmodel.h:127
const double getTheta_g(const double &_bottom_depth, const double &_distance) const
Definition uwphysicalrogersmodel.h:161