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.
then cat $TRIPOD_INITIAL<< EOF1 256877.5 4743716.7-2438.42 256815.5 4743395.0-2435.53 257096.2 4743636.0-2439.5EOFfiif[[!-f $DETECTOR]];then JEditDetector-a $DETECTOR_INITIAL-s"-1 addz -6.9"-o $DETECTOR--!eval`JPrintDetector-a $DETECTOR-O SUMMARY`for STRING in ${STRINGS[*]};do set_variable MODULE`getModule-a $DETECTOR-L"$STRING 0"`JEditDetector-a $DETECTOR-M"$MODULE setz -2.9"-o $DETECTOR--!donefiif[[!-f $TRIPOD]];then cp-p $TRIPOD_INITIAL $TRIPODfiJAcoustics.sh $DETECTOR_IDcat > acoustics_trigger_parameters txt<< EOFQ=0.0;TMax_s=0.020;quantile=0.9;numberOfHits=90;EOFJAcousticsEventBuilder.sh $DETECTOR $RUNS[*]INPUT_FILES=(`ls KM3NeT_ ${(l:8::0::0:) DETECTOR_ID}_0 *${^RUNS}_event.root`) cd $WORKDIRif[!$HOMEDIR-ef $WORKDIR];then cp-p $HOMEDIR/$DETECTOR $WORKDIR cp-p $HOMEDIR/$TRIPOD $WORKDIR cp-p $HOMEDIR/${^INPUT_FILES}$WORKDIR cp-p $HOMEDIR/{acoustics_fit_parameters, acoustics_trigger_parameters, disable, hydrophone, mechanics, sound_velocity, tripod, waveform}.txt $WORKDIRfisource $JPP_DIR/examples/JAcoustics/acoustics-fit-toolkit.shtimer_startinitialise stage_1B 0.002 0.1 0 > &stage log
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 JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS 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.