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 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 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.