1 #ifndef __JACOUSTICS__JSOUNDVELOCITY__
2 #define __JACOUSTICS__JSOUNDVELOCITY__
20 namespace JACOUSTICS {}
21 namespace JPP {
using namespace JACOUSTICS; }
23 namespace JACOUSTICS {
64 this->
a += this->
b * (z0 - this->
z0);
120 const double z2)
const
122 const double eps = 1.0e-8;
124 const double v1 = (*this)(z1);
125 const double v2 = (*this)(z2);
126 const double lv = log(v2/v1);
129 return t_s * fabs((z2 - z1) *
b / lv);
131 return 0.5 * t_s * (v1 + v2);
147 const double z2)
const
149 const double eps = 1.0e-8;
151 const double ct = (z2 - z1) / D_m;
152 const double v1 = (*this)(z1);
153 const double v2 = (*this)(z2);
156 return fabs(log(v2/v1) / (ct*
b));
158 return 2.0 * D_m / (v1 + v2);
174 const double z2)
const
176 const double eps = 1.0e-8;
178 const double ct = (z2 - z1) / D_m;
179 const double v1 = (*this)(z1);
180 const double v2 = (*this)(z2);
183 return fabs(log(v2/v1) / ((z2 - z1) *
b));
185 return 2.0 / (v1 + v2);
200 JStringStream
is(in);
206 if (is >> velocity.
a) {
227 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.
static JStat getFileStatus
Function object for file status.
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 CHECK_EXIT_CODE 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.