World Ocean Simulation System (WOSS) library
ac-toolbox-woss.h
Go to the documentation of this file.
1/* WOSS - World Ocean Simulation System -
2 *
3 * Copyright (C) 2009 Federico Guerra
4 * and regents of the SIGNET lab, University of Padova
5 *
6 * Author: Federico Guerra - federico@guerra-tlc.com
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation;
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
22/*
23 * This software has been developed by Federico Guerra and SIGNET lab,
24 * University of Padova, in collaboration with the NATO Centre for
25 * Maritime Research and Experimentation (http://www.cmre.nato.int ;
26 * E-mail: pao@cmre.nato.int), whose support is gratefully acknowledged.
27 */
28
29
40#ifndef AC_TOOLBOX_WOSS_DEFINITIONS_H
41#define AC_TOOLBOX_WOSS_DEFINITIONS_H
42
43
44#include <ssp-definitions.h>
45#include "woss.h"
46
47
48namespace woss {
49
50
51 class Sediment;
52 class Altimetry;
53
57 typedef ::std::vector< SSP* > SSPVector;
58
59
67
68
69 public:
70
71
76
87 ACToolboxWoss( const CoordZ& tx, const CoordZ& rx, const Time& start_t, const Time& end_t, double start_freq, double end_freq, double freq_step ) ;
88
92 virtual ~ACToolboxWoss();
93
94
99 virtual bool initialize();
100
101
106 virtual bool isValid() const ;
107
108
113 ACToolboxWoss& setRangeSteps( int steps ) { total_range_steps = steps; coordz_vector.reserve(steps + 2);
114 range_vector.reserve(steps + 2); ssp_vector.reserve(steps + 2); return *this; }
115
120 ACToolboxWoss& setSSPDepthPrecision( long double precision ) { ssp_depth_precision = precision; return *this; }
121
122
127 int getRangeSteps() const { return total_range_steps; }
128
133 long double getSSPDepthPrecision() const { return ssp_depth_precision; }
134
140
146
151 double getMinSSPDepth() const { return( *(min_ssp_depth_set.begin()) ); }
152
157 double getMaxSSPDepth() const { return( *(max_ssp_depth_set.rbegin()) ); }
158
164
170
171
172 protected:
173
174
179
180
185
190
191
196
201
202
206 ::std::set< double > min_ssp_depth_set;
207
211 ::std::set< double > max_ssp_depth_set;
212
213
218
223
228
229
234
239
244
248 ::std::set< int > ssp_unique_indexes;
249
254
259
260
266
267
273 virtual bool checkSSPUnicity( SSP*& ptr );
274
275
280 virtual bool initRangeVector();
281
286 virtual bool initCoordZVector();
287
292 virtual bool initSediment();
293
298 virtual bool initAltimetry();
299
304 virtual bool initSSPVector();
305
309 virtual void resetSSPVector();
310
311 };
312
313
314}
315
316
317#endif /* AC_TOOLBOX_WOSS_DEFINITIONS_H */
318
319
::std::vector< SSP * > SSPVector
Definition ac-toolbox-woss.h:57
base class for implementing acoustic-toolbox channel simulators (Bellhop, Kraken, etc....
Definition ac-toolbox-woss.h:66
double min_altimetry_depth
Definition ac-toolbox-woss.h:195
int getRangeSteps() const
Definition ac-toolbox-woss.h:127
double getMaxSSPDepth() const
Definition ac-toolbox-woss.h:157
virtual bool initSSPVector()
Definition ac-toolbox-woss.cpp:260
virtual bool initialize()
Definition ac-toolbox-woss.cpp:120
long double getSSPDepthPrecision() const
Definition ac-toolbox-woss.h:133
::std::set< int > ssp_unique_indexes
Definition ac-toolbox-woss.h:248
ACToolboxWoss()
Definition ac-toolbox-woss.cpp:49
int getMaxSSPDepthSteps() const
Definition ac-toolbox-woss.h:145
double min_bathymetry_depth
Definition ac-toolbox-woss.h:184
Altimetry * altimetry_value
Definition ac-toolbox-woss.h:258
ACToolboxWoss & setSSPDepthPrecision(long double precision)
Definition ac-toolbox-woss.h:120
virtual ~ACToolboxWoss()
Definition ac-toolbox-woss.cpp:96
virtual bool initRangeVector()
Definition ac-toolbox-woss.cpp:160
int min_ssp_depth_steps
Definition ac-toolbox-woss.h:217
double getMinBathymteryDepth() const
Definition ac-toolbox-woss.h:163
Sediment * sediment_value
Definition ac-toolbox-woss.h:253
::std::set< double > min_ssp_depth_set
Definition ac-toolbox-woss.h:206
bool is_ssp_vector_transformable
Definition ac-toolbox-woss.h:265
virtual bool initAltimetry()
Definition ac-toolbox-woss.cpp:214
int total_range_steps
Definition ac-toolbox-woss.h:227
::std::set< double > max_ssp_depth_set
Definition ac-toolbox-woss.h:211
double max_altimetry_depth
Definition ac-toolbox-woss.h:200
double max_bathymetry_depth
Definition ac-toolbox-woss.h:189
int getMinSSPDepthSteps() const
Definition ac-toolbox-woss.h:139
virtual bool checkSSPUnicity(SSP *&ptr)
Definition ac-toolbox-woss.cpp:301
virtual bool initSediment()
Definition ac-toolbox-woss.cpp:205
virtual bool isValid() const
Definition ac-toolbox-woss.cpp:107
virtual void resetSSPVector()
Definition ac-toolbox-woss.cpp:112
int max_ssp_depth_steps
Definition ac-toolbox-woss.h:222
double getMaxBathymetryDepth() const
Definition ac-toolbox-woss.h:169
double getMinSSPDepth() const
Definition ac-toolbox-woss.h:151
SSPVector ssp_vector
Definition ac-toolbox-woss.h:243
CoordZVector coordz_vector
Definition ac-toolbox-woss.h:233
ACToolboxWoss & setRangeSteps(int steps)
Definition ac-toolbox-woss.h:113
virtual bool initCoordZVector()
Definition ac-toolbox-woss.cpp:172
long double ssp_depth_precision
Definition ac-toolbox-woss.h:178
RangeVector range_vector
Definition ac-toolbox-woss.h:238
Altimetry profile class.
Definition altimetry-definitions.h:78
3D-Coordinates (lat, long, depth) class definitions and functions library
Definition coordinates-definitions.h:403
SSP class offers multiple creation and manipulation capabilities for sound speed profile.
Definition ssp-definitions.h:258
Surficial sediment geoacoustic parameters definitions.
Definition sediment-definitions.h:63
a class for time date manipulation
Definition time-definitions.h:95
Woss class with ResReader objects for reading simulated results.
Definition woss.h:607
::std::vector< CoordZ > CoordZVector
Definition coordinates-definitions.h:64
Definitions and library for Sound Speed Profiles.
Provides the interface for woss::Woss and woss::WossResReader classes.
::std::vector< double > RangeVector
Definition woss.h:66