00001
00005 #pragma once
00006
00007 #include <usml/waveq3d/wave_queue.h>
00008
00009 namespace usml {
00010 namespace waveq3d {
00011
00012 using namespace usml::ocean ;
00013 class wave_queue ;
00014
00019 class USML_DECLSPEC ode_integ {
00020
00021 friend class wave_queue ;
00022 friend class reflection_model ;
00023
00024 private:
00025
00034 static void rk1_pos(
00035 double dt, wave_front *y0, wave_front *y1, bool no_alias=true ) ;
00036
00045 static void rk1_ndir( double dt, wave_front *y0, wave_front *y1,
00046 bool no_alias=true ) ;
00047
00057 static void rk2_pos( double dt, wave_front *y0, wave_front *y1,
00058 wave_front *y2, bool no_alias=true ) ;
00059
00069 static void rk2_ndir( double dt, wave_front *y0, wave_front *y1,
00070 wave_front *y2, bool no_alias=true ) ;
00071
00082 static void rk3_pos( double dt, wave_front *y0, wave_front *y1,
00083 wave_front *y2, wave_front *y3, bool no_alias=true ) ;
00084
00095 static void rk3_ndir( double dt, wave_front *y0, wave_front *y1,
00096 wave_front *y2, wave_front *y3, bool no_alias=true ) ;
00097
00110 static void ab3_pos( double dt, wave_front *y0, wave_front *y1,
00111 wave_front *y2, wave_front *y3, bool no_alias=true ) ;
00112
00123 static void ab3_ndir( double dt, wave_front *y0, wave_front *y1,
00124 wave_front *y2, wave_front *y3, bool no_alias=true ) ;
00125 } ;
00126
00127 }
00128 }