32#ifndef WOSS_PROGRAM_DEFINITIONS_H
33#define WOSS_PROGRAM_DEFINITIONS_H
39#ifdef WOSS_MULTITHREAD
62 static constexpr inline int WOSS_MIN_DEPTH = 0;
64 static constexpr inline int WOSS_MAX_DEPTH = INT_MAX;
66 static constexpr inline int WOSS_MIN_RANGE = -INT_MAX;
68 static constexpr inline int WOSS_MAX_RANGE = INT_MAX;
95 Woss(
const CoordZ& tx,
const CoordZ& rx,
const Time& start_t,
const Time& end_t,
double start_freq,
double end_freq,
double freq_step ) ;
135 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 = 0;
145 virtual std::unique_ptr<Pressure>
getPressure(
double frequency,
double tx_depth,
double rx_depth,
double rx_range )
const = 0;
155 virtual std::unique_ptr<TimeArr>
getTimeArr(
double frequency,
double tx_depth,
double rx_depth,
double rx_range )
const = 0;
404#if defined (WOSS_MULTITHREAD)
495#if defined (WOSS_MULTITHREAD)
522 virtual bool mkWorkDir(
double curr_frequency,
int curr_run = 0 );
530 virtual bool rmWorkDir(
double curr_frequency,
int curr_run = 0 );
573 double start_freq,
double end_freq,
double freq_step )
574 :
Woss( tx, rx, start_t, end_t, start_freq, end_freq, freq_step ) { }
3D-Coordinates (lat, long, depth) class definitions and functions library
Definition coordinates-definitions.h:384
a class for time date manipulation
Definition time-definitions.h:83
Woss class with ResReader objects for reading simulated results.
Definition woss.h:553
virtual ~WossResReader() override=default
ResReaderMap res_reader_map
Definition woss.h:590
void clearResReaderMap()
Definition woss.cpp:225
virtual bool initResReader(double curr_frequency)=0
WossResReader(const CoordZ &tx, const CoordZ &rx, const Time &start_t, const Time &end_t, double start_freq, double end_freq, double freq_step)
Definition woss.h:572
Abstract class that provides the interface for initializing and running a channel simulator.
Definition woss.h:76
std::shared_ptr< WossDbManager > db_manager
Definition woss.h:428
Woss & setStartTime(const Time &start_t)
Definition woss.h:247
virtual bool mkWorkDir(double curr_frequency, int curr_run=0)
Definition woss.cpp:146
CoordZ getRxCoordZ() const
Definition woss.h:347
Time getStartTime() const
Definition woss.h:353
double getDistance() const
Definition woss.h:384
Woss & insertFrequencies(double freq_start, double freq_end, double freq_step)
Definition woss.cpp:109
double evolution_time_quantum
Definition woss.h:450
FreqSCRIt freq_rbegin() const
Definition woss.h:309
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 =0
Woss & setCleanWorkDir(bool flag)
Definition woss.h:169
virtual std::unique_ptr< TimeArr > getTimeArr(double frequency, double tx_depth, double rx_depth, double rx_range) const =0
double bearing
Definition woss.h:471
CoordZ tx_coordz
Definition woss.h:455
static std::atomic< int > woss_counter
Definition woss.h:408
int getWossId() const
Definition woss.h:267
FreqSCRIt freq_rend() const
Definition woss.h:315
Woss & setRxCoordZ(const CoordZ &coordz)
Definition woss.h:240
Woss & setFrequencies(const FreqSet &freq_set)
Definition woss.h:206
Woss & setTxCoordZ(const CoordZ &coordz)
Definition woss.h:233
virtual ~Woss()
Definition woss.cpp:101
CoordZ getTxCoordZ() const
Definition woss.h:341
int getTotalRuns() const
Definition woss.h:335
const FreqSet & getFrequencies() const
Definition woss.h:279
Woss & setEndTime(const Time &end_t)
Definition woss.h:254
virtual bool isRunning() const
Definition woss.cpp:220
double getMaxFrequency() const
Definition woss.h:291
std::atomic< bool > has_run_once
Definition woss.h:496
bool debug
Definition woss.h:493
static int woss_counter
Definition woss.h:413
FreqSCIt freq_begin() const
Definition woss.h:297
Woss & clearFrequencies()
Definition woss.h:219
virtual bool initialize()=0
Definition woss.cpp:206
Woss & insertFrequency(double freq)
Definition woss.h:190
Woss()
Definition woss.cpp:47
Time current_time
Definition woss.h:438
FreqSCIt freq_upper_bound(double frequency) const
Definition woss.h:329
FreqSet frequencies
Definition woss.h:465
Time end_time
Definition woss.h:443
Time start_time
Definition woss.h:433
Woss & setWorkDirPath(const std::string &path)
Definition woss.h:176
volatile bool is_running
Definition woss.h:508
Woss & setWossDbManager(const std::shared_ptr< WossDbManager > &ptr)
Definition woss.h:183
bool has_run_once
Definition woss.h:503
double total_great_circle_distance
Definition woss.h:477
FreqSCIt freq_end() const
Definition woss.h:303
double getMinFrequency() const
Definition woss.h:285
Woss & setDebug(bool flag)
Definition woss.h:162
Woss & setEvolutionTimeQuantum(double value)
Definition woss.h:261
double getGreatCircleDistance() const
Definition woss.h:378
virtual std::unique_ptr< Pressure > getPressure(double frequency, double tx_depth, double rx_depth, double rx_range) const =0
int total_runs
Definition woss.h:488
bool usingDebug() const
Definition woss.h:395
std::string work_dir_path
Definition woss.h:423
bool clean_workdir
Definition woss.h:514
std::string getWorkDirPath() const
Definition woss.h:273
std::atomic< bool > is_running
Definition woss.h:501
Woss & setTotalRuns(int runs)
Definition woss.h:226
Time getEndTime() const
Definition woss.h:365
double getBearing() const
Definition woss.h:390
int woss_id
Definition woss.h:418
virtual bool rmWorkDir()
Definition woss.cpp:120
CoordZ rx_coordz
Definition woss.h:460
virtual bool isValid() const =0
double total_distance
Definition woss.h:483
virtual bool timeEvolve(const Time &time_value)=0
Woss & eraseFrequency(double freq)
Definition woss.h:213
double getEvolutionTimeQuantum() const
Definition woss.h:371
Time getCurrentTime() const
Definition woss.h:359
FreqSCIt freq_lower_bound(double frequency) const
Definition woss.h:322
Provides the interface for the woss::Coord and woss::CoordZ classes.
Definition ac-toolbox-arr-asc-reader.h:44
ResReaderMap::iterator RRMIter
Definition woss.h:540
FreqSet::const_reverse_iterator FreqSCRIt
Definition woss.h:60
std::map< double, std::unique_ptr< ResReader > > ResReaderMap
Definition woss.h:539
FreqSet::reverse_iterator FreqSRIt
Definition woss.h:59
FreqSet::iterator FreqSIt
Definition woss.h:57
std::set< double > FreqSet
Definition woss.h:56
ResReaderMap::reverse_iterator RRMRIter
Definition woss.h:541
std::pair< RRMIter, bool > RRMPair
Definition woss.h:544
ResReaderMap::const_iterator RRMCIter
Definition woss.h:542
FreqSet::const_iterator FreqSCIt
Definition woss.h:58
ResReaderMap::const_reverse_iterator RRMCRIter
Definition woss.h:543
Definitions and library for woss::Pressure class.
Provides the interface for woss::ResReader class.
Definitions and library for woss::TimeArr class.
Definitions and library for woss::Time, woss::SimTime, woss::TimeReference and woss::TimeReferenceTcl...