33#ifndef WOSS_SEDIMENT_DEFINITIONS_H
34#define WOSS_SEDIMENT_DEFINITIONS_H
44 static constexpr inline double SEDIMENT_NOT_SET_VALUE = (-10000.0);
85 virtual std::unique_ptr<Sediment>
create()
const {
86 return std::make_unique<Sediment>(); }
106 virtual std::unique_ptr<Sediment>
clone()
const {
return std::make_unique<Sediment>(*
this); }
224 virtual bool isValid()
const {
return (
vel_c != SEDIMENT_NOT_SET_VALUE &&
vel_s != SEDIMENT_NOT_SET_VALUE &&
density != SEDIMENT_NOT_SET_VALUE
225 &&
att_c != SEDIMENT_NOT_SET_VALUE &&
att_s != SEDIMENT_NOT_SET_VALUE ); }
497 if ( &left == &right )
504 if ( &left == &right )
511 os <<
"Sediment type = " << instance.
type <<
"; velocity_c = " << instance.
vel_c <<
"; velocity_s = " << instance.
vel_s <<
"; density = " << instance.
density
512 <<
"; attenuation_c = " << instance.
att_c <<
"; attenuation_s = " << instance.
att_s;
Clay type implementation.
Definition sediment-definitions.h:594
SedimentClay()
Definition sediment-definitions.cpp:276
Gravel type implementation.
Definition sediment-definitions.h:538
double calculateVelocityS(double vels, double bottom_depth) const
Definition sediment-definitions.cpp:234
Hard bottom type implementation.
Definition sediment-definitions.h:691
SedimentHardBottom()
Definition sediment-definitions.cpp:311
Mud type implementation.
Definition sediment-definitions.h:622
double calculateVelocityS(double vels, double bottom_depth) const
Definition sediment-definitions.cpp:262
Deck41 nodules type implementation.
Definition sediment-definitions.h:677
SedimentNodules()
Definition sediment-definitions.cpp:304
Ooze type implementation.
Definition sediment-definitions.h:608
SedimentOoze()
Definition sediment-definitions.cpp:283
Organic type implementation.
Definition sediment-definitions.h:661
SedimentOrganic()
Definition sediment-definitions.cpp:297
Rocks type implementation.
Definition sediment-definitions.h:645
SedimentRocks()
Definition sediment-definitions.cpp:290
Sand type implementation.
Definition sediment-definitions.h:559
SedimentSand()
Definition sediment-definitions.cpp:269
Silt type implementation.
Definition sediment-definitions.h:573
double calculateVelocityS(double vels, double bottom_depth) const
Definition sediment-definitions.cpp:248
Surficial sediment geoacoustic parameters definitions.
Definition sediment-definitions.h:54
Sediment & setVelocityC(double vel)
Definition sediment-definitions.h:120
Sediment & setAttenuationC(double att)
Definition sediment-definitions.h:141
friend bool operator!=(const Sediment &left, const Sediment &right)
Definition sediment-definitions.h:503
friend const Sediment operator-(const double left, const Sediment &right)
Sediment & operator=(Sediment &&tmp)=default
friend Sediment & operator+=(Sediment &left, const Sediment &right)
friend Sediment & operator*=(Sediment &left, const Sediment &right)
Sediment & setDensity(double dens)
Definition sediment-definitions.h:134
Sediment & set(const std::string &name, double velc, double vels, double dens, double attc, double atts, double bottom_depth)
Definition sediment-definitions.h:168
friend const Sediment operator*(const double left, const Sediment &right)
virtual std::unique_ptr< Sediment > create() const
Definition sediment-definitions.h:85
double att_c
Definition sediment-definitions.h:452
Sediment()
Definition sediment-definitions.cpp:44
friend bool operator==(const Sediment &left, const Sediment &right)
Definition sediment-definitions.h:496
friend const Sediment operator/(const double left, const Sediment &right)
friend const Sediment operator-(const Sediment &left, const Sediment &right)
Definition sediment-definitions.h:520
virtual ~Sediment()=default
friend Sediment & operator-=(Sediment &left, const Sediment &right)
std::string getType() const
Definition sediment-definitions.h:218
friend const Sediment operator+(const Sediment &left, const Sediment &right)
Definition sediment-definitions.h:516
friend const Sediment operator/(const Sediment &left, double right)
double getDepth() const
Definition sediment-definitions.h:212
static void setDebug(bool flag)
Definition sediment-definitions.h:176
virtual bool isValid() const
Definition sediment-definitions.h:224
friend Sediment & operator-=(Sediment &left, double right)
double getVelocityC() const
Definition sediment-definitions.h:182
friend const Sediment operator/(const Sediment &left, const Sediment &right)
Definition sediment-definitions.h:524
friend Sediment & operator/=(Sediment &left, const Sediment &right)
friend const Sediment operator*(const Sediment &left, double right)
Sediment & setAttenuationS(double att)
Definition sediment-definitions.h:148
Sediment & setDepth(double bottom_depth)
Definition sediment-definitions.h:155
virtual std::unique_ptr< Sediment > clone() const
Definition sediment-definitions.h:106
friend std::ostream & operator<<(std::ostream &os, const Sediment &instance)
Definition sediment-definitions.h:510
friend Sediment & operator/=(Sediment &left, double right)
double density
Definition sediment-definitions.h:447
friend const Sediment operator-(const Sediment &left, double right)
double getDensity() const
Definition sediment-definitions.h:194
double depth
Definition sediment-definitions.h:432
std::string type
Definition sediment-definitions.h:427
double vel_s
Definition sediment-definitions.h:442
virtual std::unique_ptr< Sediment > create(const std::string &name, double velc, double vels, double dens, double attc, double atts, double bottom_depth=1.0) const
Definition sediment-definitions.h:99
friend Sediment & operator*=(Sediment &left, double right)
double getAttenuationS() const
Definition sediment-definitions.h:206
double getVelocityS() const
Definition sediment-definitions.h:188
Sediment(const Sediment ©)=default
double getAttenuationC() const
Definition sediment-definitions.h:200
Sediment(Sediment &&tmp)=default
double vel_c
Definition sediment-definitions.h:437
friend const Sediment operator+(const Sediment &left, double right)
virtual const std::string getStringValues() const
Definition sediment-definitions.cpp:69
static bool debug
Definition sediment-definitions.h:462
double att_s
Definition sediment-definitions.h:457
friend Sediment & operator+=(Sediment &left, double right)
Sediment & operator=(const Sediment &sed)=default
Sediment & setType(const std::string &name)
Definition sediment-definitions.h:113
friend const Sediment operator*(const Sediment &left, const Sediment &right)
Definition sediment-definitions.h:528
friend const Sediment operator+(const double left, const Sediment &right)
Sediment & setVelocityS(double vel)
Definition sediment-definitions.h:127
Definition ac-toolbox-arr-asc-reader.h:44
bool operator!=(const Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.h:833
std::ostream & operator<<(std::ostream &os, const Altimetry &instance)
Definition altimetry-definitions.h:812
Altimetry & operator*=(Altimetry &left, double right)
Definition altimetry-definitions.cpp:346
std::pair< int, int > Deck41Types
Definition sediment-definitions.h:46
const Altimetry operator/(const Altimetry &left, const double right)
Definition altimetry-definitions.cpp:264
bool operator==(const Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.h:826
Altimetry & operator+=(Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.cpp:306
const Altimetry operator+(const Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.cpp:236
const Altimetry operator*(const Altimetry &left, const double right)
Definition altimetry-definitions.cpp:271
Altimetry & operator-=(Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.cpp:314
const Altimetry operator-(const Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.cpp:243
Altimetry & operator/=(Altimetry &left, double right)
Definition altimetry-definitions.cpp:338