World Ocean Simulation System (WOSS) library
woss::WossManager Class Referenceabstract

Abstract class that interfaces Pressure or TimeArr requests from user layer. More...

#include <woss-manager.h>

Inheritance diagram for woss::WossManager:
Inheritance graph
Collaboration diagram for woss::WossManager:
Collaboration graph

Public Member Functions

 WossManager ()
 
virtual const WossgetActiveWoss (const CoordZ &tx, const CoordZ &rx, double start_frequency, double end_frequency) const
 
virtual WossManagereraseActiveWoss (const CoordZ &tx, const CoordZ &rx, double start_frequency, double end_frequency)=0
 
virtual PressuregetWossPressure (const CoordZ &tx_coordz, const CoordZ &rx_coordz, double start_frequency, double end_frequency, const Time &time_value)=0
 
virtual PressuregetWossPressure (const CoordZ &tx_coordz, const CoordZ &rx_coordz, double start_frequency, double end_frequency, double time_value=0.0)
 
virtual PressureVector getWossPressure (const CoordZPairVect &coordinates, double start_frequency, double end_frequency, const Time &time_value)
 
virtual PressureVector getWossPressure (const CoordZPairVect &coordinates, double start_frequency, double end_frequency, double time_value=0.0)
 
virtual TimeArrgetWossTimeArr (const CoordZ &tx_coordz, const CoordZ &rx_coordz, double start_frequency, double end_frequency, const Time &time_value)=0
 
virtual TimeArrgetWossTimeArr (const CoordZ &tx_coordz, const CoordZ &rx_coordz, double start_frequency, double end_frequency, double time_value=0.0)
 
virtual TimeArrVector getWossTimeArr (const CoordZPairVect &coordinates, double start_frequency, double end_frequency, const Time &time_value)
 
virtual TimeArrVector getWossTimeArr (const CoordZPairVect &coordinates, double start_frequency, double end_frequency, double time_value=0.0)
 
virtual bool reset ()=0
 
virtual bool timeEvolve (const Time &time_value)=0
 
WossManagersetWossCreator (const WossCreator *const ptr)
 
void setTimeEvolutionActiveFlag (bool flag)
 
void setDebugFlag (bool flag)
 
const WossCreator *const getWossCreator ()
 
bool getTimeEvolutionActiveFlag ()
 
bool getDebugFlag ()
 

Protected Member Functions

virtual Woss *const getWoss (const CoordZ &tx, const CoordZ &rx, double start_frequency, double end_frequency)=0
 

Protected Attributes

const WossCreatorwoss_creator
 
bool debug
 
bool is_time_evolution_active
 

Static Protected Attributes

static const Time NO_EVOLUTION_TIME = Time(1,1,1901,1,1,1)
 

Detailed Description

Abstract class that interfaces Pressure or TimeArr requests from user layer.

WossManager interfaces the user with the whole library. Every request for Pressure or TimeArr should be done to this class. Logical inteligence for planning CPU load, multi-frequency and multi-run channel simulations should be placed in this inheritance chain

Constructor & Destructor Documentation

◆ WossManager()

WossManager::WossManager ( )

WossManager default constructor

Member Function Documentation

◆ eraseActiveWoss()

virtual WossManager & woss::WossManager::eraseActiveWoss ( const CoordZ tx,
const CoordZ rx,
double  start_frequency,
double  end_frequency 
)
pure virtual

Deletes a woss::Woss object for given params

Parameters
txconst reference to a valid CoordZ object ( transmitter )
rxconst reference to a valid CoordZ object ( receiver )
start_freqstart frequency [Hz]
end_freqend frequency [Hz]
Returns
reference to *this

Implemented in woss::WossManagerSimple< WMResDb >.

◆ getActiveWoss()

const Woss & WossManager::getActiveWoss ( const CoordZ tx,
const CoordZ rx,
double  start_frequency,
double  end_frequency 
) const
virtual

Returns a const reference to a valid and properly initialized woss::Woss object.

Parameters
txconst reference to a valid CoordZ object ( transmitter )
rxconst reference to a valid CoordZ object ( receiver )
start_freqstart frequency [Hz]
end_freqend frequency [Hz]
Returns
const reference to a valid woss::Woss object

References getWoss().

Here is the call graph for this function:

◆ getWoss()

virtual Woss *const woss::WossManager::getWoss ( const CoordZ tx,
const CoordZ rx,
double  start_frequency,
double  end_frequency 
)
protectedpure virtual

Returns a pointer to a properly initialized Woss, for storage purposes.

Parameters
txconst reference to a valid CoordZ object ( transmitter )
rxconst reference to a valid CoordZ object ( receiver )
start_freqstart frequency [Hz]
end_freqend frequency [Hz]
Returns
pointer to a valid Woss object

Implemented in woss::WossManagerSimple< WMResDb >.

Referenced by getActiveWoss(), woss::WossManagerResDb::getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), getWossPressure(), woss::WossManagerResDb::getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), and getWossTimeArr().

◆ getWossPressure() [1/4]

Pressure * WossManager::getWossPressure ( const CoordZ tx_coordz,
const CoordZ rx_coordz,
double  start_frequency,
double  end_frequency,
const Time time_value 
)
pure virtual

Returns a valid Pressure* for given parameters

Parameters
txconst reference to a valid CoordZ object ( transmitter )
rxconst reference to a valid CoordZ object ( receiver )
start_freqstart frequency [Hz]
end_freqend frequency [Hz]
time_valueconst reference to a valid Time object
Returns
valid Pressure* pointer

Implemented in woss::WossManagerResDb, and woss::WossManagerResDbMT.

References debug, woss::Woss::freq_lower_bound(), woss::Woss::getAvgPressure(), woss::CoordZ::getCartDistance(), woss::CoordZ::getDepth(), woss::Coord::getGreatCircleDistance(), woss::Woss::getPressure(), getWoss(), woss::Singleton< T >::instance(), woss::Woss::run(), and woss::Woss::timeEvolve().

Referenced by WossMPropagation::computeGain(), getWossPressure(), woss::WossManagerResDbMT::getWossPressure(), and woss::WMSMTcreateThreadPressure().

Here is the call graph for this function:

◆ getWossPressure() [2/4]

Pressure * WossManager::getWossPressure ( const CoordZ tx_coordz,
const CoordZ rx_coordz,
double  start_frequency,
double  end_frequency,
double  time_value = 0.0 
)
virtual

Returns a valid Pressure* for given parameters

Parameters
txconst reference to a valid CoordZ object ( transmitter )
rxconst reference to a valid CoordZ object ( receiver )
start_freqstart frequency [Hz]
end_freqend frequency [Hz]
time_valueconst reference to a valid Time object
Returns
valid Pressure* pointer

Reimplemented in woss::WossManagerResDbMT.

References debug, woss::CoordZ::getCartDistance(), woss::WossCreator::getSimTime(), getWossPressure(), woss::Singleton< T >::instance(), woss::Time::isValid(), and woss_creator.

Here is the call graph for this function:

◆ getWossPressure() [3/4]

PressureVector WossManager::getWossPressure ( const CoordZPairVect coordinates,
double  start_frequency,
double  end_frequency,
const Time time_value 
)
virtual

Returns a valid vector of Pressure* for given parameters

Parameters
coordinatesconst reference to a valid CoordZPairVect
start_freqstart frequency [Hz]
end_freqend frequency [Hz]
time_valueconst reference to a valid Time object
Returns
valid PressureVector

Reimplemented in woss::WossManagerResDbMT.

References getWossPressure().

Here is the call graph for this function:

◆ getWossPressure() [4/4]

PressureVector WossManager::getWossPressure ( const CoordZPairVect coordinates,
double  start_frequency,
double  end_frequency,
double  time_value = 0.0 
)
virtual

Returns a valid vector of Pressure* for given parameters

Parameters
coordinatesconst reference to a valid CoordZPairVect
start_freqstart frequency [Hz]
end_freqend frequency [Hz]
time_valueseconds after start time
Returns
valid PressureVector

Reimplemented in woss::WossManagerResDbMT.

References woss::Pressure::createNotValid(), debug, woss::WossCreator::getSimTime(), getWossPressure(), woss::Singleton< T >::instance(), woss::Time::isValid(), and woss_creator.

Here is the call graph for this function:

◆ getWossTimeArr() [1/4]

TimeArr * WossManager::getWossTimeArr ( const CoordZ tx_coordz,
const CoordZ rx_coordz,
double  start_frequency,
double  end_frequency,
const Time time_value 
)
pure virtual

Returns a valid TimeArr* for given parameters

Parameters
txconst reference to a valid CoordZ object ( transmitter )
rxconst reference to a valid CoordZ object ( receiver )
start_freqstart frequency [Hz]
end_freqend frequency [Hz]
time_valueconst reference to a valid Time object
Returns
valid TimeArr* pointer

Implemented in woss::WossManagerResDb, and woss::WossManagerResDbMT.

References woss::TimeArr::createImpulse(), debug, woss::Woss::freq_lower_bound(), woss::CoordZ::getCartDistance(), woss::CoordZ::getDepth(), woss::Coord::getGreatCircleDistance(), woss::Woss::getTimeArr(), getWoss(), woss::Singleton< T >::instance(), woss::Woss::run(), and woss::Woss::timeEvolve().

Referenced by getWossTimeArr(), woss::WossManagerResDbMT::getWossTimeArr(), and woss::WMSMTcreateThreadTimeArr().

Here is the call graph for this function:

◆ getWossTimeArr() [2/4]

TimeArr * WossManager::getWossTimeArr ( const CoordZ tx_coordz,
const CoordZ rx_coordz,
double  start_frequency,
double  end_frequency,
double  time_value = 0.0 
)
virtual

Returns a valid TimeArr* for given parameters

Parameters
txconst reference to a valid CoordZ object ( transmitter )
rxconst reference to a valid CoordZ object ( receiver )
start_freqstart frequency [Hz]
end_freqend frequency [Hz]
time_valueconst reference to a valid Time object
Returns
valid TimeArr* pointer

Reimplemented in woss::WossManagerResDbMT.

References woss::TimeArr::createImpulse(), debug, woss::CoordZ::getCartDistance(), woss::WossCreator::getSimTime(), getWossTimeArr(), woss::Singleton< T >::instance(), woss::Time::isValid(), and woss_creator.

Here is the call graph for this function:

◆ getWossTimeArr() [3/4]

TimeArrVector WossManager::getWossTimeArr ( const CoordZPairVect coordinates,
double  start_frequency,
double  end_frequency,
const Time time_value 
)
virtual

Returns a valid vector of TimeArr* for given parameters

Parameters
coordinatesconst reference to a valid CoordZPairVect
start_freqstart frequency [Hz]
end_freqend frequency [Hz]
time_valueconst reference to a Time object
Returns
valid TimeArrVector

Reimplemented in woss::WossManagerResDbMT.

References getWossTimeArr().

Here is the call graph for this function:

◆ getWossTimeArr() [4/4]

TimeArrVector WossManager::getWossTimeArr ( const CoordZPairVect coordinates,
double  start_frequency,
double  end_frequency,
double  time_value = 0.0 
)
virtual

Returns a valid vector of TimeArr* for given parameters

Parameters
coordinatesconst reference to a valid CoordZPairVect
start_freqstart frequency [Hz]
end_freqend frequency [Hz]
time_valuenumber of seconds after start time
Returns
valid TimeArrVector

Reimplemented in woss::WossManagerResDbMT.

References woss::TimeArr::createNotValid(), debug, woss::WossCreator::getSimTime(), getWossTimeArr(), woss::Singleton< T >::instance(), woss::Time::isValid(), and woss_creator.

Here is the call graph for this function:

◆ reset()

virtual bool woss::WossManager::reset ( )
pure virtual

Deletes all created Woss instances

Returns
true if method was successful, false otherwise

Implemented in woss::WossManagerSimple< WMResDb >.

◆ setWossCreator()

WossManager & woss::WossManager::setWossCreator ( const WossCreator *const  ptr)
inline

Sets a pointer to a WossCreator instance, for Woss creation purposes

Parameters
ptrconst pointer to a const WossCreator instance
Returns
reference to *this

References woss_creator.

Referenced by woss::WossController::initialize().

◆ timeEvolve()

virtual bool woss::WossManager::timeEvolve ( const Time time_value)
pure virtual

Performs a time evoulion of all time-dependant parameters of all created Woss instances

Parameters
time_valueconst reference to a valid Time object
Returns
true if method was successful, false otherwise

Implemented in woss::WossManagerSimple< WMResDb >.

Member Data Documentation

◆ debug

◆ woss_creator


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