ocean_wave_generator< T > Class Template Reference

A generator class for ocean wave height data using a statistical model and the FFT. More...

#include <ocean_wave_generator.h>

List of all members.

Public Member Functions

 ocean_wave_generator (int gridsize, Vector &winddir, T windspeed=T(20.0), T waveheight=T(0.0001), T tilesize=T(100.0), T cycletime=T(10.0))
 ocean_wave_generator (const ocean_wave_generator< T > &owg, int gridsize, int clearlowfreq=0)
void set_time (T time)
void compute_heights (Water2Points &waveheights) const
void compute_displacements (const T &scalefac, Water2Points &wavedisplacements) const
 ~ocean_wave_generator ()

Private Member Functions

ocean_wave_generatoroperator= (const ocean_wave_generator &)
 ocean_wave_generator (const ocean_wave_generator &)
phillips (Vector &K) const
std::complex< T > h0_tilde (Vector &K) const
void compute_h0tilde ()
std::complex< T > h_tilde (Vector &K, int kx, int ky, T time) const
void compute_htilde (T time)

Static Private Member Functions

static T myrnd ()
static std::complex< T > gaussrand ()

Private Attributes

int N
Vector W
v
a
Lm
w0
std::vector
< std::complex< T > > 
h0tilde
std::vector
< std::complex< T > > 
htilde
FFT_COMPLEX_TYPE * fft_in
FFT_COMPLEX_TYPE * fft_in2
FFT_REAL_TYPE * fft_out
FFT_REAL_TYPE * fft_out2
FFT_PLAN_TYPE plan
FFT_PLAN_TYPE plan2
FFT_PLAN_TYPE plan3


Detailed Description

template<class T>
class ocean_wave_generator< T >

A generator class for ocean wave height data using a statistical model and the FFT.

Definition at line 60 of file ocean_wave_generator.h.


Constructor & Destructor Documentation

template<class T>
ocean_wave_generator< T >::ocean_wave_generator ( const ocean_wave_generator< T > &   )  [private]

template<class T>
ocean_wave_generator< T >::ocean_wave_generator ( int  gridsize,
Vector winddir,
windspeed = T(20.0),
waveheight = T(0.0001),
tilesize = T(100.0),
cycletime = T(10.0) 
) [inline]

Definition at line 206 of file ocean_wave_generator.h.

References ocean_wave_generator< T >::compute_h0tilde(), FFT_COMPLEX_TYPE, FFT_CREATE_PLAN, ocean_wave_generator< T >::fft_in, ocean_wave_generator< T >::fft_in2, ocean_wave_generator< T >::fft_out, ocean_wave_generator< T >::fft_out2, FFT_REAL_TYPE, ocean_wave_generator< T >::h0tilde, ocean_wave_generator< T >::htilde, ocean_wave_generator< T >::N, ocean_wave_generator< T >::plan, and ocean_wave_generator< T >::plan2.

template<class T>
ocean_wave_generator< T >::ocean_wave_generator ( const ocean_wave_generator< T > &  owg,
int  gridsize,
int  clearlowfreq = 0 
)

template<class T>
ocean_wave_generator< T >::~ocean_wave_generator (  )  [inline]

Definition at line 277 of file ocean_wave_generator.h.

References FFT_DELETE_PLAN, ocean_wave_generator< T >::fft_in, ocean_wave_generator< T >::fft_in2, ocean_wave_generator< T >::fft_out, ocean_wave_generator< T >::fft_out2, ocean_wave_generator< T >::plan, and ocean_wave_generator< T >::plan2.


Member Function Documentation

template<class T>
ocean_wave_generator& ocean_wave_generator< T >::operator= ( const ocean_wave_generator< T > &   )  [private]

template<class T>
T ocean_wave_generator< T >::myrnd (  )  [inline, static, private]

Definition at line 109 of file ocean_wave_generator.h.

Referenced by ocean_wave_generator< T >::gaussrand().

template<class T>
std::complex< T > ocean_wave_generator< T >::gaussrand (  )  [inline, static, private]

Definition at line 115 of file ocean_wave_generator.h.

References ocean_wave_generator< T >::myrnd().

Referenced by ocean_wave_generator< T >::h0_tilde().

template<class T>
T ocean_wave_generator< T >::phillips ( Vector K  )  const [inline, private]

Definition at line 128 of file ocean_wave_generator.h.

References ocean_wave_generator< T >::a, Vector::dotP(), GRAVITY, Vector::MagnitudeSquared(), ocean_wave_generator< T >::v, and ocean_wave_generator< T >::W.

Referenced by ocean_wave_generator< T >::h0_tilde().

template<class T>
std::complex< T > ocean_wave_generator< T >::h0_tilde ( Vector K  )  const [inline, private]

Definition at line 151 of file ocean_wave_generator.h.

References ocean_wave_generator< T >::gaussrand(), and ocean_wave_generator< T >::phillips().

Referenced by ocean_wave_generator< T >::compute_h0tilde().

template<class T>
void ocean_wave_generator< T >::compute_h0tilde (  )  [inline, private]

Definition at line 163 of file ocean_wave_generator.h.

References ocean_wave_generator< T >::h0_tilde(), ocean_wave_generator< T >::h0tilde, ocean_wave_generator< T >::Lm, M_PI, and ocean_wave_generator< T >::N.

Referenced by ocean_wave_generator< T >::ocean_wave_generator().

template<class T>
std::complex< T > ocean_wave_generator< T >::h_tilde ( Vector K,
int  kx,
int  ky,
time 
) const [inline, private]

Definition at line 180 of file ocean_wave_generator.h.

References GRAVITY, ocean_wave_generator< T >::h0tilde, Vector::Magnitude(), ocean_wave_generator< T >::N, and ocean_wave_generator< T >::w0.

Referenced by ocean_wave_generator< T >::compute_htilde().

template<class T>
void ocean_wave_generator< T >::compute_htilde ( time  )  [inline, private]

Definition at line 194 of file ocean_wave_generator.h.

References ocean_wave_generator< T >::h_tilde(), ocean_wave_generator< T >::htilde, ocean_wave_generator< T >::Lm, M_PI, and ocean_wave_generator< T >::N.

Referenced by ocean_wave_generator< T >::set_time().

template<class T>
void ocean_wave_generator< T >::set_time ( time  )  [inline]

Definition at line 288 of file ocean_wave_generator.h.

References ocean_wave_generator< T >::compute_htilde().

Referenced by Water2::generate().

template<class T>
void ocean_wave_generator< T >::compute_heights ( Water2Points waveheights  )  const [inline]

Definition at line 294 of file ocean_wave_generator.h.

References FFT_EXECUTE_PLAN, ocean_wave_generator< T >::fft_in, ocean_wave_generator< T >::fft_out, Water2Points::getPoint(), ocean_wave_generator< T >::htilde, ocean_wave_generator< T >::N, and ocean_wave_generator< T >::plan.

Referenced by Water2::generate().

template<class T>
void ocean_wave_generator< T >::compute_displacements ( const T &  scalefac,
Water2Points wavedisplacements 
) const [inline]

Definition at line 389 of file ocean_wave_generator.h.

References FFT_EXECUTE_PLAN, ocean_wave_generator< T >::fft_in, ocean_wave_generator< T >::fft_in2, ocean_wave_generator< T >::fft_out, ocean_wave_generator< T >::fft_out2, Water2Points::getPoint(), ocean_wave_generator< T >::htilde, Vector::Magnitude(), ocean_wave_generator< T >::N, ocean_wave_generator< T >::plan, and ocean_wave_generator< T >::plan2.

Referenced by Water2::generate().


Member Data Documentation

template<class T>
int ocean_wave_generator< T >::N [private]

Definition at line 62 of file ocean_wave_generator.h.

Referenced by ocean_wave_generator< T >::compute_displacements(), ocean_wave_generator< T >::compute_h0tilde(), ocean_wave_generator< T >::compute_heights(), ocean_wave_generator< T >::compute_htilde(), ocean_wave_generator< T >::h_tilde(), and ocean_wave_generator< T >::ocean_wave_generator().

template<class T>
Vector ocean_wave_generator< T >::W [private]

Definition at line 63 of file ocean_wave_generator.h.

Referenced by ocean_wave_generator< T >::phillips().

template<class T>
T ocean_wave_generator< T >::v [private]

Definition at line 64 of file ocean_wave_generator.h.

Referenced by ocean_wave_generator< T >::phillips().

template<class T>
T ocean_wave_generator< T >::a [private]

Definition at line 65 of file ocean_wave_generator.h.

Referenced by ocean_wave_generator< T >::phillips().

template<class T>
T ocean_wave_generator< T >::Lm [private]

Definition at line 66 of file ocean_wave_generator.h.

Referenced by ocean_wave_generator< T >::compute_h0tilde(), and ocean_wave_generator< T >::compute_htilde().

template<class T>
T ocean_wave_generator< T >::w0 [private]

Definition at line 67 of file ocean_wave_generator.h.

Referenced by ocean_wave_generator< T >::h_tilde().

template<class T>
std::vector<std::complex<T> > ocean_wave_generator< T >::h0tilde [private]

Definition at line 68 of file ocean_wave_generator.h.

Referenced by ocean_wave_generator< T >::compute_h0tilde(), ocean_wave_generator< T >::h_tilde(), and ocean_wave_generator< T >::ocean_wave_generator().

template<class T>
std::vector<std::complex<T> > ocean_wave_generator< T >::htilde [private]

Definition at line 69 of file ocean_wave_generator.h.

Referenced by ocean_wave_generator< T >::compute_displacements(), ocean_wave_generator< T >::compute_heights(), ocean_wave_generator< T >::compute_htilde(), and ocean_wave_generator< T >::ocean_wave_generator().

template<class T>
FFT_COMPLEX_TYPE* ocean_wave_generator< T >::fft_in [private]

Definition at line 81 of file ocean_wave_generator.h.

Referenced by ocean_wave_generator< T >::compute_displacements(), ocean_wave_generator< T >::compute_heights(), ocean_wave_generator< T >::ocean_wave_generator(), and ocean_wave_generator< T >::~ocean_wave_generator().

template<class T>
FFT_COMPLEX_TYPE * ocean_wave_generator< T >::fft_in2 [private]

Definition at line 81 of file ocean_wave_generator.h.

Referenced by ocean_wave_generator< T >::compute_displacements(), ocean_wave_generator< T >::ocean_wave_generator(), and ocean_wave_generator< T >::~ocean_wave_generator().

template<class T>
FFT_REAL_TYPE* ocean_wave_generator< T >::fft_out [private]

Definition at line 82 of file ocean_wave_generator.h.

Referenced by ocean_wave_generator< T >::compute_displacements(), ocean_wave_generator< T >::compute_heights(), ocean_wave_generator< T >::ocean_wave_generator(), and ocean_wave_generator< T >::~ocean_wave_generator().

template<class T>
FFT_REAL_TYPE * ocean_wave_generator< T >::fft_out2 [private]

Definition at line 82 of file ocean_wave_generator.h.

Referenced by ocean_wave_generator< T >::compute_displacements(), ocean_wave_generator< T >::ocean_wave_generator(), and ocean_wave_generator< T >::~ocean_wave_generator().

template<class T>
FFT_PLAN_TYPE ocean_wave_generator< T >::plan [private]

Definition at line 83 of file ocean_wave_generator.h.

Referenced by ocean_wave_generator< T >::compute_displacements(), ocean_wave_generator< T >::compute_heights(), ocean_wave_generator< T >::ocean_wave_generator(), and ocean_wave_generator< T >::~ocean_wave_generator().

template<class T>
FFT_PLAN_TYPE ocean_wave_generator< T >::plan2 [private]

Definition at line 83 of file ocean_wave_generator.h.

Referenced by ocean_wave_generator< T >::compute_displacements(), ocean_wave_generator< T >::ocean_wave_generator(), and ocean_wave_generator< T >::~ocean_wave_generator().

template<class T>
FFT_PLAN_TYPE ocean_wave_generator< T >::plan3 [private]

Definition at line 83 of file ocean_wave_generator.h.


The documentation for this class was generated from the following file:
Generated on Mon Feb 16 15:15:04 2009 for Scorched3D by  doxygen 1.5.3