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< double > RangeVector;
58
62 typedef ::std::map< int, SSP* > SSPMap;
63
67 typedef ::std::map< int, Sediment* > SedimentMap;
68
76
77
78 public:
79
80
85
96 ACToolboxWoss( const CoordZ& tx, const CoordZ& rx, const Time& start_t, const Time& end_t, double start_freq, double end_freq, double freq_step ) ;
97
101 virtual ~ACToolboxWoss();
102
103
108 virtual bool initialize();
109
110
115 virtual bool isValid() const ;
116
117
122 ACToolboxWoss& setRangeSteps( int steps ) { total_range_steps = steps; coordz_vector.reserve(steps + 2);
123 range_vector.reserve(steps + 2); return *this; }
124
129 ACToolboxWoss& setSSPDepthPrecision( long double precision ) { ssp_depth_precision = precision; return *this; }
130
131
136 int getRangeSteps() const { return total_range_steps; }
137
142 long double getSSPDepthPrecision() const { return ssp_depth_precision; }
143
149
155
160 double getMinSSPDepth() const { return( *(min_ssp_depth_set.begin()) ); }
161
166 double getMaxSSPDepth() const { return( *(max_ssp_depth_set.rbegin()) ); }
167
173
179
180
181 protected:
182
183
188
189
194
199
200
205
210
211
215 ::std::set< double > min_ssp_depth_set;
216
220 ::std::set< double > max_ssp_depth_set;
221
222
227
232
237
238
243
248
253
258
263
264
270
271
277 virtual bool checkSSPUnicity( SSP*& ptr );
278
284 virtual bool checkSedimentUnicity( Sediment*& ptr );
285
290 virtual bool initRangeVector();
291
296 virtual bool initCoordZVector();
297
302 virtual bool initSedimentMap();
303
307 virtual void resetSedimentMap();
308
313 virtual bool initAltimetry();
314
319 virtual bool initSSPMap();
320
324 virtual void resetSSPMap();
325
326 };
327
328
329}
330
331
332#endif /* AC_TOOLBOX_WOSS_DEFINITIONS_H */
333
334
::std::map< int, Sediment * > SedimentMap
Definition ac-toolbox-woss.h:67
::std::vector< double > RangeVector
Definition ac-toolbox-woss.h:57
::std::map< int, SSP * > SSPMap
Definition ac-toolbox-woss.h:62
base class for implementing acoustic-toolbox channel simulators (Bellhop, Kraken, etc....
Definition ac-toolbox-woss.h:75
double min_altimetry_depth
Definition ac-toolbox-woss.h:204
int getRangeSteps() const
Definition ac-toolbox-woss.h:136
double getMaxSSPDepth() const
Definition ac-toolbox-woss.h:166
virtual bool initialize()
Definition ac-toolbox-woss.cpp:127
long double getSSPDepthPrecision() const
Definition ac-toolbox-woss.h:142
virtual void resetSedimentMap()
Definition ac-toolbox-woss.cpp:118
ACToolboxWoss()
Definition ac-toolbox-woss.cpp:49
int getMaxSSPDepthSteps() const
Definition ac-toolbox-woss.h:154
double min_bathymetry_depth
Definition ac-toolbox-woss.h:193
virtual bool checkSedimentUnicity(Sediment *&ptr)
Definition ac-toolbox-woss.cpp:289
Altimetry * altimetry_value
Definition ac-toolbox-woss.h:262
ACToolboxWoss & setSSPDepthPrecision(long double precision)
Definition ac-toolbox-woss.h:129
virtual ~ACToolboxWoss()
Definition ac-toolbox-woss.cpp:94
virtual bool initRangeVector()
Definition ac-toolbox-woss.cpp:160
int min_ssp_depth_steps
Definition ac-toolbox-woss.h:226
bool is_ssp_map_transformable
Definition ac-toolbox-woss.h:269
virtual bool initSSPMap()
Definition ac-toolbox-woss.cpp:301
double getMinBathymteryDepth() const
Definition ac-toolbox-woss.h:172
::std::set< double > min_ssp_depth_set
Definition ac-toolbox-woss.h:215
SedimentMap sediment_map
Definition ac-toolbox-woss.h:257
virtual bool initAltimetry()
Definition ac-toolbox-woss.cpp:212
int total_range_steps
Definition ac-toolbox-woss.h:236
::std::set< double > max_ssp_depth_set
Definition ac-toolbox-woss.h:220
double max_altimetry_depth
Definition ac-toolbox-woss.h:209
double max_bathymetry_depth
Definition ac-toolbox-woss.h:198
int getMinSSPDepthSteps() const
Definition ac-toolbox-woss.h:148
virtual bool initSedimentMap()
Definition ac-toolbox-woss.cpp:251
virtual bool checkSSPUnicity(SSP *&ptr)
Definition ac-toolbox-woss.cpp:349
virtual bool isValid() const
Definition ac-toolbox-woss.cpp:103
virtual void resetSSPMap()
Definition ac-toolbox-woss.cpp:109
int max_ssp_depth_steps
Definition ac-toolbox-woss.h:231
double getMaxBathymetryDepth() const
Definition ac-toolbox-woss.h:178
double getMinSSPDepth() const
Definition ac-toolbox-woss.h:160
CoordZVector coordz_vector
Definition ac-toolbox-woss.h:242
ACToolboxWoss & setRangeSteps(int steps)
Definition ac-toolbox-woss.h:122
virtual bool initCoordZVector()
Definition ac-toolbox-woss.cpp:172
SSPMap ssp_map
Definition ac-toolbox-woss.h:252
long double ssp_depth_precision
Definition ac-toolbox-woss.h:187
RangeVector range_vector
Definition ac-toolbox-woss.h:247
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:599
::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.