controlled_adams_bashforth_moulton.cpp 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include <boost/config.hpp>
  2. #ifdef BOOST_MSVC
  3. #pragma warning(disable:4996)
  4. #endif
  5. #define BOOST_TEST_MODULE odeint_controlled_adams_bashforth_moulton
  6. #include <boost/test/unit_test.hpp>
  7. #include <boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp>
  8. #include <boost/numeric/odeint/stepper/controlled_adams_bashforth_moulton.hpp>
  9. using namespace boost::unit_test;
  10. using namespace boost::numeric::odeint;
  11. struct const_sys
  12. {
  13. template< class State , class Deriv , class Value >
  14. void operator()( const State &x , Deriv &dxdt , const Value &dt ) const
  15. {
  16. dxdt[0] = 1;
  17. }
  18. };
  19. typedef boost::array< double , 1 > state_type;
  20. typedef double value_type;
  21. BOOST_AUTO_TEST_SUITE( controlled_adams_bashforth_moulton_test )
  22. BOOST_AUTO_TEST_CASE( test_instantiation )
  23. {
  24. controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<1, state_type> > s1;
  25. controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<2, state_type> > s2;
  26. controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<3, state_type> > s3;
  27. controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<4, state_type> > s4;
  28. controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<5, state_type> > s5;
  29. controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<6, state_type> > s6;
  30. controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<7, state_type> > s7;
  31. controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<8, state_type> > s8;
  32. controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<9, state_type> > s9;
  33. state_type x = {{ 10.0 }};
  34. value_type t = 0.0 , dt = 0.01;
  35. s1.try_step(const_sys(), x, t, dt);
  36. s2.try_step(const_sys(), x, t, dt);
  37. s3.try_step(const_sys(), x, t, dt);
  38. s4.try_step(const_sys(), x, t, dt);
  39. s5.try_step(const_sys(), x, t, dt);
  40. s6.try_step(const_sys(), x, t, dt);
  41. s7.try_step(const_sys(), x, t, dt);
  42. s8.try_step(const_sys(), x, t, dt);
  43. s9.try_step(const_sys(), x, t, dt);
  44. }
  45. BOOST_AUTO_TEST_SUITE_END()