World Ocean Simulation System (WOSS) library
bellhop-creator.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
33#ifndef WOSS_BELLHOP_CREATOR_DEFINITIONS_H
34#define WOSS_BELLHOP_CREATOR_DEFINITIONS_H
35
36
37#include <memory>
38#include <ostream>
40#include "woss-creator.h"
41#include "bellhop-woss.h"
42
43
44namespace woss {
45
51 struct CustomAngles {
52
58 CustomAngles( double min = double(), double max = double() ) : min_angle(min), max_angle(max) { }
59
60 friend std::ostream& operator<<( std::ostream& os, const CustomAngles& instance ) {
61 os << "min angle = " << instance.min_angle << "; max_angle = " << instance.max_angle;
62 return os;
63 }
64
68 double min_angle;
69
73 double max_angle;
74
75 };
76
82 class BellhopCreator : public WossCreator {
83
84 public:
85
90
91 virtual ~BellhopCreator() override = default;
92
101 virtual std::unique_ptr<Woss> const createWoss( const CoordZ& tx, const CoordZ& rx, double start_frequency, double end_frequency ) const override;
102
108 BellhopCreator& setThorpeAttFlag( bool flag ) { use_thorpe_att = flag; return *this; }
109
114 bool getThorpeAttFlag() const { return use_thorpe_att; }
115
123 BellhopCreator& setTotalRangeSteps( int steps, const CoordZ& tx, const CoordZ& rx ) {
124 cctotal_range_steps.replace(steps, tx, rx); return *this; }
125
133 BellhopCreator& setTotalRangeSteps( int steps, const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) {
134 cctotal_range_steps.replace(steps, tx, rx); return *this; }
135
143 cctotal_range_steps.erase(tx, rx); return *this; }
144
151 BellhopCreator& eraseTotalRangeSteps( const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) {
152 cctotal_range_steps.erase(tx, rx); return *this; }
153
160 double getTotalRangeSteps( const CoordZ& tx, const CoordZ& rx ) const {
161 return cctotal_range_steps.get(tx, rx); }
162
169 double getTotalRangeSteps( const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) const {
170 return cctotal_range_steps.get(tx, rx); }
171
179 BellhopCreator& setTxMinDepthOffset( double offset, const CoordZ& tx, const CoordZ& rx ) {
180 cctx_min_depth_offset.replace(offset, tx, rx); return *this; }
181
189 BellhopCreator& setTxMinDepthOffset( double offset, const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
190 cctx_min_depth_offset.replace(offset, tx, rx); return *this; }
191
199 cctx_min_depth_offset.erase(tx, rx); return *this; }
200
207 BellhopCreator& eraseTxMinDepthOffset( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
208 cctx_min_depth_offset.erase(tx, rx); return *this; }
209
216 double getTxMinDepthOffset( const CoordZ& tx, const CoordZ& rx ) const {
217 return cctx_min_depth_offset.get(tx, rx); }
218
225 double getTxMinDepthOffset( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) const {
226 return cctx_min_depth_offset.get(tx, rx); }
227
235 BellhopCreator& setTxMaxDepthOffset( double offset, const CoordZ& tx, const CoordZ& rx ) {
236 cctx_max_depth_offset.replace(offset, tx, rx); return *this; }
237
245 BellhopCreator& setTxMaxDepthOffset( double offset, const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
246 cctx_max_depth_offset.replace(offset, tx, rx); return *this; }
247
255 cctx_max_depth_offset.erase(tx, rx); return *this; }
256
263 BellhopCreator& eraseTxMaxDepthOffset( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
264 cctx_max_depth_offset.erase(tx, rx); return *this; }
265
272 double getTxMaxDepthOffset( const CoordZ& tx, const CoordZ& rx ) const {
273 return cctx_max_depth_offset.get(tx, rx); }
274
281 double getTxMaxDepthOffset( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) const {
282 return cctx_max_depth_offset.get(tx, rx); }
283
291 BellhopCreator& setTotalTransmitters( int sources, const CoordZ& tx, const CoordZ& rx ) {
292 cctotal_transmitters.replace(sources, tx, rx); return *this; }
293
301 BellhopCreator& setTotalTransmitters( int sources, const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) {
302 cctotal_transmitters.replace(sources, tx, rx); return *this; }
303
311 cctotal_transmitters.erase(tx, rx); return *this; }
312
319 BellhopCreator& eraseTotalTransmitters( const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) {
320 cctotal_transmitters.erase(tx, rx); return *this; }
321
328 int getTotalTransmitters( const CoordZ& tx, const CoordZ& rx ) const {
329 return cctotal_transmitters.get(tx, rx); }
330
337 int getTotalTransmitters( const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) const {
338 return cctotal_transmitters.get(tx, rx); }
339
340
348 BellhopCreator& setRxMinDepthOffset( double offset, const CoordZ& tx, const CoordZ& rx ) {
349 ccrx_min_depth_offset.replace(offset, tx, rx); return *this; }
350
358 BellhopCreator& setRxMinDepthOffset( double offset, const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
359 ccrx_min_depth_offset.replace(offset, tx, rx); return *this; }
360
368 ccrx_min_depth_offset.erase(tx, rx); return *this; }
369
376 BellhopCreator& eraseRxMinDepthOffset( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
377 ccrx_min_depth_offset.erase(tx, rx); return *this; }
378
385 double getRxMinDepthOffset( const CoordZ& tx, const CoordZ& rx ) const {
386 return ccrx_min_depth_offset.get(tx, rx); }
387
394 double getRxMinDepthOffset( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) const {
395 return ccrx_min_depth_offset.get(tx, rx); }
396
397
405 BellhopCreator& setRxMaxDepthOffset( double offset, const CoordZ& tx, const CoordZ& rx ) {
406 ccrx_max_depth_offset.replace(offset, tx, rx); return *this; }
407
415 BellhopCreator& setRxMaxDepthOffset( double offset, const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
416 ccrx_max_depth_offset.replace(offset, tx, rx); return *this; }
417
425 ccrx_max_depth_offset.erase(tx, rx); return *this; }
426
433 BellhopCreator& eraseRxMaxDepthOffset( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
434 ccrx_max_depth_offset.erase(tx, rx); return *this; }
435
442 double getRxMaxDepthOffset( const CoordZ& tx, const CoordZ& rx ) const {
443 return ccrx_max_depth_offset.get(tx, rx); }
444
452 double getRxMaxDepthOffset( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) const {
453 return ccrx_max_depth_offset.get(tx, rx); }
454
462 BellhopCreator& setRxMinRangeOffset( double offset, const CoordZ& tx, const CoordZ& rx ) {
463 ccrx_min_range_offset.replace(offset, tx, rx); return *this; }
464
472 BellhopCreator& setRxMinRangeOffset( double offset, const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
473 ccrx_min_range_offset.replace(offset, tx, rx); return *this; }
474
482 ccrx_min_range_offset.erase(tx, rx); return *this; }
483
490 BellhopCreator& eraseRxMinRangeOffset( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
491 ccrx_min_range_offset.erase(tx, rx); return *this; }
492
499 double getRxMinRangeOffset( const CoordZ& tx, const CoordZ& rx ) const {
500 return ccrx_min_range_offset.get(tx, rx); }
501
508 double getRxMinRangeOffset( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) const {
509 return ccrx_min_range_offset.get(tx, rx); }
510
518 BellhopCreator& setRxMaxRangeOffset( double offset, const CoordZ& tx, const CoordZ& rx ) {
519 ccrx_max_range_offset.replace(offset, tx, rx); return *this; }
520
528 BellhopCreator& setRxMaxRangeOffset( double offset, const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
529 ccrx_max_range_offset.replace(offset, tx, rx); return *this; }
530
538 ccrx_max_range_offset.erase(tx, rx); return *this; }
539
546 BellhopCreator& eraseRxMaxRangeOffset( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
547 ccrx_max_range_offset.erase(tx, rx); return *this; }
548
555 double getRxMaxRangeOffset( const CoordZ& tx, const CoordZ& rx ) const {
556 return ccrx_max_range_offset.get(tx, rx); }
557
564 double getRxMaxRangeOffset( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) const {
565 return ccrx_max_range_offset.get(tx, rx); }
566
574 BellhopCreator& setRxTotalDepths( int number, const CoordZ& tx, const CoordZ& rx ) {
575 cctotal_rx_depths.replace(number, tx, rx); return *this; }
576
584 BellhopCreator& setRxTotalDepths( int number, const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) {
585 cctotal_rx_depths.replace(number, tx, rx); return *this; }
586
593 BellhopCreator& eraseRxTotalDepths( const CoordZ& tx, const CoordZ& rx ) {
594 cctotal_rx_depths.erase(tx, rx); return *this; }
595
602 BellhopCreator& eraseRxTotalDepths( const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) {
603 cctotal_rx_depths.erase(tx, rx); return *this; }
604
611 int getRxTotalDepths( const CoordZ& tx, const CoordZ& rx ) const {
612 return cctotal_rx_depths.get(tx, rx); }
613
620 int getRxTotalDepths( const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) const {
621 return cctotal_rx_depths.get(tx, rx); }
622
630 BellhopCreator& setRxTotalRanges( int number, const CoordZ& tx, const CoordZ& rx ) {
631 cctotal_rx_ranges.replace(number, tx, rx); return *this; }
632
640 BellhopCreator& setRxTotalRanges( int number, const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) {
641 cctotal_rx_ranges.replace(number, tx, rx); return *this; }
642
649 BellhopCreator& eraseRxTotalRanges( const CoordZ& tx, const CoordZ& rx ) {
650 cctotal_rx_ranges.erase(tx, rx); return *this; }
651
658 BellhopCreator& eraseRxTotalRanges( const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) {
659 cctotal_rx_ranges.erase(tx, rx); return *this; }
660
667 int getRxTotalRanges( const CoordZ& tx, const CoordZ& rx ) const {
668 return cctotal_rx_ranges.get(tx, rx); }
669
676 int getRxTotalRanges( const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) const {
677 return cctotal_rx_ranges.get(tx, rx); }
678
686 BellhopCreator& setRaysNumber( int number, const CoordZ& tx, const CoordZ& rx ) {
687 cctotal_rays.replace(number, tx, rx); return *this; }
688
696 BellhopCreator& setRaysNumber( int number, const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) {
697 cctotal_rays.replace(number, tx, rx); return *this; }
698
705 BellhopCreator& eraseRaysNumber( const CoordZ& tx, const CoordZ& rx ) {
706 cctotal_rays.erase(tx, rx); return *this; }
707
714 BellhopCreator& eraseRaysNumber( const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) {
715 cctotal_rays.erase(tx, rx); return *this; }
716
723 int getRaysNumber( const CoordZ& tx, const CoordZ& rx ) const {
724 return cctotal_rays.get(tx, rx); }
725
732 int getRaysNumber( const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) const {
733 return cctotal_rays.get(tx, rx); }
734
740 BellhopCreator& setBellhopPath( const std::string& path ) { bellhop_path = path; return *this; }
741
746 std::string getBellhopPath() const { return bellhop_path; }
747
754 bellhop_arr_syntax = syntax; return *this; }
755
761
768 bellhop_shd_syntax = syntax; return *this; }
769
775
784 BellhopCreator& setBeamOptions( const std::string& options, const CoordZ& tx, const CoordZ& rx ) {
785 ccbeam_options.replace(options, tx, rx); return *this; }
786
795 BellhopCreator& setBeamOptions( const std::string& options, const std::shared_ptr<Location>& tx = CCString::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCString::ALL_LOCATIONS ) {
796 ccbeam_options.replace(options, tx, rx); return *this; }
797
804 BellhopCreator& eraseBeamOptions( const CoordZ& tx, const CoordZ& rx ) {
805 ccbeam_options.erase(tx, rx); return *this; }
806
813 BellhopCreator& eraseBeamOptions( const std::shared_ptr<Location>& tx = CCString::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCString::ALL_LOCATIONS ) {
814 ccbeam_options.erase(tx, rx); return *this; }
815
822 std::string getBeamOptions( const CoordZ& tx, const CoordZ& rx ) const {
823 return ccbeam_options.get(tx, rx); }
824
831 std::string getBeamOptions( const std::shared_ptr<Location>& tx = CCString::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCString::ALL_LOCATIONS ) const {
832 return ccbeam_options.get(tx, rx); }
833
842 BellhopCreator& setBhMode( const std::string& options, const CoordZ& tx, const CoordZ& rx ) {
843 ccbellhop_mode.replace(options, tx, rx); return *this; }
844
853 BellhopCreator& setBhMode( const std::string& options, const std::shared_ptr<Location>& tx = CCString::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCString::ALL_LOCATIONS ) {
854 ccbellhop_mode.replace(options, tx, rx); return *this; }
855
862 BellhopCreator& eraseBhMode( const CoordZ& tx, const CoordZ& rx ) {
863 ccbellhop_mode.erase(tx, rx); return *this; }
864
871 BellhopCreator& eraseBhMode( const std::shared_ptr<Location>& tx = CCString::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCString::ALL_LOCATIONS ) {
872 ccbellhop_mode.erase(tx, rx); return *this; }
873
880 std::string getBhMode( const CoordZ& tx, const CoordZ& rx ) const {
881 return ccbellhop_mode.get(tx, rx); }
882
889 std::string getBhMode( const std::shared_ptr<Location>& tx = CCString::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCString::ALL_LOCATIONS ) const {
890 return ccbellhop_mode.get(tx, rx); }
891
900 BellhopCreator& setBathymetryType( const std::string& options, const CoordZ& tx, const CoordZ& rx ) {
901 ccbathymetry_type.replace(options, tx, rx); return *this; }
902
911 BellhopCreator& setBathymetryType( const std::string& options, const std::shared_ptr<Location>& tx = CCString::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCString::ALL_LOCATIONS ) {
912 ccbathymetry_type.replace(options, tx, rx); return *this; }
913
921 ccbathymetry_type.erase(tx, rx); return *this; }
922
929 BellhopCreator& eraseBathymetryType( const std::shared_ptr<Location>& tx = CCString::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCString::ALL_LOCATIONS ) {
930 ccbathymetry_type.erase(tx, rx); return *this; }
931
938 std::string getBathymetryType( const CoordZ& tx, const CoordZ& rx ) const {
939 return ccbathymetry_type.get(tx, rx); }
940
947 std::string getBathymetryType( const std::shared_ptr<Location>& tx = CCString::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCString::ALL_LOCATIONS ) const {
948 return ccbathymetry_type.get(tx, rx); }
949
958 BellhopCreator& setBathymetryMethod( const std::string& options, const CoordZ& tx, const CoordZ& rx ) {
959 ccbathymetry_method.replace(options, tx, rx); return *this; }
960
969 BellhopCreator& setBathymetryMethod( const std::string& options, const std::shared_ptr<Location>& tx = CCString::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCString::ALL_LOCATIONS ) {
970 ccbathymetry_method.replace(options, tx, rx); return *this; }
971
979 ccbathymetry_method.erase(tx, rx); return *this; }
980
987 BellhopCreator& eraseBathymetryMethod( const std::shared_ptr<Location>& tx = CCString::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCString::ALL_LOCATIONS ) {
988 ccbathymetry_method.erase(tx, rx); return *this; }
989
996 std::string getBathymetryMethod( const CoordZ& tx, const CoordZ& rx ) const {
997 return ccbathymetry_method.get(tx, rx); }
998
1005 std::string getBathymetryMethod( const std::shared_ptr<Location>& tx = CCString::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCString::ALL_LOCATIONS ) const {
1006 return ccbathymetry_method.get(tx, rx); }
1007
1016 BellhopCreator& setAltimetryType( const std::string& options, const CoordZ& tx, const CoordZ& rx ) {
1017 ccaltimetry_type.replace(options, tx, rx); return *this; }
1018
1027 BellhopCreator& setAltimetryType( const std::string& options, const std::shared_ptr<Location>& tx = CCString::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCString::ALL_LOCATIONS ) {
1028 ccaltimetry_type.replace(options, tx, rx); return *this; }
1029
1037 ccaltimetry_type.erase(tx, rx); return *this; }
1038
1045 BellhopCreator& eraseAltimetryType( const std::shared_ptr<Location>& tx = CCString::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCString::ALL_LOCATIONS ) {
1046 ccaltimetry_type.erase(tx, rx); return *this; }
1047
1054 std::string getAltimetryType( const CoordZ& tx, const CoordZ& rx ) const {
1055 return ccaltimetry_type.get(tx, rx); }
1056
1063 std::string getAltimetryType( const std::shared_ptr<Location>& tx = CCString::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCString::ALL_LOCATIONS ) const {
1064 return ccaltimetry_type.get(tx, rx); }
1065
1073 BellhopCreator& setAngles( const CustomAngles& angles, const CoordZ& tx, const CoordZ& rx ) {
1074 ccangles_map.replace(angles, tx, rx); return *this; }
1075
1083 BellhopCreator& setAngles( const CustomAngles& angles, const std::shared_ptr<Location>& tx = CCAngles::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCAngles::ALL_LOCATIONS ) {
1084 ccangles_map.replace(angles, tx, rx); return *this; }
1085
1092 CustomAngles getAngles( const CoordZ& tx, const CoordZ& rx ) const { return ccangles_map.get(tx, rx); }
1093
1100 CustomAngles getAngles( const std::shared_ptr<Location>& tx = CCAngles::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCAngles::ALL_LOCATIONS ) const {
1101 return ccangles_map.get(tx, rx); }
1102
1109 BellhopCreator& eraseAngles( const CoordZ& tx, const CoordZ& rx ) { ccangles_map.erase(tx, rx); return *this; }
1110
1117 BellhopCreator& eraseAngles( const std::shared_ptr<Location>& tx = CCAngles::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCAngles::ALL_LOCATIONS ) {
1118 ccangles_map.erase(tx, rx); return *this;
1119 }
1120
1128 BellhopCreator& setBoxDepth( double box_depth, const CoordZ& tx, const CoordZ& rx ) {
1129 ccbox_depth.replace(box_depth, tx, rx); return *this; }
1130
1138 BellhopCreator& setBoxDepth( double box_depth, const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
1139 ccbox_depth.replace(box_depth, tx, rx); return *this; }
1140
1147 BellhopCreator& eraseBoxDepth( const CoordZ& tx, const CoordZ& rx ) {
1148 ccbox_depth.erase(tx, rx); return *this; }
1149
1156 BellhopCreator& eraseBoxDepth( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
1157 ccbox_depth.erase(tx, rx); return *this; }
1158
1165 double getBoxDepth( const CoordZ& tx, const CoordZ& rx ) const {
1166 return ccbox_depth.get(tx, rx); }
1167
1174 double getBoxDepth( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) const {
1175 return ccbox_depth.get(tx, rx); }
1176
1184 BellhopCreator& setBoxRange( double box_range, const CoordZ& tx, const CoordZ& rx ) {
1185 ccbox_range.replace(box_range, tx, rx); return *this; }
1186
1194 BellhopCreator& setBoxRange( double box_range, const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
1195 ccbox_range.replace(box_range, tx, rx); return *this; }
1196
1203 BellhopCreator& eraseBoxRange( const CoordZ& tx, const CoordZ& rx ) {
1204 ccbox_range.erase(tx, rx); return *this; }
1205
1212 BellhopCreator& eraseBoxRange( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
1213 ccbox_range.erase(tx, rx); return *this; }
1214
1221 double getBoxRange( const CoordZ& tx, const CoordZ& rx ) const {
1222 return ccbox_range.get(tx, rx); }
1223
1230 double getBoxRange( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) const {
1231 return ccbox_range.get(tx, rx); }
1232
1240 BellhopCreator& setSspDepthPrecision( double ssp_precision, const CoordZ& tx, const CoordZ& rx ) {
1241 ccssp_depth_precision.replace(ssp_precision, tx, rx); return *this; }
1242
1250 BellhopCreator& setSspDepthPrecision( double ssp_precision, const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
1251 ccssp_depth_precision.replace(ssp_precision, tx, rx); return *this; }
1252
1260 ccssp_depth_precision.erase(tx, rx); return *this; }
1261
1268 BellhopCreator& eraseSspDepthPrecision( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) {
1269 ccssp_depth_precision.erase(tx, rx); return *this; }
1270
1277 double getSspDepthPrecision( const CoordZ& tx, const CoordZ& rx ) const {
1278 return ccssp_depth_precision.get(tx, rx); }
1279
1286 double getSspDepthPrecision( const std::shared_ptr<Location>& tx = CCDouble::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCDouble::ALL_LOCATIONS ) const {
1287 return ccssp_depth_precision.get(tx, rx); }
1288
1296 BellhopCreator& setSspDepthSteps( int ssp_depth_steps, const CoordZ& tx, const CoordZ& rx ) {
1297 ccnormalized_ssp_depth_steps.replace(ssp_depth_steps, tx, rx); return *this; }
1298
1306 BellhopCreator& setSspDepthSteps( int ssp_depth_steps, const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) {
1307 ccnormalized_ssp_depth_steps.replace(ssp_depth_steps, tx, rx); return *this; }
1308
1316 ccnormalized_ssp_depth_steps.erase(tx, rx); return *this; }
1317
1324 BellhopCreator& eraseSspDepthSteps( const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) {
1325 ccnormalized_ssp_depth_steps.erase(tx, rx); return *this; }
1326
1333 int getSspDepthSteps( const CoordZ& tx, const CoordZ& rx ) const {
1334 return ccnormalized_ssp_depth_steps.get(tx, rx); }
1335
1342 int getSspDepthSteps( const std::shared_ptr<Location>& tx = CCInt::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCInt::ALL_LOCATIONS ) const {
1343 return ccnormalized_ssp_depth_steps.get(tx, rx); }
1344
1352 BellhopCreator& setCustomTransducer( const CustomTransducer& type, const CoordZ& tx, const CoordZ& rx ) {
1353 cctransducer.replace(type, tx, rx); return *this; }
1354
1362 BellhopCreator& setCustomTransducer( const CustomTransducer& type, const std::shared_ptr<Location>& tx = CCTransducer::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCTransducer::ALL_LOCATIONS ) {
1363 cctransducer.replace(type, tx, rx); return *this; }
1364
1371 CustomTransducer getCustomTransducer( const CoordZ& tx, const CoordZ& rx ) const {
1372 return cctransducer.get(tx, rx); }
1373
1380 CustomTransducer getCustomTransducer( const std::shared_ptr<Location>& tx = CCTransducer::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCTransducer::ALL_LOCATIONS ) const {
1381 return cctransducer.get(tx, rx); }
1382
1389 BellhopCreator& eraseCustomTransducer( const CoordZ& tx, const CoordZ& rx ) { ccangles_map.erase(tx, rx); return *this; }
1390
1397 BellhopCreator& eraseCustomTransducer( const std::shared_ptr<Location>& tx = CCTransducer::ALL_LOCATIONS, const std::shared_ptr<Location>& rx = CCTransducer::ALL_LOCATIONS ) {
1398 cctransducer.erase(tx, rx); return *this;
1399 }
1400
1405
1407
1409
1410 protected:
1411
1416
1420 std::string bellhop_path;
1421
1426
1431
1436
1441
1446
1451
1456
1461
1466
1471
1476
1481
1486
1491
1496
1504
1509
1514
1519
1524
1529
1534
1539
1544
1550 virtual bool initializeWoss( Woss& woss_ref ) const override;
1551
1557 bool initializeBhWoss( BellhopWoss& woss_ref ) const;
1558
1559 virtual void updateDebugFlag() override;
1560
1561 };
1562
1563}
1564
1565#endif /* WOSS_BELLHOP_CREATOR_DEFINITIONS_H */
1566
Provides the interface for woss::BellhopWoss class.
class that provides correctly initialized BellhopWoss objects
Definition bellhop-creator.h:82
BellhopCreator & eraseTotalTransmitters(const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS)
Definition bellhop-creator.h:319
BellhopCreator & setBathymetryType(const std::string &options, const std::shared_ptr< Location > &tx=CCString::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCString::ALL_LOCATIONS)
Definition bellhop-creator.h:911
CCString ccbeam_options
Definition bellhop-creator.h:1440
BellhopCreator & eraseCustomTransducer(const std::shared_ptr< Location > &tx=CCTransducer::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCTransducer::ALL_LOCATIONS)
Definition bellhop-creator.h:1397
BellhopCreator & eraseBeamOptions(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:804
BellhopCreator & eraseRxMinRangeOffset(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:490
BellhopCreator & setSspDepthSteps(int ssp_depth_steps, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:1296
CCInt cctotal_range_steps
Definition bellhop-creator.h:1465
CCTransducer cctransducer
Definition bellhop-creator.h:1533
BellhopCreator & setSspDepthPrecision(double ssp_precision, const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:1250
BellhopCreator & eraseBhMode(const std::shared_ptr< Location > &tx=CCString::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCString::ALL_LOCATIONS)
Definition bellhop-creator.h:871
double getRxMinRangeOffset(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS) const
Definition bellhop-creator.h:508
virtual void updateDebugFlag() override
Definition bellhop-creator.cpp:75
CCString ccbathymetry_method
Definition bellhop-creator.h:1450
CCDouble cctx_max_depth_offset
Definition bellhop-creator.h:1480
BellhopCreator & eraseAngles(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:1109
std::string getBathymetryType(const std::shared_ptr< Location > &tx=CCString::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCString::ALL_LOCATIONS) const
Definition bellhop-creator.h:947
CCDouble cctx_min_depth_offset
Definition bellhop-creator.h:1475
BellhopCreator & eraseAltimetryType(const std::shared_ptr< Location > &tx=CCString::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCString::ALL_LOCATIONS)
Definition bellhop-creator.h:1045
std::string getBathymetryType(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:938
BellhopCreator & eraseSspDepthPrecision(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:1268
int getRxTotalDepths(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:611
BellhopCreator & eraseTxMinDepthOffset(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:207
BellhopCreator & eraseAltimetryType(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:1036
BellhopCreator & eraseRxTotalRanges(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:649
BellhopArrSyntax getBellhopArrSyntax() const
Definition bellhop-creator.h:760
CCDouble ccssp_depth_precision
Definition bellhop-creator.h:1523
double getRxMinRangeOffset(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:499
virtual bool initializeWoss(Woss &woss_ref) const override
Definition bellhop-creator.cpp:111
CCDouble ccrx_max_depth_offset
Definition bellhop-creator.h:1495
BellhopCreator & eraseBathymetryMethod(const std::shared_ptr< Location > &tx=CCString::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCString::ALL_LOCATIONS)
Definition bellhop-creator.h:987
BellhopCreator & setBhMode(const std::string &options, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:842
CustomAngles getAngles(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:1092
CCInt ccnormalized_ssp_depth_steps
Definition bellhop-creator.h:1528
double getRxMaxDepthOffset(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:442
BellhopCreator & setRxMaxRangeOffset(double offset, const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:528
std::string getBhMode(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:880
double getBoxDepth(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:1165
BellhopCreator & setRxMaxDepthOffset(double offset, const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:415
BellhopShdSyntax getBellhopShdSyntax() const
Definition bellhop-creator.h:774
BellhopArrSyntax bellhop_arr_syntax
Definition bellhop-creator.h:1425
double getRxMaxDepthOffset(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS) const
Definition bellhop-creator.h:452
BellhopCreator & eraseRxTotalDepths(const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS)
Definition bellhop-creator.h:602
BellhopCreator & eraseTxMinDepthOffset(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:198
int getTotalTransmitters(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:328
int getRaysNumber(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:723
double getTxMaxDepthOffset(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:272
BellhopCreator & setRxMaxDepthOffset(double offset, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:405
BellhopCreator & eraseRxMaxDepthOffset(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:424
BellhopCreator & setTxMaxDepthOffset(double offset, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:235
double getSspDepthPrecision(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:1277
BellhopCreator & setBellhopArrSyntax(BellhopArrSyntax syntax)
Definition bellhop-creator.h:753
BellhopCreator & eraseBoxDepth(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:1147
std::string getBeamOptions(const std::shared_ptr< Location > &tx=CCString::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCString::ALL_LOCATIONS) const
Definition bellhop-creator.h:831
BellhopCreator & eraseBathymetryMethod(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:978
BellhopCreator & setTotalRangeSteps(int steps, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:123
BellhopCreator & eraseTotalRangeSteps(const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS)
Definition bellhop-creator.h:151
BellhopCreator & eraseRxMinDepthOffset(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:376
BellhopCreator & setRxTotalRanges(int number, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:630
CCString ccbellhop_mode
Definition bellhop-creator.h:1435
BellhopCreator & setSspDepthPrecision(double ssp_precision, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:1240
double getRxMinDepthOffset(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS) const
Definition bellhop-creator.h:394
BellhopCreator & setRxMinDepthOffset(double offset, const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:358
CustomTransducer getCustomTransducer(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:1371
BellhopCreator & setAngles(const CustomAngles &angles, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:1073
std::string getAltimetryType(const std::shared_ptr< Location > &tx=CCString::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCString::ALL_LOCATIONS) const
Definition bellhop-creator.h:1063
CCString ccaltimetry_type
Definition bellhop-creator.h:1455
BellhopCreator & eraseSspDepthSteps(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:1315
CustomTransducer getCustomTransducer(const std::shared_ptr< Location > &tx=CCTransducer::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCTransducer::ALL_LOCATIONS) const
Definition bellhop-creator.h:1380
BellhopCreator & setBoxRange(double box_range, const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:1194
CCDouble ccbox_depth
Definition bellhop-creator.h:1538
CCDouble ccrx_min_range_offset
Definition bellhop-creator.h:1508
int getRxTotalRanges(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:667
BellhopCreator & setRaysNumber(int number, const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS)
Definition bellhop-creator.h:696
BellhopCreator & eraseRxMinDepthOffset(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:367
CCDouble ccbox_range
Definition bellhop-creator.h:1543
CCAngles ccangles_map
Definition bellhop-creator.h:1460
BellhopCreator & setCustomTransducer(const CustomTransducer &type, const std::shared_ptr< Location > &tx=CCTransducer::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCTransducer::ALL_LOCATIONS)
Definition bellhop-creator.h:1362
BellhopCreator & setBathymetryType(const std::string &options, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:900
CCString ccbathymetry_type
Definition bellhop-creator.h:1445
bool getThorpeAttFlag() const
Definition bellhop-creator.h:114
BellhopCreator & setTotalTransmitters(int sources, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:291
CCDouble ccrx_min_depth_offset
Definition bellhop-creator.h:1490
BellhopCreator & setRxTotalRanges(int number, const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS)
Definition bellhop-creator.h:640
std::string getBhMode(const std::shared_ptr< Location > &tx=CCString::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCString::ALL_LOCATIONS) const
Definition bellhop-creator.h:889
BellhopCreator & eraseTxMaxDepthOffset(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:254
BellhopCreator & eraseRxMaxRangeOffset(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:546
BellhopCreator & setRxTotalDepths(int number, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:574
BellhopCreator & eraseAngles(const std::shared_ptr< Location > &tx=CCAngles::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCAngles::ALL_LOCATIONS)
Definition bellhop-creator.h:1117
BellhopCreator & setBoxDepth(double box_depth, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:1128
BellhopCreator & setAngles(const CustomAngles &angles, const std::shared_ptr< Location > &tx=CCAngles::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCAngles::ALL_LOCATIONS)
Definition bellhop-creator.h:1083
BellhopCreator & eraseRxMaxRangeOffset(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:537
double getTotalRangeSteps(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:160
BellhopCreator & eraseBeamOptions(const std::shared_ptr< Location > &tx=CCString::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCString::ALL_LOCATIONS)
Definition bellhop-creator.h:813
CCInt cctotal_transmitters
Definition bellhop-creator.h:1470
double getRxMinDepthOffset(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:385
BellhopCreator & setTxMinDepthOffset(double offset, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:179
BellhopCreator & setRxTotalDepths(int number, const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS)
Definition bellhop-creator.h:584
BellhopCreator & setRaysNumber(int number, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:686
double getTxMinDepthOffset(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS) const
Definition bellhop-creator.h:225
BellhopCreator & eraseTotalTransmitters(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:310
BellhopCreator & eraseRaysNumber(const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS)
Definition bellhop-creator.h:714
BellhopCreator & setBathymetryMethod(const std::string &options, const std::shared_ptr< Location > &tx=CCString::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCString::ALL_LOCATIONS)
Definition bellhop-creator.h:969
BellhopCreator & setRxMinRangeOffset(double offset, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:462
BellhopCreator & setTotalTransmitters(int sources, const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS)
Definition bellhop-creator.h:301
std::string getBathymetryMethod(const std::shared_ptr< Location > &tx=CCString::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCString::ALL_LOCATIONS) const
Definition bellhop-creator.h:1005
double getTotalRangeSteps(const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS) const
Definition bellhop-creator.h:169
CCInt cctotal_rx_depths
Definition bellhop-creator.h:1485
std::string getBellhopPath() const
Definition bellhop-creator.h:746
BellhopCreator & eraseCustomTransducer(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:1389
double getTxMinDepthOffset(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:216
BellhopCreator & eraseTxMaxDepthOffset(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:263
std::string getBathymetryMethod(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:996
BellhopCreator & eraseBoxRange(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:1203
CustomAngles getAngles(const std::shared_ptr< Location > &tx=CCAngles::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCAngles::ALL_LOCATIONS) const
Definition bellhop-creator.h:1100
BellhopCreator & setBoxRange(double box_range, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:1184
int getRaysNumber(const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS) const
Definition bellhop-creator.h:732
virtual ~BellhopCreator() override=default
BellhopCreator & setRxMinDepthOffset(double offset, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:348
int getRxTotalRanges(const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS) const
Definition bellhop-creator.h:676
BellhopCreator & setTxMinDepthOffset(double offset, const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:189
bool initializeBhWoss(BellhopWoss &woss_ref) const
Definition bellhop-creator.cpp:117
int getSspDepthSteps(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:1333
bool use_thorpe_att
Definition bellhop-creator.h:1415
double getTxMaxDepthOffset(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS) const
Definition bellhop-creator.h:281
double getBoxDepth(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS) const
Definition bellhop-creator.h:1174
double getBoxRange(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:1221
BellhopCreator & eraseBoxRange(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:1212
double getRxMaxRangeOffset(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:555
CCInt cctotal_rx_ranges
Definition bellhop-creator.h:1503
double getSspDepthPrecision(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS) const
Definition bellhop-creator.h:1286
BellhopCreator & eraseBhMode(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:862
int getTotalTransmitters(const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS) const
Definition bellhop-creator.h:337
BellhopCreator & eraseBoxDepth(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:1156
BellhopShdSyntax bellhop_shd_syntax
Definition bellhop-creator.h:1430
std::string getBeamOptions(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:822
double getBoxRange(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS) const
Definition bellhop-creator.h:1230
BellhopCreator & setBathymetryMethod(const std::string &options, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:958
BellhopCreator()
Definition bellhop-creator.cpp:41
BellhopCreator & setBeamOptions(const std::string &options, const std::shared_ptr< Location > &tx=CCString::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCString::ALL_LOCATIONS)
Definition bellhop-creator.h:795
int getRxTotalDepths(const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS) const
Definition bellhop-creator.h:620
BellhopCreator & eraseBathymetryType(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:920
BellhopCreator & eraseSspDepthSteps(const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS)
Definition bellhop-creator.h:1324
std::string getAltimetryType(const CoordZ &tx, const CoordZ &rx) const
Definition bellhop-creator.h:1054
BellhopCreator & eraseRaysNumber(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:705
BellhopCreator & setAltimetryType(const std::string &options, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:1016
BellhopCreator & setAltimetryType(const std::string &options, const std::shared_ptr< Location > &tx=CCString::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCString::ALL_LOCATIONS)
Definition bellhop-creator.h:1027
BellhopCreator & eraseRxMaxDepthOffset(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:433
int getSspDepthSteps(const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS) const
Definition bellhop-creator.h:1342
BellhopCreator & setBeamOptions(const std::string &options, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:784
std::string bellhop_path
Definition bellhop-creator.h:1420
BellhopCreator & setRxMinRangeOffset(double offset, const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:472
BellhopCreator & setBhMode(const std::string &options, const std::shared_ptr< Location > &tx=CCString::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCString::ALL_LOCATIONS)
Definition bellhop-creator.h:853
BellhopCreator & setRxMaxRangeOffset(double offset, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:518
BellhopCreator & eraseBathymetryType(const std::shared_ptr< Location > &tx=CCString::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCString::ALL_LOCATIONS)
Definition bellhop-creator.h:929
CCDouble ccrx_max_range_offset
Definition bellhop-creator.h:1513
BellhopCreator & setBellhopShdSyntax(BellhopShdSyntax syntax)
Definition bellhop-creator.h:767
BellhopCreator & eraseTotalRangeSteps(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:142
BellhopCreator & eraseRxTotalRanges(const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS)
Definition bellhop-creator.h:658
CCInt cctotal_rays
Definition bellhop-creator.h:1518
BellhopCreator & setCustomTransducer(const CustomTransducer &type, const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:1352
BellhopCreator & setSspDepthSteps(int ssp_depth_steps, const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS)
Definition bellhop-creator.h:1306
virtual std::unique_ptr< Woss > const createWoss(const CoordZ &tx, const CoordZ &rx, double start_frequency, double end_frequency) const override
Definition bellhop-creator.cpp:101
BellhopCreator & setBoxDepth(double box_depth, const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:1138
BellhopCreator & eraseSspDepthPrecision(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:1259
BellhopCreator & setTotalRangeSteps(int steps, const std::shared_ptr< Location > &tx=CCInt::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCInt::ALL_LOCATIONS)
Definition bellhop-creator.h:133
double getRxMaxRangeOffset(const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS) const
Definition bellhop-creator.h:564
BellhopCreator & setTxMaxDepthOffset(double offset, const std::shared_ptr< Location > &tx=CCDouble::ALL_LOCATIONS, const std::shared_ptr< Location > &rx=CCDouble::ALL_LOCATIONS)
Definition bellhop-creator.h:245
BellhopCreator & setBellhopPath(const std::string &path)
Definition bellhop-creator.h:740
BellhopCreator & eraseRxMinRangeOffset(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:481
BellhopCreator & setThorpeAttFlag(bool flag)
Definition bellhop-creator.h:108
BellhopCreator & eraseRxTotalDepths(const CoordZ &tx, const CoordZ &rx)
Definition bellhop-creator.h:593
Implempentation of ACToolboxWoss for Bellhop raytracing program.
Definition bellhop-woss.h:84
3D-Coordinates (lat, long, depth) class definitions and functions library
Definition coordinates-definitions.h:384
Full specialization for woss::CustomTransducer.
Definition woss-creator-container.h:558
void erase(const std::shared_ptr< Location > &tx, const std::shared_ptr< Location > &rx)
Definition woss-creator-container.h:737
void replace(const CustomTransducer &data, const std::shared_ptr< Location > &tx, const std::shared_ptr< Location > &rx)
Definition woss-creator-container.h:773
CustomTransducer get(const std::shared_ptr< Location > &tx, const std::shared_ptr< Location > &rx) const
static std::shared_ptr< Location > ALL_LOCATIONS
Definition woss-creator-container.h:562
Data get(const std::shared_ptr< Location > &tx, const std::shared_ptr< Location > &rx) const
Definition woss-creator-container.cpp:153
void replace(const Data &data, const std::shared_ptr< Location > &tx, const std::shared_ptr< Location > &rx)
Definition woss-creator-container.h:533
static std::shared_ptr< Location > ALL_LOCATIONS
Definition woss-creator-container.h:119
void erase(const std::shared_ptr< Location > &tx, const std::shared_ptr< Location > &rx)
Definition woss-creator-container.h:501
Abstract class that provides correctly initialized Woss objects.
Definition woss-creator.h:53
Abstract class that provides the interface for initializing and running a channel simulator.
Definition woss.h:76
Definition ac-toolbox-arr-asc-reader.h:44
BellhopArrSyntax
Definition bellhop-woss.h:63
BellhopShdSyntax
Definition bellhop-woss.h:73
Bellhop min max angles.
Definition bellhop-creator.h:51
double min_angle
Definition bellhop-creator.h:68
double max_angle
Definition bellhop-creator.h:73
friend std::ostream & operator<<(std::ostream &os, const CustomAngles &instance)
Definition bellhop-creator.h:60
CustomAngles(double min=double(), double max=double())
Definition bellhop-creator.h:58
Initial set up of a transducer.
Definition woss-creator-container.h:52
Provides the interface for woss::WossCreatorContainer class.
Provides the interface for woss::WossCreator class.