#include <ocean_wave_generator.h>
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_generator & | operator= (const ocean_wave_generator &) |
| ocean_wave_generator (const ocean_wave_generator &) | |
| T | 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 |
| T | v |
| T | a |
| T | Lm |
| T | 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 |
Definition at line 60 of file ocean_wave_generator.h.
| ocean_wave_generator< T >::ocean_wave_generator | ( | const ocean_wave_generator< T > & | ) | [private] |
| ocean_wave_generator< T >::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) | |||
| ) | [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.
| ocean_wave_generator< T >::ocean_wave_generator | ( | const ocean_wave_generator< T > & | owg, | |
| int | gridsize, | |||
| int | clearlowfreq = 0 | |||
| ) |
| ocean_wave_generator< T >::~ocean_wave_generator | ( | ) | [inline] |
| ocean_wave_generator& ocean_wave_generator< T >::operator= | ( | const ocean_wave_generator< T > & | ) | [private] |
| 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().
| 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().
| 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().
| 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().
| 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().
| std::complex< T > ocean_wave_generator< T >::h_tilde | ( | Vector & | K, | |
| int | kx, | |||
| int | ky, | |||
| T | 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().
| void ocean_wave_generator< T >::compute_htilde | ( | T | 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().
| void ocean_wave_generator< T >::set_time | ( | T | time | ) | [inline] |
Definition at line 288 of file ocean_wave_generator.h.
References ocean_wave_generator< T >::compute_htilde().
Referenced by Water2::generate().
| 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().
| 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().
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().
Vector ocean_wave_generator< T >::W [private] |
Definition at line 63 of file ocean_wave_generator.h.
Referenced by ocean_wave_generator< T >::phillips().
T ocean_wave_generator< T >::v [private] |
Definition at line 64 of file ocean_wave_generator.h.
Referenced by ocean_wave_generator< T >::phillips().
T ocean_wave_generator< T >::a [private] |
Definition at line 65 of file ocean_wave_generator.h.
Referenced by ocean_wave_generator< T >::phillips().
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().
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().
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().
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().
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().
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().
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().
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().
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().
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().
FFT_PLAN_TYPE ocean_wave_generator< T >::plan3 [private] |
Definition at line 83 of file ocean_wave_generator.h.
1.5.3