54 using NormSSPMap = std::map< double, std::unique_ptr<SSP> >;
58 using NSMCRIter = NormSSPMap::const_reverse_iterator;
146 virtual bool run()
override;
159 virtual bool isValid()
const override;
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;
181 virtual std::unique_ptr<Pressure>
getPressure(
double frequency,
double tx_depth,
double rx_depth,
double rx_range )
const;
191 virtual std::unique_ptr<TimeArr>
getTimeArr(
double frequency,
double tx_depth,
double rx_depth,
double rx_range )
const;
803 void initBox(
double depth,
double range );
810 void initCfgFiles(
double curr_frequency,
int curr_run );
840 void writeHeader(
double curr_frequency,
int curr_run );
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;
916 void checkDepthOffsets(
const CoordZ& coords,
double& min_offset,
double& max_offset,
double min_depth_value,
double max_depth_value );
933 return ( mode ==
"a" || mode ==
"A" || mode ==
"C" || mode ==
"I" || mode ==
"S" );
945 f_out <<
"\'A*\' 0.0" << std::setw(30) <<
"! BOTTOM TYPE" << std::endl
947 <<
sediment_map.begin()->second->getType() <<
" BOTTOM TYPE " << std::endl;
951 f_out.precision(WOSS_DECIMAL_PRECISION);
952 f_out <<
"\'BELLHOP - woss id = " <<
woss_id <<
"; run = " << curr_run
956 << curr_frequency << std::setw(30) <<
"! FREQUENCY [HZ]" << std::endl
957 << 1 << std::setw(30) <<
"! NMEDIA" << std::endl;
966 <<
" " <<
"/" << std::setw(30) <<
"! SOURCES' DEPTHS" << std::endl;
975 << std::setw(30) <<
"! RX'S DEPTHS" << std::endl;
982 << std::setw(30) <<
"! RX'S RANGES" << std::endl;
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;
998 <<
"! RAY-STEP , BOX DEPTH, BOX RANGE" << std::endl;
1002 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: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 ©)=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 ©)=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_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.