Jpp  16.0.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JAbstractSoundVelocity.hh
Go to the documentation of this file.
1 #ifndef __JACOUSTICS__JABSTRACTSOUNDVELOCITY__
2 #define __JACOUSTICS__JABSTRACTSOUNDVELOCITY__
3 
4 /**
5  * \file
6  *
7  * Abstract sound velocity.
8  * \author mdejong
9  */
10 namespace JACOUSTICS {}
11 namespace JPP { using namespace JACOUSTICS; }
12 
13 namespace JACOUSTICS {
14 
15  /**
16  * Interface for depth dependend velocity of sound.
17  *
18  * Note that the z-axis is pointing upwards.
19  */
21  /**
22  * Virtual destructor.
23  */
25  {}
26 
27 
28  /**
29  * Get velocity of sound.
30  *
31  * \return velocity [m/s]
32  */
33  virtual double operator()() const = 0;
34 
35 
36  /**
37  * Get velocity of sound at given depth relative to seabed.
38  *
39  * \param z depdth [m]
40  * \return velocity [m/s]
41  */
42  virtual double operator()(const double z) const
43  {
44  return (*this)();
45  }
46 
47 
48  /**
49  * Get distance travelled by sound.
50  *
51  * \param t_s time [s]
52  * \param z1 depth [m]
53  * \param z2 depth [m]
54  * return distance [m]
55  */
56  virtual double getDistance(const double t_s,
57  const double z1,
58  const double z2) const = 0;
59 
60 
61  /**
62  * Get propagation time of sound.
63  *
64  * \param D_m distance [m]
65  * \param z1 depth [m]
66  * \param z2 depth [m]
67  * return time [s]
68  */
69  virtual double getTime(const double D_m,
70  const double z1,
71  const double z2) const = 0;
72 
73 
74  /**
75  * Get inverse velocity of sound.
76  *
77  * \param D_m distance [m]
78  * \param z1 depth [m]
79  * \param z2 depth [m]
80  * return inverse velocity [s/m]
81  */
82  virtual double getInverseVelocity(const double D_m,
83  const double z1,
84  const double z2) const = 0;
85  };
86 }
87 
88 #endif
virtual double operator()() const =0
Get velocity of sound.
virtual double getInverseVelocity(const double D_m, const double z1, const double z2) const =0
Get inverse velocity of sound.
virtual double operator()(const double z) const
Get velocity of sound at given depth relative to seabed.
virtual ~JAbstractSoundVelocity()
Virtual destructor.
virtual double getTime(const double D_m, const double z1, const double z2) const =0
Get propagation time of sound.
Interface for depth dependend velocity of sound.
virtual double getDistance(const double t_s, const double z1, const double z2) const =0
Get distance travelled by sound.