World Ocean Simulation System (WOSS) library
woss::Altimetry Class Reference

Altimetry profile class. More...

#include <altimetry-definitions.h>

Inheritance diagram for woss::Altimetry:
Inheritance graph
Collaboration diagram for woss::Altimetry:
Collaboration graph

Public Member Functions

 Altimetry ()
 
 Altimetry (AltimetryMap &map)
 
 Altimetry (double range, double altimetry)
 
 Altimetry (const Altimetry &copy)
 
virtual Altimetrycreate () const
 
virtual Altimetrycreate (AltimetryMap &map) const
 
virtual Altimetrycreate (const Altimetry &copy) const
 
virtual Altimetryclone () const
 
AltimetryinsertValue (double range, double altimetry)
 
AltimetrysumValue (double range, double altimetry)
 
AltCIt findValue (double range) const
 
AltimetryeraseValue (double range)
 
virtual Altimetrycrop (double range_start, double range_end)
 
virtual Altimetryrandomize (double ratio_incr_value) const
 
AltCIt begin () const
 
AltCIt end () const
 
AltCIt at (const int i) const
 
int size () const
 
bool empty () const
 
void clear ()
 
AltimetrysetEvolutionTimeQuantum (double quantum)
 
AltimetrysetTotalRangeSteps (int r_s)
 
AltimetrysetRange (double r)
 
AltimetrysetDepth (double d)
 
double getMaxRangeValue () const
 
double getMinRangeValue () const
 
double getMaxAltimetryValue () const
 
double getMinAltimetryValue () const
 
long double getRangePrecision () const
 
double getEvolutionTimeQuantum () const
 
double getRange () const
 
int getTotalRangeSteps () const
 
double getDepth () const
 
virtual bool isValid () const
 
virtual bool initialize ()
 
virtual AltimetrytimeEvolve (const Time &time_value)
 
Altimetryoperator= (const Altimetry &copy)
 

Static Public Member Functions

static AltimetryMapcreateNotValid ()
 
static AltimetryMapcreateFlat (double altimetry=0)
 
static void setDebug (bool flag)
 
static bool getDebug (bool flag)
 

Protected Member Functions

virtual AltimetryupdateMinMaxAltimetryValues ()
 

Protected Attributes

double range
 
int total_range_steps
 
double min_altimetry_value
 
double max_altimetry_value
 
long double range_precision
 
Time last_evolution_time
 
double evolution_time_quantum
 
double depth
 
AltimetryMap altimetry_map
 

Static Protected Attributes

static bool debug = false
 

Friends

bool operator== (const Altimetry &left, const Altimetry &right)
 
bool operator!= (const Altimetry &left, const Altimetry &right)
 
const Altimetry operator+ (const Altimetry &left, const Altimetry &right)
 
const Altimetry operator- (const Altimetry &left, const Altimetry &right)
 
const Altimetry operator+ (const Altimetry &left, const double right)
 
const Altimetry operator- (const Altimetry &left, const double right)
 
const Altimetry operator/ (const Altimetry &left, const double right)
 
const Altimetry operator* (const Altimetry &left, const double right)
 
const Altimetry operator+ (const double left, const Altimetry &right)
 
const Altimetry operator- (const double left, const Altimetry &right)
 
const Altimetry operator/ (const double left, const Altimetry &right)
 
const Altimetry operator* (const double left, const Altimetry &right)
 
Altimetryoperator+= (Altimetry &left, const Altimetry &right)
 
Altimetryoperator-= (Altimetry &left, const Altimetry &right)
 
Altimetryoperator+= (Altimetry &left, double right)
 
Altimetryoperator-= (Altimetry &left, double right)
 
Altimetryoperator/= (Altimetry &left, double right)
 
Altimetryoperator*= (Altimetry &left, double right)
 
std::ostream & operator<< (std::ostream &os, const Altimetry &instance)
 

Detailed Description

Altimetry profile class.

Altimetry class offers the possibility to store and manipulate altimetry profiles, e.g. a collection of range [m] values associated to a altimetry value [m].

Constructor & Destructor Documentation

◆ Altimetry() [1/4]

Altimetry::Altimetry ( )

Default Altimetry constructor

Referenced by clone(), create(), crop(), and randomize().

◆ Altimetry() [2/4]

Altimetry::Altimetry ( AltimetryMap map)

Altimetry constructor

Parameters
mapcustom time arrival map

References altimetry_map, and range_precision.

◆ Altimetry() [3/4]

Altimetry::Altimetry ( double  range,
double  altimetry 
)

Altimetry constructor

Parameters
rangerange [m]
altimetryaltimetry [m]

References altimetry_map, max_altimetry_value, min_altimetry_value, and range.

◆ Altimetry() [4/4]

Altimetry::Altimetry ( const Altimetry copy)

Altimetry copy constructor

Parameters
copyAltimetry to be copied

Member Function Documentation

◆ at()

AltCIt Altimetry::at ( const int  i) const

Returns a const iterator to the altimetry value at i-th position

Parameters
iinteger should be between 0 and size()
Returns
const iterator to end() if position i is not found

References altimetry_map.

◆ begin()

AltCIt woss::Altimetry::begin ( ) const
inline

Returns a const iterator to the beginning of the altimetry map

Returns
const iterator

References altimetry_map.

◆ clear()

void woss::Altimetry::clear ( )
inline

Erase all values of altimetry

References altimetry_map.

◆ clone()

virtual Altimetry * woss::Altimetry::clone ( ) const
inlinevirtual

Altimetry virtual factory method

Returns
a heap-created copy of this instance

Reimplemented in woss::AltimBretschneider.

References Altimetry().

Referenced by woss::DefHandler::operator=(), and timeEvolve().

Here is the call graph for this function:

◆ create() [1/3]

virtual Altimetry * woss::Altimetry::create ( ) const
inlinevirtual

Altimetry virtual factory method

Returns
a heap-created Altimetry object

Reimplemented in woss::AltimBretschneider.

References Altimetry().

Referenced by crop().

Here is the call graph for this function:

◆ create() [2/3]

virtual Altimetry * woss::Altimetry::create ( AltimetryMap map) const
inlinevirtual

Altimetry virtual factory method

Parameters
mapcustom time arrival map
Returns
a heap-created Altimetry object

Reimplemented in woss::AltimBretschneider.

References Altimetry().

Here is the call graph for this function:

◆ create() [3/3]

virtual Altimetry * woss::Altimetry::create ( const Altimetry copy) const
inlinevirtual

Altimetry virtual factory method

Parameters
copyAltimetry to be copied
Returns
a heap-created Altimetry object

Reimplemented in woss::AltimBretschneider.

References Altimetry().

Here is the call graph for this function:

◆ createFlat()

AltimetryMap & woss::Altimetry::createFlat ( double  altimetry = 0)
inlinestatic

Creates a flat altimetry

Returns
a new flat altimetry instance ( e.g. range 0.0 = altimetry )

References altimetry_map.

◆ createNotValid()

AltimetryMap & woss::Altimetry::createNotValid ( )
inlinestatic

Creates an instance not valid

Returns
a new instance not valid ( e.g. range 0.0 = +inf )

References altimetry_map.

Referenced by crop(), woss::WossDbManager::getAltimetry(), and randomize().

◆ crop()

Altimetry * Altimetry::crop ( double  range_start,
double  range_end 
)
virtual

Crops the Altimetry between given range values and returns a new heap-allocated object. The new object will have range values in [range_start, range_end)

Parameters
time_startstart range value [m]
time_endend range value [m]
Returns
a new Altimetry object

References Altimetry(), altimetry_map, create(), createNotValid(), debug, isValid(), and range_precision.

Here is the call graph for this function:

◆ empty()

bool woss::Altimetry::empty ( ) const
inline

Checks if the instance has stored values

Returns
true if condition applies, false otherwise

References altimetry_map.

◆ end()

AltCIt woss::Altimetry::end ( ) const
inline

Returns a const iterator to the end of the altimetry map

Returns
const iterator

References altimetry_map.

◆ eraseValue()

Altimetry & woss::Altimetry::eraseValue ( double  range)
inline

Erase the altimetry value with key == range parameter

Parameters
rangerange value [s]
Returns
reference to *this

References altimetry_map, and range.

◆ findValue()

AltCIt woss::Altimetry::findValue ( double  range) const
inline

Returns a const iterator to the altimetry with key == range parameter

Parameters
rangerange value [m]
Returns
const iterator to end() if range is not found

References altimetry_map, and range.

◆ getDebug()

static bool woss::Altimetry::getDebug ( bool  flag)
inlinestatic

Gets debug flag for all instances

Returns
flag debug

References debug.

◆ getDepth()

double woss::Altimetry::getDepth ( ) const
inline

Returns the scenario depth

Returns
depth [m]

References depth.

◆ getEvolutionTimeQuantum()

double woss::Altimetry::getEvolutionTimeQuantum ( ) const
inline

Returns the evolution time quantum

Returns
time quantum [s]

References evolution_time_quantum.

◆ getMaxAltimetryValue()

double woss::Altimetry::getMaxAltimetryValue ( ) const
inline

Returns the maximum altimetry value

Returns
maximum altimetry [m]

References max_altimetry_value.

Referenced by woss::ACToolboxWoss::initAltimetry().

◆ getMaxRangeValue()

double woss::Altimetry::getMaxRangeValue ( ) const
inline

Returns the maximum range value

Returns
maximum range [m]

References altimetry_map.

◆ getMinAltimetryValue()

double woss::Altimetry::getMinAltimetryValue ( ) const
inline

Returns the minimum altimetry value

Returns
minimum altimetry [m]

References min_altimetry_value.

Referenced by woss::ACToolboxWoss::initAltimetry().

◆ getMinRangeValue()

double woss::Altimetry::getMinRangeValue ( ) const
inline

Returns the maximum range value

Returns
maximum range [m]

References altimetry_map.

◆ getRange()

double woss::Altimetry::getRange ( ) const
inline

Returns the max range [m]

Returns
max range [m]

References range.

Referenced by woss::ACToolboxWoss::initAltimetry().

◆ getRangePrecision()

long double woss::Altimetry::getRangePrecision ( ) const
inline

Returns the range precision

Returns
range precision [m]

References range_precision.

◆ getTotalRangeSteps()

int woss::Altimetry::getTotalRangeSteps ( ) const
inline

Returns the total range step

Returns
range steps

References total_range_steps.

Referenced by woss::ACToolboxWoss::initAltimetry().

◆ initialize()

bool Altimetry::initialize ( )
virtual

Initializes the altimetry vector. used if there is a matematical function that generates the whole vector.

Returns
true succeeded false otherwise

Reimplemented in woss::AltimBretschneider.

References isValid(), range, range_precision, and total_range_steps.

Referenced by woss::ACToolboxWoss::initAltimetry().

Here is the call graph for this function:

◆ insertValue()

Altimetry & Altimetry::insertValue ( double  range,
double  altimetry 
)

Inserts and replace an altimetry value at closest range step

Parameters
rangerange value [m]
altimetryaltimetry value [m]; > 0 ==> under water; < 0 ==> above water
Returns
reference to *this

References altimetry_map, max_altimetry_value, min_altimetry_value, and range.

◆ isValid()

bool Altimetry::isValid ( ) const
virtual

Checks the validity of Altimetry

Returns
true if it has at least one value, false otherwise

Reimplemented in woss::AltimBretschneider.

References altimetry_map.

Referenced by crop(), woss::WossDbManager::getAltimetry(), woss::ACToolboxWoss::initAltimetry(), initialize(), randomize(), woss::BellhopWoss::timeEvolve(), and woss::BellhopWoss::writeNormalizedSSP().

◆ operator=()

Altimetry & Altimetry::operator= ( const Altimetry copy)

Assignment operator

Parameters
copyconst reference to a Altimetry object to be copied
Returns
Altimetry reference to this

References altimetry_map, depth, evolution_time_quantum, last_evolution_time, max_altimetry_value, min_altimetry_value, range, range_precision, and total_range_steps.

Referenced by woss::AltimBretschneider::operator=().

◆ randomize()

Altimetry * Altimetry::randomize ( double  ratio_incr_value) const
virtual

Performs a random perturbation of altimetry values with given ratio

Parameters
ratio_incr_valueperturbation ratio
Returns
a new Altimetry object

Reimplemented in woss::AltimBretschneider.

References Altimetry(), altimetry_map, createNotValid(), woss::Singleton< T >::instance(), and isValid().

Referenced by timeEvolve().

Here is the call graph for this function:

◆ setDebug()

static void woss::Altimetry::setDebug ( bool  flag)
inlinestatic

Sets debug flag for all instances

Parameters
flagdebug bool

References debug.

◆ setDepth()

Altimetry & woss::Altimetry::setDepth ( double  d)
inline

Sets the depth

Parameters
dscenario depth [m]

References depth.

Referenced by woss::ACToolboxWoss::initAltimetry().

◆ setEvolutionTimeQuantum()

Altimetry & woss::Altimetry::setEvolutionTimeQuantum ( double  quantum)
inline

Sets the evolution time quantum

Parameters
quantumtime quantum [s]

References evolution_time_quantum.

◆ setRange()

Altimetry & woss::Altimetry::setRange ( double  r)
inline

Sets the range

Parameters
rmax range [m]

References range.

Referenced by woss::ACToolboxWoss::initAltimetry().

◆ setTotalRangeSteps()

Altimetry & woss::Altimetry::setTotalRangeSteps ( int  r_s)
inline

Sets the total range step

Parameters
r_srange steps

References total_range_steps.

Referenced by woss::ACToolboxWoss::initAltimetry().

◆ size()

int woss::Altimetry::size ( ) const
inline

Returns the number of altimetry values stored

Returns
number of altimetry values stored

References altimetry_map.

◆ sumValue()

Altimetry & woss::Altimetry::sumValue ( double  range,
double  altimetry 
)
inline

Inserts and sums an altimetry value at closest range step

Parameters
rangerange value [m]
altimetryaltimetry value [m]; > 0 ==> under water; < 0 ==> above water

References altimetry_map, max_altimetry_value, min_altimetry_value, and range.

◆ timeEvolve()

Altimetry * Altimetry::timeEvolve ( const Time time_value)
virtual

Performs a time evoulion

Parameters
time_valueconst reference to a valid Time object
Returns
a pointer to a new heap allocated Altimetry object

Reimplemented in woss::AltimBretschneider.

References clone(), debug, evolution_time_quantum, woss::Time::isValid(), last_evolution_time, and randomize().

Referenced by woss::BellhopWoss::timeEvolve().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ operator!=

bool operator!= ( const Altimetry left,
const Altimetry right 
)
friend

Inequality operator

Parameters
leftleft operand const reference
rightright operand const reference
Returns
true if left != right, false otherwise

◆ operator* [1/2]

const Altimetry operator* ( const Altimetry left,
const double  right 
)
friend

Multiplication operator

Parameters
leftleft operand const reference
rightright operand const reference
Returns
a new const instance holding the operation result

◆ operator* [2/2]

const Altimetry operator* ( const double  left,
const Altimetry right 
)
friend

Multiplication operator

Parameters
leftleft operand const reference
rightright operand const reference
Returns
a new const instance holding the operation result

◆ operator*=

Altimetry & operator*= ( Altimetry left,
double  right 
)
friend

Compound assignment multiplication operator

Parameters
leftleft operand reference
rightright operand const reference
Returns
left reference after the operation

◆ operator+ [1/3]

const Altimetry operator+ ( const Altimetry left,
const Altimetry right 
)
friend

Sum operator

Parameters
leftleft operand const reference
rightright operand const reference
Returns
a new const instance holding the operation result

◆ operator+ [2/3]

const Altimetry operator+ ( const Altimetry left,
const double  right 
)
friend

Sum operator

Parameters
leftleft operand const reference
rightright operand const reference
Returns
a new const instance holding the operation result

◆ operator+ [3/3]

const Altimetry operator+ ( const double  left,
const Altimetry right 
)
friend

Sum operator

Parameters
leftleft operand const reference
rightright operand const reference
Returns
a new const instance holding the operation result

◆ operator+= [1/2]

Altimetry & operator+= ( Altimetry left,
const Altimetry right 
)
friend

Compound assignment sum operator

Parameters
leftleft operand reference
rightright operand const reference
Returns
left reference after the operation

◆ operator+= [2/2]

Altimetry & operator+= ( Altimetry left,
double  right 
)
friend

Compound assignment sum operator

Parameters
leftleft operand reference
rightright operand const reference
Returns
left reference after the operation

◆ operator- [1/3]

const Altimetry operator- ( const Altimetry left,
const Altimetry right 
)
friend

Subtraction operator

Parameters
leftleft operand const reference
rightright operand const reference
Returns
a new const instance holding the operation result

◆ operator- [2/3]

const Altimetry operator- ( const Altimetry left,
const double  right 
)
friend

Subtraction operator

Parameters
leftleft operand const reference
rightright operand const reference
Returns
a new const instance holding the operation result

◆ operator- [3/3]

const Altimetry operator- ( const double  left,
const Altimetry right 
)
friend

Subtraction operator

Parameters
leftleft operand const reference
rightright operand const reference
Returns
a new const instance holding the operation result

◆ operator-= [1/2]

Altimetry & operator-= ( Altimetry left,
const Altimetry right 
)
friend

Compound assignment subtraction operator

Parameters
leftleft operand reference
rightright operand const reference
Returns
left reference after the operation

◆ operator-= [2/2]

Altimetry & operator-= ( Altimetry left,
double  right 
)
friend

Compound assignment subtraction operator

Parameters
leftleft operand reference
rightright operand const reference
Returns
left reference after the operation

◆ operator/ [1/2]

const Altimetry operator/ ( const Altimetry left,
const double  right 
)
friend

Division operator

Parameters
leftleft operand const reference
rightright operand const reference
Returns
a new const instance holding the operation result

◆ operator/ [2/2]

const Altimetry operator/ ( const double  left,
const Altimetry right 
)
friend

Division operator

Parameters
leftleft operand const reference
rightright operand const reference
Returns
a new const instance holding the operation result

◆ operator/=

Altimetry & operator/= ( Altimetry left,
double  right 
)
friend

Compound assignment division operator

Parameters
leftleft operand reference
rightright operand const reference
Returns
left reference after the operation

◆ operator<<

std::ostream & operator<< ( std::ostream &  os,
const Altimetry instance 
)
friend

<< operator

Parameters
osleft operand ostream reference
instanceright operand const Pressure reference
Returns
os reference after the operation

◆ operator==

bool operator== ( const Altimetry left,
const Altimetry right 
)
friend

Equality operator

Parameters
leftleft operand const reference
rightright operand const reference
Returns
true if left == right, false otherwise

Member Data Documentation

◆ altimetry_map

◆ debug

◆ depth

double woss::Altimetry::depth
protected

◆ evolution_time_quantum

double woss::Altimetry::evolution_time_quantum
protected

◆ last_evolution_time

Time woss::Altimetry::last_evolution_time
protected

Stores the last evolution's simulation time

Referenced by operator=(), timeEvolve(), and woss::AltimBretschneider::timeEvolve().

◆ max_altimetry_value

double woss::Altimetry::max_altimetry_value
protected

Stores the maximum altimetry value [m] i.e. the min negative value (if present)

Referenced by Altimetry(), getMaxAltimetryValue(), insertValue(), operator=(), and sumValue().

◆ min_altimetry_value

double woss::Altimetry::min_altimetry_value
protected

Stores the miminum altimetry value [m] i.e. the maximum positive value (if present)

Referenced by Altimetry(), getMinAltimetryValue(), insertValue(), operator=(), and sumValue().

◆ range

◆ range_precision

long double woss::Altimetry::range_precision
protected

Stores the precision of all PDouble ranges [m]

Referenced by Altimetry(), crop(), getRangePrecision(), initialize(), woss::AltimBretschneider::initialize(), and operator=().

◆ total_range_steps


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