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
88 static constexpr inline const char* WOSS_BELLHOP_BIN_NAME = "bellhop.exe";
90 static constexpr inline const char* WOSS_BELLHOPCXX_BIN_NAME = "bellhopcxx";
92 static constexpr inline const char* WOSS_BELLHOPCUDA_BIN_PATH = "bellhopcuda";
98
109 BellhopWoss(const CoordZ& tx, const CoordZ& rx, const Time& start_t, const Time& end_t, double start_freq, double end_freq, double freq_step ) ;
110
111 BellhopWoss(const BellhopWoss& copy) = default;
112
113 BellhopWoss(BellhopWoss&& tmp) = default;
114
115 virtual ~BellhopWoss() override = default;
116
117 BellhopWoss& operator=(const BellhopWoss& copy) = default;
118
120
125 virtual bool initialize() override;
126
132 virtual bool initPressResReader( double curr_frequency );
133
139 virtual bool initTimeArrResReader( double curr_frequency );
140
146 virtual bool run() override;
147
153 virtual bool timeEvolve( const Time& time_value ) override;
154
159 virtual bool isValid() const override;
160
171 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;
172
181 virtual std::unique_ptr<Pressure> getPressure( double frequency, double tx_depth, double rx_depth, double rx_range ) const;
182
191 virtual std::unique_ptr<TimeArr> getTimeArr( double frequency, double tx_depth, double rx_depth, double rx_range ) const;
192
198 BellhopWoss& setThorpeAttFlag( bool flag ) { use_thorpe_att = flag; return *this; }
199
205 BellhopWoss& setTxMinDepthOffset( double offset ) { tx_min_depth_offset = offset; return *this; }
206
212 BellhopWoss& setTxMaxDepthOffset( double offset ) { tx_max_depth_offset = offset; return *this; }
213
219 BellhopWoss& setTotalTransmitters( int sources ) { total_transmitters = sources; return *this; }
220
226 BellhopWoss& setRxMinDepthOffset( double offset ) { rx_min_depth_offset = offset; return *this; }
227
233 BellhopWoss& setRxMaxDepthOffset( double offset ) { rx_max_depth_offset = offset; return *this; }
234
240 BellhopWoss& setRxMinRangeOffset( double offset ) { rx_min_range_offset = offset; return *this; }
241
247 BellhopWoss& setRxMaxRangeOffset( double offset ) { rx_max_range_offset = offset; return *this; }
248
254 BellhopWoss& setRxTotalDepths( int number ) { total_rx_depths = number; return *this; }
255
261 BellhopWoss& setRxTotalRanges( int number ) { total_rx_ranges = number; return *this; }
262
268 BellhopWoss& setRaysNumber( int number ) { total_rays = number; return *this; }
269
275 BellhopWoss& setMinAngle( double angle ) { min_angle = angle; return *this; }
276
282 BellhopWoss& setMaxAngle( double angle ) { max_angle = angle; return *this; }
283
289 BellhopWoss& setBoxDepth( double depth ) { box_depth = depth; return *this; }
290
296 BellhopWoss& setBoxRange( double range ) { box_range = range; return *this; }
297
303 BellhopWoss& setBellhopPath( const std::string& path ) { bellhop_path = path; return *this; }
304
310 BellhopWoss& setBellhopBinName( const std::string& name ) { bellhop_bin_name = name; return *this; }
311
318
325
331 BellhopWoss& setBeamOptions( const std::string& options ) { beam_options = options; return *this; }
332
338 BellhopWoss& setBhMode( const std::string& mode );
339
345 BellhopWoss& setBathymetryType( const std::string& type ) { bathymetry_type = type; return *this; }
346
352 BellhopWoss& setBathymetryMethod( const std::string& type ) { bathymetry_method = type; return *this; }
353
359 BellhopWoss& setAltimetryType( const std::string& type ) { altimetry_type = type; return *this; }
360
366 BellhopWoss& setTransducer( std::unique_ptr<Transducer> ptr ) { transducer = std::move(ptr); return *this; }
367
373 BellhopWoss& setTransformSSPDepthSteps( int depth_steps ) { transform_ssp_depth_steps = depth_steps; return *this; }
374
380 BellhopWoss& setBeamPatternParam( double init_bearing, double vert_rot = 0.0, double horiz_rot = 0.0, double mult = 1.0, double add = 0.0 ) {
381 bp_initial_bearing = init_bearing; bp_vertical_rotation = vert_rot; bp_horizontal_rotation = horiz_rot;
382 bp_mult_costant = mult; bp_add_costant = add; return *this; }
383
388 bool getThorpeAttFlag() const { return use_thorpe_att; }
389
394 double getTxMinDepthOffset() const { return tx_min_depth_offset; }
395
400 double getTxMaxDepthOffset() const { return tx_max_depth_offset; }
401
407
412 double getRxMinDepthOffset() const { return rx_min_depth_offset; }
413
418 double getRxMaxDepthOffset() const { return rx_max_depth_offset; }
419
424 double getRxMinRangeOffset() const { return rx_min_range_offset; }
425
430 double getRxMaxRangeOffset() const { return rx_max_range_offset; }
431
436 int getRxTotalDepths() const { return total_rx_depths; }
437
442 int getRxTotalRanges() const { return total_rx_ranges; }
443
448 int getRaysNumber() const { return total_rays; }
449
454 double getMinAngle() const { return min_angle; }
455
460 double getMaxAngle() const { return max_angle; }
461
466 double getBoxDepth() const { return box_depth; }
467
472 double getBoxRange() const { return box_range; }
473
479
484 std::string getBellhopPath() const { return bellhop_path; }
485
490 std::string getBellhopBinName() const { return bellhop_bin_name; }
491
497
503
508 std::string getBeamOptions() const { return beam_options; }
509
514 std::string getBathymetryType() const { return bathymetry_type; }
515
520 std::string getBathymetryMethod() const { return bathymetry_method; }
521
526 std::string getAltimetryType() const { return altimetry_type; }
527
532 std::unique_ptr<Transducer> getTransducer() const { return transducer->clone(); }
533
538 bool isValidBhMode( const std::string& ) const ;
539
544 bool usingPressMode() const { return using_press_mode; }
545
551
556 bool usingSSPFile() const { return using_ssp_file; }
557
558 protected:
559
564
568 std::string beam_options;
569
573 std::string bathymetry_type;
574
578 std::string bathymetry_method;
579
583 std::string altimetry_type;
584
588 std::string bellhop_op_mode;
589
593 std::string bellhop_env_file;
594
598 std::string bathymetry_file;
599
603 std::string altimetry_file;
604
608 std::string beam_pattern_file;
609
613 std::string ssp_file;
614
618 std::string shd_file;
619
623 std::string arr_file;
624
628 std::string bellhop_path;
629
633 std::string bellhop_bin_name;
634
639
644
648 std::string curr_path;
649
650 std::string transducer_type;
651
656
661
666
671
676
681
689
694
699
704
708 double min_angle;
709
713 double max_angle;
714
719
724
729
734
738 std::unique_ptr<Transducer> transducer;
739
741
743
745
747
749
751
753
755
760
765
769 double box_depth;
770
774 double box_range;
775
779 std::ofstream f_out;
780
784 virtual void normalizeDbSSP();
785
789 virtual void resetNormalizedDbSSP();
790
796 bool initResReader( double curr_frequency );
797
803 void initBox( double depth, double range );
804
810 void initCfgFiles( double curr_frequency, int curr_run );
811
817 void writeCfgFiles( double curr_frequency, int curr_run );
818
822 void writeAllCfgFiles();
823
828 void writeNormalizedSSP( int curr_run );
829
833 void writeSediment();
834
840 void writeHeader( double curr_frequency, int curr_run );
841
845 void writeTransmitter();
846
850 void writeReceiver();
851
855 void writeRayOptions();
856
860 void writeBox();
861
862 void writeBeamBlock();
863
867 void writeBathymetryFile();
868
872 void writeBeamPatternFile();
873
878 void writeAltimetryFile( int curr_run );
879
883 void removeAllCfgFiles();
884
890 void removeCfgFiles( double curr_frequency, int curr_run );
891
901 void checkBoundaries( double& frequency, double& tx_depth, double& rx_start_depth, double& rx_start_range, double& rx_end_depth, double& rx_end_range ) const;
902
906 void checkDepthOffsets();
907
916 void checkDepthOffsets( const CoordZ& coords, double& min_offset, double& max_offset, double min_depth_value, double max_depth_value );
917
921 void checkAngles();
922
926 void checkRangeOffsets();
927
928 };
929
930 //inline functions
932 inline bool BellhopWoss::isValidBhMode( const std::string& mode ) const {
933 return ( mode == "a" || mode == "A" || mode == "C" || mode == "I" || mode == "S" );
934 }
935
936 inline void BellhopWoss::initBox( double depth, double range ) {
937 if(box_depth < 0) //box depth not set by user - default to depth + 10%
938 box_depth = depth + depth / 10.0;
939
940 if(box_range < 0) //box range not set by user - default to range + 10%
941 box_range = range + range / 10.0;
942 }
943
945 f_out << "\'A*\' 0.0" << std::setw(30) << "! BOTTOM TYPE" << std::endl
946 << max_normalized_ssp_depth << " " << sediment_map.begin()->second->getStringValues() << " / ! "
947 << sediment_map.begin()->second->getType() << " BOTTOM TYPE " << std::endl;
948 }
949
950 inline void BellhopWoss::writeHeader( double curr_frequency, int curr_run ) {
951 f_out.precision(WOSS_DECIMAL_PRECISION);
952 f_out << "\'BELLHOP - woss id = " << woss_id << "; run = " << curr_run
953 << "; tx(" << tx_coordz.getLatitude() << "," << tx_coordz.getLongitude() << "," << tx_coordz.getDepth() << ")"
954 << "; rx(" << rx_coordz.getLatitude() << "," << rx_coordz.getLongitude() << "," << rx_coordz.getDepth() << ")"
955 << "\'" << std::endl
956 << curr_frequency << std::setw(30) << "! FREQUENCY [HZ]" << std::endl
957 << 1 << std::setw(30) << "! NMEDIA" << std::endl;
958 }
959
961 f_out << total_transmitters << std::setw(30) << "! NUMBER OF SOURCES" << std::endl;
962 if (total_transmitters == 1)
963 f_out << tx_coordz.getDepth() + tx_min_depth_offset << " " << "/" << std::setw(30) << "! SOURCE'S DEPTH" << std::endl;
964 else
966 << " " << "/" << std::setw(30) << "! SOURCES' DEPTHS" << std::endl;
967 }
968
970 f_out << total_rx_depths << std::setw(30) << "! NUMBER OF RX DEPTH(S)" << std::endl;
971 if (total_rx_depths == 1)
972 f_out << rx_coordz.getDepth() + rx_min_depth_offset << " " << "/" << std::setw(30) << "! RX'S DEPTH" << std::endl;
973 else
975 << std::setw(30) << "! RX'S DEPTHS" << std::endl;
976
977 f_out << total_rx_ranges << std::setw(30) << "!NUMBER OF RX RANGE(S)" << std::endl;
978 if (total_rx_ranges == 1)
979 f_out << ((total_great_circle_distance + rx_min_range_offset) / 1000.0) << " " << "/" << std::setw(30) << "! RX'S RANGE" << std::endl;
980 else
981 f_out << ((total_great_circle_distance + rx_min_range_offset) / 1000.0) << " " << ((total_great_circle_distance + rx_max_range_offset)/1000.0) << " " << "/"
982 << std::setw(30) << "! RX'S RANGES" << std::endl;
983 }
984
986 f_out << "\'"<< bellhop_op_mode << beam_options;
987
988 if ( transducer->isValid() )
989 f_out << "*";
990
991 f_out << "\'" << std::setw(30) << "! RAY OPTIONS" << std::endl
992 << total_rays << std::setw(30) << "! NUMBER OF RAYS" << std::endl
993 << min_angle << " " << max_angle << " " << "/" << std::setw(30) << "! START, END ANGLES" << std::endl;
994 }
995
996 inline void BellhopWoss::writeBox() {
997 f_out << "0.0" << " " << box_depth << " " << (box_range/1000.0) << " , "
998 << "! RAY-STEP , BOX DEPTH, BOX RANGE" << std::endl;
999 }
1000
1002 f_out << "\'MS\' 1.0 100.0 0," << std::endl << "3 5" << std::endl;
1003 }
1004
1005}
1006
1007#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:740
BellhopWoss & setBathymetryType(const std::string &type)
Definition bellhop-woss.h:345
virtual bool initPressResReader(double curr_frequency)
Definition bellhop-woss.cpp:879
void initBox(double depth, double range)
Definition bellhop-woss.h:936
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:1053
int transform_ssp_depth_steps
Definition bellhop-woss.h:733
std::string getBellhopBinName() const
Definition bellhop-woss.h:490
int total_rx_ranges
Definition bellhop-woss.h:688
virtual void resetNormalizedDbSSP()
Definition bellhop-woss.cpp:205
static constexpr const char * WOSS_BELLHOPCUDA_BIN_PATH
Definition bellhop-woss.h:92
double rx_min_range_offset
Definition bellhop-woss.h:693
void writeAltimetryFile(int curr_run)
Definition bellhop-woss.cpp:785
std::string altimetry_type
Definition bellhop-woss.h:583
std::string getBellhopPath() const
Definition bellhop-woss.h:484
BellhopWoss & setTransducer(std::unique_ptr< Transducer > ptr)
Definition bellhop-woss.h:366
BellhopWoss & setTxMaxDepthOffset(double offset)
Definition bellhop-woss.h:212
double min_normalized_ssp_depth
Definition bellhop-woss.h:718
std::unique_ptr< Transducer > getTransducer() const
Definition bellhop-woss.h:532
int getRxTotalDepths() const
Definition bellhop-woss.h:436
double getBoxDepth() const
Definition bellhop-woss.h:466
BellhopWoss & operator=(const BellhopWoss &copy)=default
int getTransformSSPDepthSteps() const
Definition bellhop-woss.h:478
virtual bool run() override
Definition bellhop-woss.cpp:914
double bp_mult_costant
Definition bellhop-woss.h:746
std::string bathymetry_method
Definition bellhop-woss.h:578
BellhopWoss(BellhopWoss &&tmp)=default
int total_transmitters
Definition bellhop-woss.h:665
int getTotalTransmitters() const
Definition bellhop-woss.h:406
BellhopArrSyntax bellhop_arr_syntax
Definition bellhop-woss.h:638
void writeBox()
Definition bellhop-woss.h:996
void writeSediment()
Definition bellhop-woss.h:944
std::string altimetry_file
Definition bellhop-woss.h:603
double max_normalized_ssp_depth
Definition bellhop-woss.h:723
std::string beam_pattern_file
Definition bellhop-woss.h:608
BellhopWoss & setRaysNumber(int number)
Definition bellhop-woss.h:268
BellhopWoss & setBoxRange(double range)
Definition bellhop-woss.h:296
BellhopWoss & setThorpeAttFlag(bool flag)
Definition bellhop-woss.h:198
BellhopWoss & operator=(BellhopWoss &&tmp)=default
bool usingPressMode() const
Definition bellhop-woss.h:544
NormSSPMap normalized_ssp_map
Definition bellhop-woss.h:759
double bp_vertical_rotation
Definition bellhop-woss.h:742
std::string beam_options
Definition bellhop-woss.h:568
std::string shd_file
Definition bellhop-woss.h:618
static constexpr const char * WOSS_BELLHOPCXX_BIN_NAME
Definition bellhop-woss.h:90
BellhopWoss & setRxMaxRangeOffset(double offset)
Definition bellhop-woss.h:247
void checkDepthOffsets()
Definition bellhop-woss.cpp:469
double min_angle
Definition bellhop-woss.h:708
BellhopWoss & setBellhopPath(const std::string &path)
Definition bellhop-woss.h:303
bool initResReader(double curr_frequency)
Definition bellhop-woss.cpp:1042
std::string bellhop_env_file
Definition bellhop-woss.h:593
double tx_max_depth_offset
Definition bellhop-woss.h:660
std::string getBathymetryType() const
Definition bellhop-woss.h:514
BellhopWoss(const BellhopWoss &copy)=default
void writeTransmitter()
Definition bellhop-woss.h:960
BellhopWoss & setBoxDepth(double depth)
Definition bellhop-woss.h:289
std::string bathymetry_file
Definition bellhop-woss.h:598
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:380
double getRxMaxRangeOffset() const
Definition bellhop-woss.h:430
std::ofstream f_out
Definition bellhop-woss.h:779
bool usingSSPFile() const
Definition bellhop-woss.h:556
BellhopWoss & setBathymetryMethod(const std::string &type)
Definition bellhop-woss.h:352
void writeAllCfgFiles()
Definition bellhop-woss.cpp:1019
bool getThorpeAttFlag() const
Definition bellhop-woss.h:388
BellhopWoss & setRxTotalDepths(int number)
Definition bellhop-woss.h:254
bool usingTimeArrMode() const
Definition bellhop-woss.h:550
bool using_press_mode
Definition bellhop-woss.h:752
BellhopWoss & setRxMinDepthOffset(double offset)
Definition bellhop-woss.h:226
double getRxMinDepthOffset() const
Definition bellhop-woss.h:412
void initCfgFiles(double curr_frequency, int curr_run)
Definition bellhop-woss.cpp:958
void writeNormalizedSSP(int curr_run)
Definition bellhop-woss.cpp:274
double getTxMinDepthOffset() const
Definition bellhop-woss.h:394
virtual bool initialize() override
Definition bellhop-woss.cpp:856
double rx_max_depth_offset
Definition bellhop-woss.h:680
bool use_thorpe_att
Definition bellhop-woss.h:563
std::string curr_path
Definition bellhop-woss.h:648
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:395
double getTxMaxDepthOffset() const
Definition bellhop-woss.h:400
virtual ~BellhopWoss() override=default
void checkRangeOffsets()
Definition bellhop-woss.cpp:479
virtual bool timeEvolve(const Time &time_value) override
Definition bellhop-woss.cpp:1095
BellhopWoss & setBellhopBinName(const std::string &name)
Definition bellhop-woss.h:310
int total_rays
Definition bellhop-woss.h:703
std::string ssp_file
Definition bellhop-woss.h:613
void writeBathymetryFile()
Definition bellhop-woss.cpp:529
void checkAngles()
Definition bellhop-woss.cpp:515
BellhopWoss & setMaxAngle(double angle)
Definition bellhop-woss.h:282
NormSSPMap randomized_ssp_map
Definition bellhop-woss.h:764
BellhopWoss & setBellhopShdSyntax(BellhopShdSyntax syntax)
Definition bellhop-woss.h:324
void writeHeader(double curr_frequency, int curr_run)
Definition bellhop-woss.h:950
double getBoxRange() const
Definition bellhop-woss.h:472
std::string getBathymetryMethod() const
Definition bellhop-woss.h:520
std::string arr_file
Definition bellhop-woss.h:623
BellhopWoss & setRxMinRangeOffset(double offset)
Definition bellhop-woss.h:240
double box_range
Definition bellhop-woss.h:774
virtual bool initTimeArrResReader(double curr_frequency)
Definition bellhop-woss.cpp:893
int getRaysNumber() const
Definition bellhop-woss.h:448
std::string bathymetry_type
Definition bellhop-woss.h:573
std::string transducer_type
Definition bellhop-woss.h:650
void removeAllCfgFiles()
Definition bellhop-woss.cpp:1028
int total_rx_depths
Definition bellhop-woss.h:670
double rx_max_range_offset
Definition bellhop-woss.h:698
BellhopWoss & setRxTotalRanges(int number)
Definition bellhop-woss.h:261
std::string bellhop_path
Definition bellhop-woss.h:628
void writeBeamPatternFile()
Definition bellhop-woss.cpp:776
BellhopWoss & setBeamOptions(const std::string &options)
Definition bellhop-woss.h:331
BellhopWoss & setTransformSSPDepthSteps(int depth_steps)
Definition bellhop-woss.h:373
BellhopWoss()
Definition bellhop-woss.cpp:73
BellhopWoss & setTxMinDepthOffset(double offset)
Definition bellhop-woss.h:205
bool using_ssp_file
Definition bellhop-woss.h:750
int getRxTotalRanges() const
Definition bellhop-woss.h:442
std::string getBeamOptions() const
Definition bellhop-woss.h:508
void removeCfgFiles(double curr_frequency, int curr_run)
Definition bellhop-woss.cpp:1037
void writeRayOptions()
Definition bellhop-woss.h:985
BellhopWoss & setTotalTransmitters(int sources)
Definition bellhop-woss.h:219
double rx_min_depth_offset
Definition bellhop-woss.h:675
BellhopShdSyntax getBellhopShdSyntax() const
Definition bellhop-woss.h:502
double tx_min_depth_offset
Definition bellhop-woss.h:655
void writeCfgFiles(double curr_frequency, int curr_run)
Definition bellhop-woss.cpp:978
virtual bool isValid() const override
Definition bellhop-woss.cpp:176
static constexpr const char * WOSS_BELLHOP_BIN_NAME
Definition bellhop-woss.h:88
virtual std::unique_ptr< TimeArr > getTimeArr(double frequency, double tx_depth, double rx_depth, double rx_range) const
Definition bellhop-woss.cpp:1075
BellhopWoss & setAltimetryType(const std::string &type)
Definition bellhop-woss.h:359
std::string bellhop_op_mode
Definition bellhop-woss.h:588
void writeReceiver()
Definition bellhop-woss.h:969
BellhopWoss & setRxMaxDepthOffset(double offset)
Definition bellhop-woss.h:233
bool isValidBhMode(const std::string &) const
Definition bellhop-woss.h:932
double getRxMinRangeOffset() const
Definition bellhop-woss.h:424
void writeBeamBlock()
Definition bellhop-woss.h:1001
std::unique_ptr< Transducer > transducer
Definition bellhop-woss.h:738
double getMaxAngle() const
Definition bellhop-woss.h:460
std::string bellhop_bin_name
Definition bellhop-woss.h:633
BellhopWoss & setBellhopArrSyntax(BellhopArrSyntax syntax)
Definition bellhop-woss.h:317
double max_angle
Definition bellhop-woss.h:713
virtual std::unique_ptr< Pressure > getPressure(double frequency, double tx_depth, double rx_depth, double rx_range) const
Definition bellhop-woss.cpp:1065
BellhopArrSyntax getBellhopArrSyntax() const
Definition bellhop-woss.h:496
double getMinAngle() const
Definition bellhop-woss.h:454
int curr_norm_ssp_depth_steps
Definition bellhop-woss.h:728
double bp_add_costant
Definition bellhop-woss.h:748
BellhopWoss & setBhMode(const std::string &mode)
Definition bellhop-woss.cpp:183
virtual void normalizeDbSSP()
Definition bellhop-woss.cpp:211
double getRxMaxDepthOffset() const
Definition bellhop-woss.h:418
BellhopShdSyntax bellhop_shd_syntax
Definition bellhop-woss.h:643
double box_depth
Definition bellhop-woss.h:769
std::string getAltimetryType() const
Definition bellhop-woss.h:526
double bp_horizontal_rotation
Definition bellhop-woss.h:744
BellhopWoss & setMinAngle(double angle)
Definition bellhop-woss.h:275
bool using_time_arrival_mode
Definition bellhop-woss.h:754
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.