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);
121 const double z2)
const override
123 const double eps = 1.0e-8;
125 const double v1 = (*this)(z1);
126 const double v2 = (*this)(z2);
127 const double lv = log(v2/v1);
130 return t_s * fabs((z2 - z1) *
b / lv);
132 return 0.5 * t_s * (v1 + v2);
149 const double z2)
const override
151 const double eps = 1.0e-8;
153 const double ct = (z2 - z1) / D_m;
154 const double v1 = (*this)(z1);
155 const double v2 = (*this)(z2);
158 return fabs(log(v2/v1) / (ct*
b));
160 return 2.0 * D_m / (v1 + v2);
177 const double z2)
const override
179 const double eps = 1.0e-8;
181 const double ct = (z2 - z1) / D_m;
182 const double v1 = (*this)(z1);
183 const double v2 = (*this)(z2);
186 return fabs(log(v2/v1) / ((z2 - z1) *
b));
188 return 2.0 / (v1 + v2);
203 JStringStream
is(in);
209 if (is >> velocity.
a) {
230 out << velocity.
a <<
' ' << velocity.
b <<
' ' << velocity.
z0;
JSoundVelocity(const double a, const double b, const double z0)
Constructor.
static const JSoundVelocity getSoundVelocity(1541.0,-17.0e-3,-2000.0)
Function object for velocity of sound.
virtual double operator()(const double z) const override
Get velocity of sound at given depth relative to seabed.
virtual double getInverseVelocity(const double D_m, const double z1, const double z2) const override
Get inverse velocity of sound.
virtual double getDistance(const double t_s, const double z1, const double z2) const override
Get distance travelled by sound.
Implementation for depth dependend velocity of sound.
static JStat getFileStatus
Function object for file status.
JSoundVelocity operator[](const double z0) const
Get sound velocity at given depth.
virtual double operator()() const override
Get velocity of sound at seabed.
virtual double getTime(const double D_m, const double z1, const double z2) const override
Get propagation time of sound.
friend std::istream & operator>>(std::istream &in, JSoundVelocity &velocity)
Read sound velocity from input.
Interface for depth dependend 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.
friend std::ostream & operator<<(std::ostream &out, const JSoundVelocity &velocity)
Write sound velocity to output.