World Ocean Simulation System (WOSS) library
WossMPropagation Class Reference

UnderwaterMPropagation class for channel calculations with WOSS. More...

#include <uw-woss-mpropagation.h>

Inheritance diagram for WossMPropagation:
Inheritance graph
Collaboration diagram for WossMPropagation:
Collaboration graph

Public Member Functions

 WossMPropagation ()
virtual ~WossMPropagation () override=default
virtual double getGain (Packet *p) override
virtual int command (int argc, const char *const *argv) override

Private Member Functions

void insertStdGainMatrix (Position *sp, Position *rp, double gain)
double computeGain (Packet *p)
void writeStdGainMatrix ()

Private Attributes

woss::WossManagerwoss_manager
GainMatrix std_gain_map
bool write_gain_matrix
fstream std_gain_out
string std_gain_matrix_name

Detailed Description

UnderwaterMPropagation class for channel calculations with WOSS.

WossMPropagation extends UnderwaterMPropagation for channel calculations with WOSS

Constructor & Destructor Documentation

◆ WossMPropagation()

WossMPropagation::WossMPropagation ( )

References woss_manager, and write_gain_matrix.

◆ ~WossMPropagation()

virtual WossMPropagation::~WossMPropagation ( )
overridevirtualdefault

Member Function Documentation

◆ command()

int WossMPropagation::command ( int argc,
const char *const * argv )
overridevirtual

References command(), std_gain_matrix_name, woss_manager, write_gain_matrix, and writeStdGainMatrix().

Referenced by command().

Here is the call graph for this function:

◆ computeGain()

double WossMPropagation::computeGain ( Packet * p)
private

Provides attenuation calculation with WOSS framework

Parameters
ppointer to the current Packet being processed
Returns
gain in uPa

References hdr_woss::already_processed, hdr_woss::attenuation, hdr_woss::frequency, WossPosition::getAltitude(), woss::CoordZ::getCartDistance(), WossPosition::getLatitude(), WossPosition::getLongitude(), woss::Pressure::getTxLossDb(), insertStdGainMatrix(), woss_manager, and write_gain_matrix.

Referenced by getGain().

Here is the call graph for this function:

◆ getGain()

double WossMPropagation::getGain ( Packet * p)
overridevirtual

Checks if a WossChannelModule has already processed current Packet; if not, it provides calculations

Parameters
ppointer to the current Packet being processed
Returns
gain in uPa

References hdr_woss::already_processed, hdr_woss::attenuation, computeGain(), WossPosition::getAltitude(), woss::CoordZ::getCartDistance(), WossPosition::getLatitude(), WossPosition::getLongitude(), insertStdGainMatrix(), and write_gain_matrix.

Here is the call graph for this function:

◆ insertStdGainMatrix()

void WossMPropagation::insertStdGainMatrix ( Position * sp,
Position * rp,
double gain )
inlineprivate

References std_gain_map.

Referenced by computeGain(), and getGain().

◆ writeStdGainMatrix()

void WossMPropagation::writeStdGainMatrix ( )
private

References std_gain_map, std_gain_matrix_name, and std_gain_out.

Referenced by command().

Member Data Documentation

◆ std_gain_map

GainMatrix WossMPropagation::std_gain_map
private

◆ std_gain_matrix_name

string WossMPropagation::std_gain_matrix_name
private

Referenced by command(), and writeStdGainMatrix().

◆ std_gain_out

fstream WossMPropagation::std_gain_out
private

Referenced by writeStdGainMatrix().

◆ woss_manager

woss::WossManager* WossMPropagation::woss_manager
private

◆ write_gain_matrix

bool WossMPropagation::write_gain_matrix
private

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