DESERT 4.0.0
UnderwaterPhysicalRogersModel Class Reference

#include <uwphysicalrogersmodel.h>

Inheritance diagram for UnderwaterPhysicalRogersModel:
Inheritance graph
Collaboration diagram for UnderwaterPhysicalRogersModel:
Collaboration graph

Public Member Functions

 UnderwaterPhysicalRogersModel ()
 
virtual ~UnderwaterPhysicalRogersModel ()
 
virtual int command (int, const char *const *)
 

Protected Member Functions

virtual double getGain (Packet *p)
 
virtual double getAttenuation (const double &_sound_speed_water_bottom, const double &_distance, const double &_frequency, const double &_bottom_depth)
 
const double getBeta () const
 
const double get_Ks () const
 
const double get_N0 () const
 
const double get_M0 () const
 
const double get_g () const
 
const double getTheta_g (const double &_bottom_depth, const double &_distance) const
 
const double getTheta_g_max (const double &_sound_speed_water_bottom) const
 
const double getTheta_c (const double &_sound_speed_water_bottom, const double &_frequency, const double &_bottom_depth) const
 
double getThorp (double _frequency)
 

Static Protected Attributes

static const double FROMDBPERKYARDTODMPERM
 
static constexpr double FROMDBPERKYARDTODMPERM
 

Private Attributes

double bottom_depth
 
double sound_speed_water_bottom
 
double sound_speed_water_surface
 
double sound_speed_sediment
 
double density_sediment
 
double density_water
 
double attenuation_coeff_sediment
 
int debug_
 

Constructor & Destructor Documentation

◆ UnderwaterPhysicalRogersModel()

UnderwaterPhysicalRogersModel::UnderwaterPhysicalRogersModel ( )

◆ ~UnderwaterPhysicalRogersModel()

virtual UnderwaterPhysicalRogersModel::~UnderwaterPhysicalRogersModel ( )
inlinevirtual

Destructor of UnderwaterMPhyBpskDb class.

Member Function Documentation

◆ command()

int UnderwaterPhysicalRogersModel::command ( int  argc,
const char *const *  argv 
)
virtual

TCL command interpreter. It implements the following OTcl methods:

Parameters
argcNumber of arguments in argv.
argvArray of strings which are the command parameters (Note that argv[0] is the name of the object).
Returns
TCL_OK or TCL_ERROR whether the command has been dispatched successfully or not.

References attenuation_coeff_sediment, bottom_depth, density_sediment, density_water, sound_speed_sediment, sound_speed_water_bottom, and sound_speed_water_surface.

◆ get_g()

const double UnderwaterPhysicalRogersModel::get_g ( ) const
inlineprotected

Magnitude of the negative sound speed profile

Returns
Magnitude of the negative sound speed profile

References sound_speed_water_bottom, and sound_speed_water_surface.

Referenced by getTheta_g_max().

◆ get_Ks()

const double UnderwaterPhysicalRogersModel::get_Ks ( ) const
inlineprotected

Sediment attenuation coefficient (dB/(m*kHz))

Returns
Sediment attenuation coefficient

References attenuation_coeff_sediment.

Referenced by getBeta().

◆ get_M0()

const double UnderwaterPhysicalRogersModel::get_M0 ( ) const
inlineprotected

Ratio between the density of the sediment and the density of the water

References density_sediment, and density_water.

Referenced by getBeta().

◆ get_N0()

const double UnderwaterPhysicalRogersModel::get_N0 ( ) const
inlineprotected

Ratio between the sound speed on sound at the surface and sound speed of sound in the sediment

References sound_speed_sediment, and sound_speed_water_bottom.

Referenced by getBeta().

◆ getAttenuation()

double UnderwaterPhysicalRogersModel::getAttenuation ( const double &  _sound_speed_water_bottom,
const double &  _distance,
const double &  _frequency,
const double &  _bottom_depth 
)
protectedvirtual

Attenuation of acoustic signal in underwater channel. The value returned is base on Rogers model for shallow water.

Parameters
_sound_speed_water_bottomsound speed of the sound at the bottom (in m/s)
_distancedistance between source and destination (in meters)
_frequencyfrequency (in kHz)
_bottom_depthheight of the column of water (in meters)
Returns
Attenuation in dB

References getBeta(), getTheta_c(), getTheta_g(), getTheta_g_max(), and getThorp().

Referenced by getGain().

Here is the call graph for this function:

◆ getBeta()

const double UnderwaterPhysicalRogersModel::getBeta ( ) const
inlineprotected

Bottom loss (dB/rad) derived from the expression for the Rayleigh reflection coefficient for a two-fluid lossy interface

return Bottom loss (dB/rad)

References get_Ks(), get_M0(), and get_N0().

Referenced by getAttenuation(), and getTheta_g().

Here is the call graph for this function:

◆ getGain()

double UnderwaterPhysicalRogersModel::getGain ( Packet *  p)
protectedvirtual

References bottom_depth, debug_, getAttenuation(), and sound_speed_water_bottom.

Here is the call graph for this function:

◆ getTheta_c()

const double UnderwaterPhysicalRogersModel::getTheta_c ( const double &  _sound_speed_water_bottom,
const double &  _frequency,
const double &  _bottom_depth 
) const
inlineprotected

Cutoff angle of the lowest mode

Parameters
_sound_speed_water_bottomsound speed in m/s of the sound at the bottom
_frequencyin kHz
_bottom_depthheight of the column of water in meters
Returns
Cutoff angle of the lowest mode

Referenced by getAttenuation().

◆ getTheta_g()

const double UnderwaterPhysicalRogersModel::getTheta_g ( const double &  _bottom_depth,
const double &  _distance 
) const
inlineprotected

Effective angle of the last mode striped

Parameters
_bottom_depthheight of the column of water in meters
_distancedistance between source and destination (in meters)
Returns
Effective angle of the last mode striped

References getBeta().

Referenced by getAttenuation().

Here is the call graph for this function:

◆ getTheta_g_max()

const double UnderwaterPhysicalRogersModel::getTheta_g_max ( const double &  _sound_speed_water_bottom) const
inlineprotected

Maximum grazion angle for an RBR mode

Parameters
_sound_speed_bottomsound speed in m/s of the sound at the bottom
Returns
Maximum grazion angle for an RBR mode

References get_g().

Referenced by getAttenuation().

Here is the call graph for this function:

◆ getThorp()

double UnderwaterPhysicalRogersModel::getThorp ( double  _frequency)
inlineprotected

Absorption coefficient calculated by using Thorp's equation.

Parameters
_frequencyin kHz
Returns
absorprion coefficient in dB/m

References FROMDBPERKYARDTODMPERM.

Referenced by getAttenuation().

Member Data Documentation

◆ attenuation_coeff_sediment

double UnderwaterPhysicalRogersModel::attenuation_coeff_sediment
private

Attenuation coefficient of the sediment (dB/(m*kHz)).

Referenced by command(), get_Ks(), and UnderwaterPhysicalRogersModel().

◆ bottom_depth

double UnderwaterPhysicalRogersModel::bottom_depth
private

Water depth (m)

Referenced by command(), getGain(), and UnderwaterPhysicalRogersModel().

◆ debug_

int UnderwaterPhysicalRogersModel::debug_
private

Debug level.

Referenced by getGain(), and UnderwaterPhysicalRogersModel().

◆ density_sediment

double UnderwaterPhysicalRogersModel::density_sediment
private

Sediment density (g/cm^3).

Referenced by command(), get_M0(), and UnderwaterPhysicalRogersModel().

◆ density_water

double UnderwaterPhysicalRogersModel::density_water
private

Water density (g/cm^3).

Referenced by command(), get_M0(), and UnderwaterPhysicalRogersModel().

◆ FROMDBPERKYARDTODMPERM [1/2]

const double UnderwaterPhysicalRogersModel::FROMDBPERKYARDTODMPERM
staticprotected
Initial value:
=
0.001093613298338

Conversion factor from dB/kyard to dB/m.

Referenced by getThorp().

◆ FROMDBPERKYARDTODMPERM [2/2]

constexpr double UnderwaterPhysicalRogersModel::FROMDBPERKYARDTODMPERM
staticconstexprprotected
Initial value:
=
0.001093613298338

Conversion factor from dB/kyard to dB/m.

◆ sound_speed_sediment

double UnderwaterPhysicalRogersModel::sound_speed_sediment
private

Speed of sound in the sediment (m/s).

Referenced by command(), get_N0(), and UnderwaterPhysicalRogersModel().

◆ sound_speed_water_bottom

double UnderwaterPhysicalRogersModel::sound_speed_water_bottom
private

Speed of sound in water at the sea bottom level (m/s).

Referenced by command(), get_g(), get_N0(), getGain(), and UnderwaterPhysicalRogersModel().

◆ sound_speed_water_surface

double UnderwaterPhysicalRogersModel::sound_speed_water_surface
private

Speed of sound in water at the sea surface level (m/s).

Referenced by command(), get_g(), and UnderwaterPhysicalRogersModel().


The documentation for this class was generated from the following files: