World Ocean Simulation System (WOSS) library
bellhop-woss.h
Go to the documentation of this file.
1/* WOSS - World Ocean Simulation System -
2 *
3 * Copyright (C) 2009 2025 Federico Guerra
4 * and regents of the SIGNET lab, University of Padova
5 *
6 * Author: Federico Guerra - WOSS@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
34#ifndef WOSS_BELLHOP_H
35#define WOSS_BELLHOP_H
36
37
38#include <iomanip>
39#include <memory>
40#include <map>
41#include <definitions.h>
45#include <ssp-definitions.h>
49#include "ac-toolbox-woss.h"
50
51
52namespace woss {
53
54 using NormSSPMap = std::map< double, std::unique_ptr<SSP> >;
55 using NSMIter = NormSSPMap::iterator;
56 using NSMCIter = NormSSPMap::const_iterator;
57 using NSMRIter = NormSSPMap::reverse_iterator;
58 using NSMCRIter = NormSSPMap::const_reverse_iterator;
59
60 /*
61 * .arr file syntax to be used during parsing
62 */
69
70 /*
71 * .shd file syntax to be used during parsing
72 */
78
84 class BellhopWoss : public ACToolboxWoss {
85
86 public:
87
92
103 BellhopWoss(const CoordZ& tx, const CoordZ& rx, const Time& start_t, const Time& end_t, double start_freq, double end_freq, double freq_step ) ;
104
105 BellhopWoss(const BellhopWoss& copy) = default;
106
107 BellhopWoss(BellhopWoss&& tmp) = default;
108
109 virtual ~BellhopWoss() override = default;
110
111 BellhopWoss& operator=(const BellhopWoss& copy) = default;
112
114
119 virtual bool initialize() override;
120
126 virtual bool initPressResReader( double curr_frequency );
127
133 virtual bool initTimeArrResReader( double curr_frequency );
134
140 virtual bool run() override;
141
147 virtual bool timeEvolve( const Time& time_value ) override;
148
153 virtual bool isValid() const override;
154
165 virtual std::unique_ptr<Pressure> getAvgPressure( double frequency, double tx_depth, double start_rx_depth = WOSS_MIN_DEPTH, double start_rx_range = WOSS_MIN_RANGE, double end_rx_depth = WOSS_MAX_DEPTH , double end_rx_range = WOSS_MAX_RANGE ) const;
166
175 virtual std::unique_ptr<Pressure> getPressure( double frequency, double tx_depth, double rx_depth, double rx_range ) const;
176
185 virtual std::unique_ptr<TimeArr> getTimeArr( double frequency, double tx_depth, double rx_depth, double rx_range ) const;
186
192 BellhopWoss& setThorpeAttFlag( bool flag ) { use_thorpe_att = flag; return *this; }
193
199 BellhopWoss& setTxMinDepthOffset( double offset ) { tx_min_depth_offset = offset; return *this; }
200
206 BellhopWoss& setTxMaxDepthOffset( double offset ) { tx_max_depth_offset = offset; return *this; }
207
213 BellhopWoss& setTotalTransmitters( int sources ) { total_transmitters = sources; return *this; }
214
220 BellhopWoss& setRxMinDepthOffset( double offset ) { rx_min_depth_offset = offset; return *this; }
221
227 BellhopWoss& setRxMaxDepthOffset( double offset ) { rx_max_depth_offset = offset; return *this; }
228
234 BellhopWoss& setRxMinRangeOffset( double offset ) { rx_min_range_offset = offset; return *this; }
235
241 BellhopWoss& setRxMaxRangeOffset( double offset ) { rx_max_range_offset = offset; return *this; }
242
248 BellhopWoss& setRxTotalDepths( int number ) { total_rx_depths = number; return *this; }
249
255 BellhopWoss& setRxTotalRanges( int number ) { total_rx_ranges = number; return *this; }
256
262 BellhopWoss& setRaysNumber( int number ) { total_rays = number; return *this; }
263
269 BellhopWoss& setMinAngle( double angle ) { min_angle = angle; return *this; }
270
276 BellhopWoss& setMaxAngle( double angle ) { max_angle = angle; return *this; }
277
283 BellhopWoss& setBoxDepth( double depth ) { box_depth = depth; return *this; }
284
290 BellhopWoss& setBoxRange( double range ) { box_range = range; return *this; }
291
297 BellhopWoss& setBellhopPath( const std::string& path ) { bellhop_path = path; return *this; }
298
305
312
318 BellhopWoss& setBeamOptions( const std::string& options ) { beam_options = options; return *this; }
319
325 BellhopWoss& setBhMode( const std::string& mode );
326
332 BellhopWoss& setBathymetryType( const std::string& type ) { bathymetry_type = type; return *this; }
333
339 BellhopWoss& setBathymetryMethod( const std::string& type ) { bathymetry_method = type; return *this; }
340
346 BellhopWoss& setAltimetryType( const std::string& type ) { altimetry_type = type; return *this; }
347
353 BellhopWoss& setTransducer( std::unique_ptr<Transducer> ptr ) { transducer = std::move(ptr); return *this; }
354
360 BellhopWoss& setTransformSSPDepthSteps( int depth_steps ) { transform_ssp_depth_steps = depth_steps; return *this; }
361
367 BellhopWoss& setBeamPatternParam( double init_bearing, double vert_rot = 0.0, double horiz_rot = 0.0, double mult = 1.0, double add = 0.0 ) {
368 bp_initial_bearing = init_bearing; bp_vertical_rotation = vert_rot; bp_horizontal_rotation = horiz_rot;
369 bp_mult_costant = mult; bp_add_costant = add; return *this; }
370
375 bool getThorpeAttFlag() const { return use_thorpe_att; }
376
381 double getTxMinDepthOffset() const { return tx_min_depth_offset; }
382
387 double getTxMaxDepthOffset() const { return tx_max_depth_offset; }
388
394
399 double getRxMinDepthOffset() const { return rx_min_depth_offset; }
400
405 double getRxMaxDepthOffset() const { return rx_max_depth_offset; }
406
411 double getRxMinRangeOffset() const { return rx_min_range_offset; }
412
417 double getRxMaxRangeOffset() const { return rx_max_range_offset; }
418
423 int getRxTotalDepths() const { return total_rx_depths; }
424
429 int getRxTotalRanges() const { return total_rx_ranges; }
430
435 int getRaysNumber() const { return total_rays; }
436
441 double getMinAngle() const { return min_angle; }
442
447 double getMaxAngle() const { return max_angle; }
448
453 double getBoxDepth() const { return box_depth; }
454
459 double getBoxRange() const { return box_range; }
460
466
471 std::string getBellhopPath() const { return bellhop_path; }
472
478
484
489 std::string getBeamOptions() const { return beam_options; }
490
495 std::string getBathymetryType() const { return bathymetry_type; }
496
501 std::string getBathymetryMethod() const { return bathymetry_method; }
502
507 std::string getAltimetryType() const { return altimetry_type; }
508
513 std::unique_ptr<Transducer> getTransducer() const { return transducer->clone(); }
514
519 bool isValidBhMode( const std::string& ) const ;
520
525 bool usingPressMode() const { return using_press_mode; }
526
532
537 bool usingSSPFile() const { return using_ssp_file; }
538
539 protected:
540
545
549 std::string beam_options;
550
554 std::string bathymetry_type;
555
559 std::string bathymetry_method;
560
564 std::string altimetry_type;
565
569 std::string bellhop_op_mode;
570
574 std::string bellhop_env_file;
575
579 std::string bathymetry_file;
580
584 std::string altimetry_file;
585
589 std::string beam_pattern_file;
590
594 std::string ssp_file;
595
599 std::string shd_file;
600
604 std::string arr_file;
605
609 std::string bellhop_path;
610
615
620
624 std::string curr_path;
625
626 std::string transducer_type;
627
632
637
642
647
652
657
665
670
675
680
684 double min_angle;
685
689 double max_angle;
690
695
700
705
710
714 std::unique_ptr<Transducer> transducer;
715
717
719
721
723
725
727
729
731
736
741
745 double box_depth;
746
750 double box_range;
751
755 std::ofstream f_out;
756
760 virtual void normalizeDbSSP();
761
765 virtual void resetNormalizedDbSSP();
766
772 bool initResReader( double curr_frequency );
773
779 void initBox( double depth, double range );
780
786 void initCfgFiles( double curr_frequency, int curr_run );
787
793 void writeCfgFiles( double curr_frequency, int curr_run );
794
798 void writeAllCfgFiles();
799
804 void writeNormalizedSSP( int curr_run );
805
809 void writeSediment();
810
816 void writeHeader( double curr_frequency, int curr_run );
817
821 void writeTransmitter();
822
826 void writeReceiver();
827
831 void writeRayOptions();
832
836 void writeBox();
837
838 void writeBeamBlock();
839
843 void writeBathymetryFile();
844
848 void writeBeamPatternFile();
849
854 void writeAltimetryFile( int curr_run );
855
859 void removeAllCfgFiles();
860
866 void removeCfgFiles( double curr_frequency, int curr_run );
867
877 void checkBoundaries( double& frequency, double& tx_depth, double& rx_start_depth, double& rx_start_range, double& rx_end_depth, double& rx_end_range ) const;
878
882 void checkDepthOffsets();
883
892 void checkDepthOffsets( const CoordZ& coords, double& min_offset, double& max_offset, double min_depth_value, double max_depth_value );
893
897 void checkAngles();
898
902 void checkRangeOffsets();
903
904 };
905
906 //inline functions
908 inline bool BellhopWoss::isValidBhMode( const std::string& mode ) const {
909 return ( mode == "a" || mode == "A" || mode == "C" || mode == "I" || mode == "S" );
910 }
911
912 inline void BellhopWoss::initBox( double depth, double range ) {
913 if(box_depth < 0) //box depth not set by user - default to depth + 10%
914 box_depth = depth + depth / 10.0;
915
916 if(box_range < 0) //box range not set by user - default to range + 10%
917 box_range = range + range / 10.0;
918 }
919
921 f_out << "\'A*\' 0.0" << std::setw(30) << "! BOTTOM TYPE" << std::endl
922 << max_normalized_ssp_depth << " " << sediment_map.begin()->second->getStringValues() << " / ! "
923 << sediment_map.begin()->second->getType() << " BOTTOM TYPE " << std::endl;
924 }
925
926 inline void BellhopWoss::writeHeader( double curr_frequency, int curr_run ) {
927 f_out.precision(WOSS_DECIMAL_PRECISION);
928 f_out << "\'BELLHOP - woss id = " << woss_id << "; run = " << curr_run
929 << "; tx(" << tx_coordz.getLatitude() << "," << tx_coordz.getLongitude() << "," << tx_coordz.getDepth() << ")"
930 << "; rx(" << rx_coordz.getLatitude() << "," << rx_coordz.getLongitude() << "," << rx_coordz.getDepth() << ")"
931 << "\'" << std::endl
932 << curr_frequency << std::setw(30) << "! FREQUENCY [HZ]" << std::endl
933 << 1 << std::setw(30) << "! NMEDIA" << std::endl;
934 }
935
937 f_out << total_transmitters << std::setw(30) << "! NUMBER OF SOURCES" << std::endl;
938 if (total_transmitters == 1)
939 f_out << tx_coordz.getDepth() + tx_min_depth_offset << " " << "/" << std::setw(30) << "! SOURCE'S DEPTH" << std::endl;
940 else
942 << " " << "/" << std::setw(30) << "! SOURCES' DEPTHS" << std::endl;
943 }
944
946 f_out << total_rx_depths << std::setw(30) << "! NUMBER OF RX DEPTH(S)" << std::endl;
947 if (total_rx_depths == 1)
948 f_out << rx_coordz.getDepth() + rx_min_depth_offset << " " << "/" << std::setw(30) << "! RX'S DEPTH" << std::endl;
949 else
951 << std::setw(30) << "! RX'S DEPTHS" << std::endl;
952
953 f_out << total_rx_ranges << std::setw(30) << "!NUMBER OF RX RANGE(S)" << std::endl;
954 if (total_rx_ranges == 1)
955 f_out << ((total_great_circle_distance + rx_min_range_offset) / 1000.0) << " " << "/" << std::setw(30) << "! RX'S RANGE" << std::endl;
956 else
957 f_out << ((total_great_circle_distance + rx_min_range_offset) / 1000.0) << " " << ((total_great_circle_distance + rx_max_range_offset)/1000.0) << " " << "/"
958 << std::setw(30) << "! RX'S RANGES" << std::endl;
959 }
960
962 f_out << "\'"<< bellhop_op_mode << beam_options;
963
964 if ( transducer->isValid() )
965 f_out << "*";
966
967 f_out << "\'" << std::setw(30) << "! RAY OPTIONS" << std::endl
968 << total_rays << std::setw(30) << "! NUMBER OF RAYS" << std::endl
969 << min_angle << " " << max_angle << " " << "/" << std::setw(30) << "! START, END ANGLES" << std::endl;
970 }
971
972 inline void BellhopWoss::writeBox() {
973 f_out << "0.0" << " " << box_depth << " " << (box_range/1000.0) << " , "
974 << "! RAY-STEP , BOX DEPTH, BOX RANGE" << std::endl;
975 }
976
978 f_out << "\'MS\' 1.0 100.0 0," << std::endl << "3 5" << std::endl;
979 }
980
981}
982
983#endif /* WOSS_BELLHOP_H */
Provides the interface for woss::ArrAscResReader and woss::ArrData classes.
Provides the interface for woss::ArrBinResReader class.
Provides the interface for woss::ShdResReader and woss::ShdData classes.
Provides the interface for woss::ACToolboxWoss class.
base class for implementing acoustic-toolbox channel simulators (Bellhop, Kraken, etc....
Definition ac-toolbox-woss.h:71
SedimentMap sediment_map
Definition ac-toolbox-woss.h:237
Implempentation of ACToolboxWoss for Bellhop raytracing program.
Definition bellhop-woss.h:84
double bp_initial_bearing
Definition bellhop-woss.h:716
BellhopWoss & setBathymetryType(const std::string &type)
Definition bellhop-woss.h:332
virtual bool initPressResReader(double curr_frequency)
Definition bellhop-woss.cpp:880
void initBox(double depth, double range)
Definition bellhop-woss.h:912
virtual std::unique_ptr< Pressure > getAvgPressure(double frequency, double tx_depth, double start_rx_depth=WOSS_MIN_DEPTH, double start_rx_range=WOSS_MIN_RANGE, double end_rx_depth=WOSS_MAX_DEPTH, double end_rx_range=WOSS_MAX_RANGE) const
Definition bellhop-woss.cpp:1054
int transform_ssp_depth_steps
Definition bellhop-woss.h:709
int total_rx_ranges
Definition bellhop-woss.h:664
virtual void resetNormalizedDbSSP()
Definition bellhop-woss.cpp:206
double rx_min_range_offset
Definition bellhop-woss.h:669
void writeAltimetryFile(int curr_run)
Definition bellhop-woss.cpp:786
std::string altimetry_type
Definition bellhop-woss.h:564
std::string getBellhopPath() const
Definition bellhop-woss.h:471
BellhopWoss & setTransducer(std::unique_ptr< Transducer > ptr)
Definition bellhop-woss.h:353
BellhopWoss & setTxMaxDepthOffset(double offset)
Definition bellhop-woss.h:206
double min_normalized_ssp_depth
Definition bellhop-woss.h:694
std::unique_ptr< Transducer > getTransducer() const
Definition bellhop-woss.h:513
int getRxTotalDepths() const
Definition bellhop-woss.h:423
double getBoxDepth() const
Definition bellhop-woss.h:453
BellhopWoss & operator=(const BellhopWoss &copy)=default
int getTransformSSPDepthSteps() const
Definition bellhop-woss.h:465
virtual bool run() override
Definition bellhop-woss.cpp:915
double bp_mult_costant
Definition bellhop-woss.h:722
std::string bathymetry_method
Definition bellhop-woss.h:559
BellhopWoss(BellhopWoss &&tmp)=default
int total_transmitters
Definition bellhop-woss.h:641
int getTotalTransmitters() const
Definition bellhop-woss.h:393
BellhopArrSyntax bellhop_arr_syntax
Definition bellhop-woss.h:614
void writeBox()
Definition bellhop-woss.h:972
void writeSediment()
Definition bellhop-woss.h:920
std::string altimetry_file
Definition bellhop-woss.h:584
double max_normalized_ssp_depth
Definition bellhop-woss.h:699
std::string beam_pattern_file
Definition bellhop-woss.h:589
BellhopWoss & setRaysNumber(int number)
Definition bellhop-woss.h:262
BellhopWoss & setBoxRange(double range)
Definition bellhop-woss.h:290
BellhopWoss & setThorpeAttFlag(bool flag)
Definition bellhop-woss.h:192
BellhopWoss & operator=(BellhopWoss &&tmp)=default
bool usingPressMode() const
Definition bellhop-woss.h:525
NormSSPMap normalized_ssp_map
Definition bellhop-woss.h:735
double bp_vertical_rotation
Definition bellhop-woss.h:718
std::string beam_options
Definition bellhop-woss.h:549
std::string shd_file
Definition bellhop-woss.h:599
BellhopWoss & setRxMaxRangeOffset(double offset)
Definition bellhop-woss.h:241
void checkDepthOffsets()
Definition bellhop-woss.cpp:470
double min_angle
Definition bellhop-woss.h:684
BellhopWoss & setBellhopPath(const std::string &path)
Definition bellhop-woss.h:297
bool initResReader(double curr_frequency)
Definition bellhop-woss.cpp:1043
std::string bellhop_env_file
Definition bellhop-woss.h:574
double tx_max_depth_offset
Definition bellhop-woss.h:636
std::string getBathymetryType() const
Definition bellhop-woss.h:495
BellhopWoss(const BellhopWoss &copy)=default
void writeTransmitter()
Definition bellhop-woss.h:936
BellhopWoss & setBoxDepth(double depth)
Definition bellhop-woss.h:283
std::string bathymetry_file
Definition bellhop-woss.h:579
BellhopWoss & setBeamPatternParam(double init_bearing, double vert_rot=0.0, double horiz_rot=0.0, double mult=1.0, double add=0.0)
Definition bellhop-woss.h:367
double getRxMaxRangeOffset() const
Definition bellhop-woss.h:417
std::ofstream f_out
Definition bellhop-woss.h:755
bool usingSSPFile() const
Definition bellhop-woss.h:537
BellhopWoss & setBathymetryMethod(const std::string &type)
Definition bellhop-woss.h:339
void writeAllCfgFiles()
Definition bellhop-woss.cpp:1020
bool getThorpeAttFlag() const
Definition bellhop-woss.h:375
BellhopWoss & setRxTotalDepths(int number)
Definition bellhop-woss.h:248
bool usingTimeArrMode() const
Definition bellhop-woss.h:531
bool using_press_mode
Definition bellhop-woss.h:728
BellhopWoss & setRxMinDepthOffset(double offset)
Definition bellhop-woss.h:220
double getRxMinDepthOffset() const
Definition bellhop-woss.h:399
void initCfgFiles(double curr_frequency, int curr_run)
Definition bellhop-woss.cpp:959
void writeNormalizedSSP(int curr_run)
Definition bellhop-woss.cpp:275
double getTxMinDepthOffset() const
Definition bellhop-woss.h:381
virtual bool initialize() override
Definition bellhop-woss.cpp:857
double rx_max_depth_offset
Definition bellhop-woss.h:656
bool use_thorpe_att
Definition bellhop-woss.h:544
std::string curr_path
Definition bellhop-woss.h:624
void checkBoundaries(double &frequency, double &tx_depth, double &rx_start_depth, double &rx_start_range, double &rx_end_depth, double &rx_end_range) const
Definition bellhop-woss.cpp:396
double getTxMaxDepthOffset() const
Definition bellhop-woss.h:387
virtual ~BellhopWoss() override=default
void checkRangeOffsets()
Definition bellhop-woss.cpp:480
virtual bool timeEvolve(const Time &time_value) override
Definition bellhop-woss.cpp:1096
int total_rays
Definition bellhop-woss.h:679
std::string ssp_file
Definition bellhop-woss.h:594
void writeBathymetryFile()
Definition bellhop-woss.cpp:530
void checkAngles()
Definition bellhop-woss.cpp:516
BellhopWoss & setMaxAngle(double angle)
Definition bellhop-woss.h:276
NormSSPMap randomized_ssp_map
Definition bellhop-woss.h:740
BellhopWoss & setBellhopShdSyntax(BellhopShdSyntax syntax)
Definition bellhop-woss.h:311
void writeHeader(double curr_frequency, int curr_run)
Definition bellhop-woss.h:926
double getBoxRange() const
Definition bellhop-woss.h:459
std::string getBathymetryMethod() const
Definition bellhop-woss.h:501
std::string arr_file
Definition bellhop-woss.h:604
BellhopWoss & setRxMinRangeOffset(double offset)
Definition bellhop-woss.h:234
double box_range
Definition bellhop-woss.h:750
virtual bool initTimeArrResReader(double curr_frequency)
Definition bellhop-woss.cpp:894
int getRaysNumber() const
Definition bellhop-woss.h:435
std::string bathymetry_type
Definition bellhop-woss.h:554
std::string transducer_type
Definition bellhop-woss.h:626
void removeAllCfgFiles()
Definition bellhop-woss.cpp:1029
int total_rx_depths
Definition bellhop-woss.h:646
double rx_max_range_offset
Definition bellhop-woss.h:674
BellhopWoss & setRxTotalRanges(int number)
Definition bellhop-woss.h:255
std::string bellhop_path
Definition bellhop-woss.h:609
void writeBeamPatternFile()
Definition bellhop-woss.cpp:777
BellhopWoss & setBeamOptions(const std::string &options)
Definition bellhop-woss.h:318
BellhopWoss & setTransformSSPDepthSteps(int depth_steps)
Definition bellhop-woss.h:360
BellhopWoss()
Definition bellhop-woss.cpp:75
BellhopWoss & setTxMinDepthOffset(double offset)
Definition bellhop-woss.h:199
bool using_ssp_file
Definition bellhop-woss.h:726
int getRxTotalRanges() const
Definition bellhop-woss.h:429
std::string getBeamOptions() const
Definition bellhop-woss.h:489
void removeCfgFiles(double curr_frequency, int curr_run)
Definition bellhop-woss.cpp:1038
void writeRayOptions()
Definition bellhop-woss.h:961
BellhopWoss & setTotalTransmitters(int sources)
Definition bellhop-woss.h:213
double rx_min_depth_offset
Definition bellhop-woss.h:651
BellhopShdSyntax getBellhopShdSyntax() const
Definition bellhop-woss.h:483
double tx_min_depth_offset
Definition bellhop-woss.h:631
void writeCfgFiles(double curr_frequency, int curr_run)
Definition bellhop-woss.cpp:979
virtual bool isValid() const override
Definition bellhop-woss.cpp:177
virtual std::unique_ptr< TimeArr > getTimeArr(double frequency, double tx_depth, double rx_depth, double rx_range) const
Definition bellhop-woss.cpp:1076
BellhopWoss & setAltimetryType(const std::string &type)
Definition bellhop-woss.h:346
std::string bellhop_op_mode
Definition bellhop-woss.h:569
void writeReceiver()
Definition bellhop-woss.h:945
BellhopWoss & setRxMaxDepthOffset(double offset)
Definition bellhop-woss.h:227
bool isValidBhMode(const std::string &) const
Definition bellhop-woss.h:908
double getRxMinRangeOffset() const
Definition bellhop-woss.h:411
void writeBeamBlock()
Definition bellhop-woss.h:977
std::unique_ptr< Transducer > transducer
Definition bellhop-woss.h:714
double getMaxAngle() const
Definition bellhop-woss.h:447
BellhopWoss & setBellhopArrSyntax(BellhopArrSyntax syntax)
Definition bellhop-woss.h:304
double max_angle
Definition bellhop-woss.h:689
virtual std::unique_ptr< Pressure > getPressure(double frequency, double tx_depth, double rx_depth, double rx_range) const
Definition bellhop-woss.cpp:1066
BellhopArrSyntax getBellhopArrSyntax() const
Definition bellhop-woss.h:477
double getMinAngle() const
Definition bellhop-woss.h:441
int curr_norm_ssp_depth_steps
Definition bellhop-woss.h:704
double bp_add_costant
Definition bellhop-woss.h:724
BellhopWoss & setBhMode(const std::string &mode)
Definition bellhop-woss.cpp:184
virtual void normalizeDbSSP()
Definition bellhop-woss.cpp:212
double getRxMaxDepthOffset() const
Definition bellhop-woss.h:405
BellhopShdSyntax bellhop_shd_syntax
Definition bellhop-woss.h:619
double box_depth
Definition bellhop-woss.h:745
std::string getAltimetryType() const
Definition bellhop-woss.h:507
double bp_horizontal_rotation
Definition bellhop-woss.h:720
BellhopWoss & setMinAngle(double angle)
Definition bellhop-woss.h:269
bool using_time_arrival_mode
Definition bellhop-woss.h:730
3D-Coordinates (lat, long, depth) class definitions and functions library
Definition coordinates-definitions.h:384
constexpr double getDepth() const
Definition coordinates-definitions.h:498
constexpr double getLongitude() const
Definition coordinates-definitions.h:167
constexpr double getLatitude() const
Definition coordinates-definitions.h:161
a class for time date manipulation
Definition time-definitions.h:83
CoordZ tx_coordz
Definition woss.h:455
double total_great_circle_distance
Definition woss.h:477
int woss_id
Definition woss.h:418
CoordZ rx_coordz
Definition woss.h:460
Provides the interface for the woss::Coord and woss::CoordZ classes.
Generic functions and variables
Definition ac-toolbox-arr-asc-reader.h:44
NormSSPMap::reverse_iterator NSMRIter
Definition bellhop-woss.h:57
BellhopArrSyntax
Definition bellhop-woss.h:63
@ BELLHOP_CREATOR_ARR_FILE_SYNTAX_1
Post 31 August 2016 syntax, with imaginary time delay.
@ BELLHOP_CREATOR_ARR_FILE_SYNTAX_2
Post 31 March 2019 syntax, with different header syntax.
@ BELLHOP_CREATOR_ARR_FILE_INVALID
invalid syntax, must always be the last element
@ BELLHOP_CREATOR_ARR_FILE_SYNTAX_0
Pre 31 august 2016 syntax, without imaginary time delay.
NormSSPMap::const_iterator NSMCIter
Definition bellhop-woss.h:56
NormSSPMap::const_reverse_iterator NSMCRIter
Definition bellhop-woss.h:58
BellhopShdSyntax
Definition bellhop-woss.h:73
@ BELLHOP_CREATOR_SHD_FILE_INVALID
invalid syntax, must always be the last element
std::map< double, std::unique_ptr< SSP > > NormSSPMap
Definition bellhop-woss.h:54
NormSSPMap::iterator NSMIter
Definition bellhop-woss.h:55
Definitions and library for woss::Sediment class.
Definitions and library for Sound Speed Profiles.
Provides the interface for the woss::Transducer class.