54 using NormSSPMap = std::map< double, std::unique_ptr<SSP> >;
58 using NSMCRIter = NormSSPMap::const_reverse_iterator;
140 virtual bool run()
override;
153 virtual bool isValid()
const override;
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;
175 virtual std::unique_ptr<Pressure>
getPressure(
double frequency,
double tx_depth,
double rx_depth,
double rx_range )
const;
185 virtual std::unique_ptr<TimeArr>
getTimeArr(
double frequency,
double tx_depth,
double rx_depth,
double rx_range )
const;
779 void initBox(
double depth,
double range );
786 void initCfgFiles(
double curr_frequency,
int curr_run );
816 void writeHeader(
double curr_frequency,
int curr_run );
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;
892 void checkDepthOffsets(
const CoordZ& coords,
double& min_offset,
double& max_offset,
double min_depth_value,
double max_depth_value );
909 return ( mode ==
"a" || mode ==
"A" || mode ==
"C" || mode ==
"I" || mode ==
"S" );
921 f_out <<
"\'A*\' 0.0" << std::setw(30) <<
"! BOTTOM TYPE" << std::endl
923 <<
sediment_map.begin()->second->getType() <<
" BOTTOM TYPE " << std::endl;
927 f_out.precision(WOSS_DECIMAL_PRECISION);
928 f_out <<
"\'BELLHOP - woss id = " <<
woss_id <<
"; run = " << curr_run
932 << curr_frequency << std::setw(30) <<
"! FREQUENCY [HZ]" << std::endl
933 << 1 << std::setw(30) <<
"! NMEDIA" << std::endl;
942 <<
" " <<
"/" << std::setw(30) <<
"! SOURCES' DEPTHS" << std::endl;
951 << std::setw(30) <<
"! RX'S DEPTHS" << std::endl;
958 << std::setw(30) <<
"! RX'S RANGES" << std::endl;
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;
974 <<
"! RAY-STEP , BOX DEPTH, BOX RANGE" << std::endl;
978 f_out <<
"\'MS\' 1.0 100.0 0," << std::endl <<
"3 5" << std::endl;
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 ©)=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 ©)=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_SYNTAX_1
@ BELLHOP_CREATOR_SHD_FILE_SYNTAX_0
@ 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.