5 #ifndef USML_WAVEQ3D_SPREADING_HYBRID_GAUSSIAN_H
6 #define USML_WAVEQ3D_SPREADING_HYBRID_GAUSSIAN_H
8 #include <usml/waveq3d/spreading_model.h>
13 using namespace usml::ocean ;
138 inline vector<double>
gaussian(
double d,
double w,
double A) {
139 _beam_width = _spread + OVERLAP * OVERLAP * w * w ;
141 exp( (-0.5*d*d) / _beam_width ),
142 sqrt(_beam_width) ) * A ;
158 virtual const vector<double>& intensity(
159 const wposition1& location,
unsigned de,
unsigned az,
160 const vector<double>& offset,
const vector<double>& distance ) ;
175 void intensity_de(
unsigned de,
unsigned az,
176 const vector<double>& offset,
const vector<double>& distance ) ;
189 void intensity_az(
unsigned de,
unsigned az,
190 const vector<double>& offset,
const vector<double>& distance ) ;
205 double width_de(
unsigned de,
unsigned az,
const vector<double>& offset ) ;
220 double width_az(
unsigned de,
unsigned az,
const vector<double>& offset ) ;
vector< double > _intensity_az
Intensity contribution in azimuthal direction.
Definition: spreading_hybrid_gaussian.h:63
Definition: spreading_model.h:21
vector< double > _norm_de
Normalization in depression/elevation direction.
Definition: spreading_hybrid_gaussian.h:51
vector< double > _intensity_de
Intensity contribution in D/E direction.
Definition: spreading_hybrid_gaussian.h:60
BOOST_UBLAS_INLINE matrix_unary1_traits< E, scalar_exp< typename E::value_type > >::result_type exp(const matrix_expression< E > &e)
Exponential of a matrix.
Definition: matrix_math.h:503
Wavefront propagator for the WaveQ3D model.
Definition: wave_queue.h:63
virtual ~spreading_hybrid_gaussian()
Virtual destructor.
Definition: spreading_hybrid_gaussian.h:112
vector< double > gaussian(double d, double w, double A)
Compute the Gaussian contribution from a single wavefront cell.
Definition: spreading_hybrid_gaussian.h:138
vector< double > _beam_width
Combination of cell width and spreading.
Definition: spreading_hybrid_gaussian.h:57
matrix< double > _norm_az
Normalization in azimuthal direction.
Definition: spreading_hybrid_gaussian.h:54
static const double OVERLAP
Minimum percentage that each Gaussian beam can be expected spread into neighboring beams...
Definition: spreading_hybrid_gaussian.h:80
static const double SPREADING_WIDTH
Number of wavelengths that each Gaussian beam can be expected spread into neighboring beams...
Definition: spreading_hybrid_gaussian.h:72
World location in geodetic earth coordinates (latitude, longitude, and altitude). ...
Definition: wposition1.h:23
static const double THRESHOLD
Limits the extent of the search for Gaussian beam contributions.
Definition: spreading_hybrid_gaussian.h:87
BOOST_UBLAS_INLINE matrix_unary1_traits< E, scalar_sqrt< typename E::value_type > >::result_type sqrt(const matrix_expression< E > &e)
Square root of a matrix.
Definition: matrix_math.h:296
Definition: spreading_hybrid_gaussian.h:44
matrix< bool > _duplicate
Definition: spreading_hybrid_gaussian.h:65