1 #ifndef __JACOUSTICS__JSOUNDVELOCITY__
2 #define __JACOUSTICS__JSOUNDVELOCITY__
17 namespace JACOUSTICS {}
18 namespace JPP {
using namespace JACOUSTICS; }
20 namespace JACOUSTICS {
60 this->
a += this->
b * (z0 - this->
z0);
116 const double z2)
const
118 const double eps = 1.0e-8;
120 const double v1 = (*this)(z1);
121 const double v2 = (*this)(z2);
122 const double lv = log(v2/v1);
125 return t_s * fabs((z2 - z1) *
b / lv);
127 return 0.5 * t_s * (v1 + v2);
143 const double z2)
const
145 const double eps = 1.0e-8;
147 const double ct = (z2 - z1) / D_m;
148 const double v1 = (*this)(z1);
149 const double v2 = (*this)(z2);
152 return fabs(log(v2/v1) / (ct*
b));
154 return 2.0 * D_m / (v1 + v2);
170 const double z2)
const
172 const double eps = 1.0e-8;
174 const double ct = (z2 - z1) / D_m;
175 const double v1 = (*this)(z1);
176 const double v2 = (*this)(z2);
179 return fabs(log(v2/v1) / ((z2 - z1) *
b));
181 return 2.0 / (v1 + v2);
194 if (in >> velocity.
a) {
215 out << velocity.
a <<
' ' << velocity.
b <<
' ' << velocity.
z0;
virtual double getDistance(const double t_s, const double z1, const double z2) const
Get distance travelled by sound.
JSoundVelocity(const double a, const double b, const double z0)
Constructor.
virtual double getTime(const double D_m, const double z1, const double z2) const
Get propagation time of sound.
static const JSoundVelocity getSoundVelocity(1541.0,-17.0e-3,-2000.0)
Function object for velocity of sound.
virtual double getInverseVelocity(const double D_m, const double z1, const double z2) const
Get inverse velocity of sound.
Implementation for velocity of sound.
JSoundVelocity operator[](const double z0) const
Get sound velocity at given depth.
friend std::istream & operator>>(std::istream &in, JSoundVelocity &velocity)
Read sound velocity from input.
Interface for velocity of sound.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
JSoundVelocity & set(const double z0)
Set depth.
virtual double operator()(const double z) const
Get velocity of sound at given depth relative to seabed.
virtual double operator()() const
Get velocity of sound.
friend std::ostream & operator<<(std::ostream &out, const JSoundVelocity &velocity)
Write sound velocity to output.