1#ifndef __JACOUSTICS__JUNESCO__
2#define __JACOUSTICS__JUNESCO__
27 const double sd = sin(phi * PI / 180.0);
28 const double s2 = sd*sd;
29 const double s4 = s2*s2;
31 return 9.780318 * (1.0 + 5.2788e-3*s2 + 2.36e-5*s4);
55 - 1.025e-2 * T * (S - 35)
56 - 7.139e-13 * T*D*D*D);
73 const double t = T * 0.1;
74 const double d = D * 1.0e-3;
75 const double c = 1449.05 + 45.7 * t - 5.21 * t*t + 0.23 * t*t*t + (1.333 - 0.126*t + 0.009 * t*t)*(S - 35);
78 (16.23 + 0.253*t) * d +
79 (0.213 - 0.1*t) * d*d +
80 (0.016 + 0.0002*(S-35))*(S - 35)*t*d);
97 const double A00 = 1.389;
98 const double A01 = -1.262E-2;
99 const double A02 = 7.166E-5;
100 const double A03 = 2.008E-6;
101 const double A04 = -3.21E-8;
102 const double A10 = 9.4742E-5;
103 const double A11 = -1.2583E-5;
104 const double A12 = -6.4928E-8;
105 const double A13 = 1.0515E-8;
106 const double A14 = -2.0142E-10;
107 const double A20 = -3.9064E-7;
108 const double A21 = 9.1061E-9;
109 const double A22 = -1.6009E-10;
110 const double A23 = 7.994E-12;
111 const double A30 = 1.100E-10;
112 const double A31 = 6.651E-12;
113 const double A32 = -3.391E-13;
114 const double B00 = -1.922E-2;
115 const double B01 = -4.42E-5;
116 const double B10 = 7.3637E-5;
117 const double B11 = 1.7950E-7;
118 const double C00 = 1402.388;
119 const double C01 = 5.03830;
120 const double C02 = -5.81090E-2;
121 const double C03 = 3.3432E-4;
122 const double C04 = -1.47797E-6;
123 const double C05 = 3.1419E-9;
124 const double C10 = 0.153563;
125 const double C11 = 6.8999E-4;
126 const double C12 = -8.1829E-6;
127 const double C13 = 1.3632E-7;
128 const double C14 = -6.1260E-10;
129 const double C20 = 3.1260E-5;
130 const double C21 = -1.7111E-6;
131 const double C22 = 2.5986E-8;
132 const double C23 = -2.5353E-10;
133 const double C24 = 1.0415E-12;
134 const double C30 = -9.7729E-9;
135 const double C31 = 3.8513E-10;
136 const double C32 = -2.3654E-12;
137 const double D00 = 1.727E-3;
138 const double D10 = -7.9836E-6;
140 const double T2 = T * T;
141 const double T3 = T2 * T;
142 const double T4 = T3 * T;
143 const double T5 = T4 * T;
145 const double P2 = P * P;
146 const double P3 = P2 * P;
149 (C00 + C01 * T + C02 * T2 + C03 * T3 + C04 * T4 + C05 * T5) +
150 (C10 + C11 * T + C12 * T2 + C13 * T3 + C14 * T4) * P +
151 (C20 + C21 * T + C22 * T2 + C23 * T3 + C24 * T4) * P2 +
152 (C30 + C31 * T + C32 * T2) * P3;
155 (A00 + A01 * T + A02 * T2 + A03 * T3 + A04 * T4) +
156 (A10 + A11 * T + A12 * T2 + A13 * T3 + A14 * T4) * P +
157 (A20 + A21 * T + A22 * T2 + A23 * T3) * P2 +
158 (A30 + A31 * T + A32 * T2) * P3;
160 const double B = B00 + B01 * T + (B10 + B11 * T) * P;
162 const double D = D00 + D10 * P;
164 return Cw + A*S + B*S*sqrt(S) + D*S*S;
184 const double C000 = 1402.392;
185 const double CT1 = 0.5012285E1;
186 const double CT2 = -0.551184E-1;
187 const double CT3 = 0.221649E-3;
188 const double CS1 = 0.1329530E1;
189 const double CS2 = 0.1288598E-3;
190 const double CP1 = 0.1560592;
191 const double CP2 = 0.2449993E-4;
192 const double CP3 = -0.8833959E-8;
193 const double CST = -0.1275936E-1;
194 const double CTP = 0.6353509E-2;
195 const double CT2P2 = 0.2656174E-7;
196 const double CTP2 = -0.1593895E-5;
197 const double CTP3 = 0.5222483E-9;
198 const double CT3P = -0.4383615E-6;
199 const double CS2P2 = -0.1616745E-8;
200 const double CST2 = 0.9688441E-4;
201 const double CS2TP = 0.4857614E-5;
202 const double CSTP = -0.3406824E-3;
206 const double f = 1.019716;
207 const double P = p * f;
209 const double T2 = T * T;
210 const double T3 = T2 * T;
212 const double S2 = S * S;
214 const double P2 = P * P;
215 const double P3 = P2 * P;
217 const double DCT = CT1 * T + CT2 * T2 + CT3 * T3;
218 const double DCS = CS1 * S + CS2 * S2;
219 const double DCP = CP1 * P + CP2 * P2 + CP3 * P3;
220 const double DCSTP = CTP * T*P + CT3P * T3*P + CTP2 * T*P2 + CT2P2 * T2*P2 + CTP3 * T*P3 + CST * S*T + CST2 * S*T2 + CSTP * S*T*P + CS2TP * S2*T*P + CS2P2 * S2*P2;
222 return C000 + DCT + DCS + DCP + DCSTP;
237 inline double getDepth(
const double P,
const double phi,
const bool option =
true)
239 const double sd = sin(phi * PI / 180.0);
240 const double g = 9.780318 * (1.0 + 5.2788e-3 * sd*sd + 2.363e-5 * sd*sd*sd*sd);
241 const double z = (9.72659e2 * P - 2.2512e-1 * P*P + 2.279e-4 * P*P*P - 1.82e-7 * P*P*P*P) / (g + 1.092e-4 * P);
242 const double dz = -7e-2 * P + 2e-3* (P*P);
244 return z + (option ? dz : 0.0);
259 inline double getPressure(
const double z,
const double phi,
const bool option =
true)
261 const double sd = sin(phi * PI / 180.0);
262 const double g = 9.78031 * (1.0 + 5.3e-3 * sd*sd);
263 const double h45 = 1.00818e-2 * z + 2.465e-8 * z*z - 1.25e-13 * z*z*z + 2.8e-19 * z*z*z*z;
264 const double k = (g - 2e-5*z) / (9.80612 - 2e-5 * z);
265 const double dp = -8.5e-6 * z + 1.4e-9 * z*z;
267 return h45 * k - (option ? dp : 0.0);
Auxiliary classes and methods for acoustic position calibration.
double getPressure(const double z, const double phi, const bool option=true)
Get pressure.
double getVelocityDelGrosso(const double p, const double S, const double T)
Get sound velocity.
double getGravity(const double phi)
Get gravitational constant.
double getVelocityCoppens(const double D, const double S, const double T)
Get sound velocity.
double getVelocityMackenzie(const double D, const double S, const double T)
Get sound velocity.
double getDepth(const double P, const double phi, const bool option=true)
Get depth.
double getVelocityUNESCO(const double P, const double S, const double T)
Get sound velocity.
static const double PI
Mathematical constants.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).