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)=default
 Altimetry (Altimetry &&tmp)=default
virtual ~Altimetry ()=default
virtual std::unique_ptr< Altimetrycreate () const
virtual std::unique_ptr< Altimetrycreate (AltimetryMap &map) const
virtual std::unique_ptr< Altimetryclone () const
AltimetryinsertValue (double range, double altimetry)
AltimetrysumValue (double range, double altimetry)
AltCIt findValue (double range) const
AltimetryeraseValue (double range)
virtual std::unique_ptr< Altimetrycrop (double range_start, double range_end) const
virtual std::unique_ptr< 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 std::unique_ptr< AltimetrytimeEvolve (const Time &time_value)
Altimetryoperator= (const Altimetry &copy)=default
Altimetryoperator= (Altimetry &&tmp)=default

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/5]

◆ Altimetry() [2/5]

Altimetry::Altimetry ( AltimetryMap & map)

Altimetry constructor

Parameters
mapcustom time arrival map

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

Here is the call graph for this function:

◆ Altimetry() [3/5]

Altimetry::Altimetry ( double range,
double altimetry )

Altimetry constructor

Parameters
rangerange [m]
altimetryaltimetry [m]

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

◆ Altimetry() [4/5]

woss::Altimetry::Altimetry ( const Altimetry & copy)
default

Altimetry copy constructor

Parameters
copyAltimetry to be copied

References Altimetry().

Here is the call graph for this function:

◆ Altimetry() [5/5]

woss::Altimetry::Altimetry ( Altimetry && tmp)
default

Altimetry move constructor

Parameters
tmpAltimetry to be moved from

References Altimetry().

Here is the call graph for this function:

◆ ~Altimetry()

virtual woss::Altimetry::~Altimetry ( )
virtualdefault

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.

Referenced by operator<<.

◆ clear()

void woss::Altimetry::clear ( )
inline

Erase all values of altimetry

References altimetry_map.

◆ clone()

virtual std::unique_ptr< Altimetry > woss::Altimetry::clone ( ) const
inlinevirtual

Altimetry virtual factory method

Returns
a std::unique_ptr to a heap-created copy of this instance

Reimplemented in woss::AltimBretschneider.

Referenced by woss::WossDbManager::setCustomAltimetry(), and timeEvolve().

◆ create() [1/2]

virtual std::unique_ptr< Altimetry > woss::Altimetry::create ( ) const
inlinevirtual

Altimetry virtual factory method

Returns
a std::unique_ptr to a heap-created Altimetry object

Reimplemented in woss::AltimBretschneider.

Referenced by crop(), and randomize().

◆ create() [2/2]

virtual std::unique_ptr< Altimetry > woss::Altimetry::create ( AltimetryMap & map) const
inlinevirtual

Altimetry virtual factory method

Parameters
mapcustom time arrival map
Returns
a std::unique_ptr to a heap-created Altimetry object

Reimplemented in woss::AltimBretschneider.

◆ createFlat()

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

Creates a flat AltimetryMap

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

References altimetry_map.

◆ createNotValid()

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

Returns a reference an AltimetryMap object not valid

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

References altimetry_map.

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

◆ crop()

std::unique_ptr< Altimetry > Altimetry::crop ( double range_start,
double range_end ) const
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_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(), altimetry_map, and range.

Here is the call graph for this function:

◆ 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()

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::BellhopWoss::writeAltimetryFile().

◆ 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::BellhopWoss::writeAltimetryFile().

◆ 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.

◆ 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.

◆ 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.

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(), altimetry_map, max_altimetry_value, min_altimetry_value, and range.

Referenced by woss::AltimBretschneider::createWaveSpectrum().

Here is the call graph for this function:

◆ 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(), initialize(), and randomize().

◆ operator=() [1/2]

Altimetry & woss::Altimetry::operator= ( Altimetry && tmp)
default

Assignment move operator

Parameters
tmprvalue to be moved from
Returns
Altimetry reference to this

References Altimetry().

Here is the call graph for this function:

◆ operator=() [2/2]

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

Assignment operator

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

References Altimetry().

Here is the call graph for this function:

◆ randomize()

std::unique_ptr< 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_map, create(), createNotValid(), woss::DefHandler::getRand(), woss::Singleton< DefHandler >::instance(), and isValid().

Referenced by timeEvolve().

Here is the call graph for this function:

◆ setDebug()

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 Altimetry(), and depth.

Here is the call graph for this function:

◆ setEvolutionTimeQuantum()

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

Sets the evolution time quantum

Parameters
quantumtime quantum [s]

References Altimetry(), and evolution_time_quantum.

Here is the call graph for this function:

◆ setRange()

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

Sets the range

Parameters
rmax range [m]

References Altimetry(), and range.

Here is the call graph for this function:

◆ setTotalRangeSteps()

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

Sets the total range step

Parameters
r_srange steps

References Altimetry(), and total_range_steps.

Here is the call graph for this function:

◆ size()

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

Returns the number of altimetry values stored

Returns
number of altimetry values stored

References altimetry_map.

Referenced by Altimetry(), and woss::BellhopWoss::writeAltimetryFile().

◆ 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(), altimetry_map, max_altimetry_value, min_altimetry_value, and range.

Here is the call graph for this function:

◆ timeEvolve()

std::unique_ptr< Altimetry > Altimetry::timeEvolve ( const Time & time_value)
virtual

Performs a time evolution

Parameters
time_valueconst reference to a valid Time object
Returns
a std::unique_ptr 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().

Here is the call graph for this function:

◆ updateMinMaxAltimetryValues()

Altimetry & Altimetry::updateMinMaxAltimetryValues ( )
protectedvirtual

References Altimetry(), altimetry_map, max_altimetry_value, and min_altimetry_value.

Here is the call graph for this function:

◆ 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

References Altimetry(), and altimetry_map.

◆ 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

References Altimetry().

◆ 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

References Altimetry().

◆ 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

References Altimetry().

◆ 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

References Altimetry().

◆ 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

References Altimetry().

◆ 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

References Altimetry().

◆ 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

References Altimetry().

◆ 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

References Altimetry().

◆ 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

References Altimetry().

◆ 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

References Altimetry().

◆ 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

References Altimetry().

◆ 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

References Altimetry().

◆ 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

References Altimetry().

◆ 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

References Altimetry().

◆ 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

References Altimetry().

◆ 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

References Altimetry().

◆ 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

References Altimetry(), altimetry_map, and begin().

◆ 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

References Altimetry(), and altimetry_map.

Member Data Documentation

◆ altimetry_map

◆ debug

◆ depth

◆ 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 Altimetry(), Altimetry(), Altimetry(), woss::AltimBretschneider::timeEvolve(), and 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(), Altimetry(), Altimetry(), getMaxAltimetryValue(), insertValue(), sumValue(), and updateMinMaxAltimetryValues().

◆ 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(), Altimetry(), Altimetry(), getMinAltimetryValue(), insertValue(), sumValue(), and updateMinMaxAltimetryValues().

◆ range

◆ range_precision

long double woss::Altimetry::range_precision
protected

◆ total_range_steps


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