21 #ifndef UAN_PROP_MODEL_H 
   22 #define UAN_PROP_MODEL_H 
   24 #include "ns3/object.h" 
   25 #include "ns3/mobility-model.h" 
   26 #include "ns3/nstime.h" 
   55   Tap (
Time delay, std::complex<double> amp);
 
   61   std::complex<double> 
GetAmp (
void) 
const;
 
   97   typedef std::vector<Tap>::const_iterator 
Iterator;
 
  108   UanPdp (std::vector<Tap> taps, 
Time resolution);
 
  115   UanPdp (std::vector<std::complex<double > > arrivals, 
Time resolution);
 
  122   UanPdp (std::vector<double> arrivals, 
Time resolution);
 
  136   void SetTap (std::complex<double> arrival, uint32_t index);
 
  160   Iterator 
GetEnd (
void) 
const;
 
  320   virtual void Clear (
void);
 
Holds PDP Tap information (amplitude and delay) 
 
~UanPdp()
Dummy destructor, see DoDispose. 
 
std::istream & operator>>(std::istream &is, Angles &a)
initialize a struct Angles from input 
 
std::complex< double > SumTapsC(Time begin, Time end) const 
Compute the coherent sum of tap amplitudes between a start and end time. 
 
Simulation virtual time values and global simulation resolution. 
 
std::vector< Tap >::const_iterator Iterator
Convenience iterator typedef. 
 
uint32_t GetNTaps(void) const 
Get the number of taps. 
 
friend std::istream & operator>>(std::istream &is, UanPdp &pdp)
Reads in list of arrivals from stream is. 
 
friend std::ostream & operator<<(std::ostream &os, const UanPdp &pdp)
Writes PDP to stream as list of arrivals. 
 
static UanPdp CreateImpulsePdp(void)
Get a unit impulse PDP at time 0. 
 
virtual void Clear(void)
Clear all pointer references. 
 
Base class for implemented underwater propagation models. 
 
std::vector< Tap > m_taps
The vector of Taps. 
 
double SumTapsFromMaxNc(Time delay, Time duration) const 
Compute the non-coherent sum of tap amplitudes starting after a delay from the maximum amplitude for ...
 
virtual UanPdp GetPdp(Ptr< MobilityModel > a, Ptr< MobilityModel > b, UanTxMode mode)=0
Get the PDP for the path between two nodes. 
 
UanPdp()
Create empty PDP object. 
 
void SetTap(std::complex< double > arrival, uint32_t index)
Set the arrival value for a tap. 
 
Time m_resolution
The time resolution. 
 
Tap()
Default constructor. 
 
virtual Time GetDelay(Ptr< MobilityModel > a, Ptr< MobilityModel > b, UanTxMode mode)=0
Finds propagation delay between nodes a and b. 
 
The power delay profile returned by propagation models. 
 
std::complex< double > GetAmp(void) const 
Get the complex amplitude of arrival. 
 
Abstraction of packet modulation information. 
 
void SetResolution(Time resolution)
Set the time duration (resolution) between arrivals. 
 
void SetNTaps(uint32_t nTaps)
Resize the tap vector. 
 
std::ostream & operator<<(std::ostream &os, const Angles &a)
print a struct Angles to output 
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
Time GetDelay(void) const 
Get the delay time, usually from first arrival of signal. 
 
Time GetResolution(void) const 
Get the delay time resolution (time duration between arrivals). 
 
Iterator GetEnd(void) const 
Get the end of the tap list (one beyond the last entry). 
 
virtual void DoDispose(void)
Destructor implementation. 
 
Time m_delay
The time delay. 
 
std::complex< double > SumTapsFromMaxC(Time delay, Time duration) const 
Compute the coherent sum of tap amplitudes starting after a delay from the maximum amplitude for a to...
 
A base class which provides memory management and object aggregation. 
 
Iterator GetBegin(void) const 
Get the beginning of the tap vector. 
 
const Tap & GetTap(uint32_t i) const 
Get the Tap at the specified delay index. 
 
double SumTapsNc(Time begin, Time end) const 
Compute the non-coherent sum of tap amplitudes between a start and end time. 
 
virtual double GetPathLossDb(Ptr< MobilityModel > a, Ptr< MobilityModel > b, UanTxMode txMode)=0
Computes pathloss between nodes a and b. 
 
static TypeId GetTypeId(void)
Register this type. 
 
a unique identifier for an interface. 
 
std::complex< double > m_amplitude
The amplitude.