Commit Graph

81 Commits

Author SHA1 Message Date
Mario Mulansky
2bbc186b43 Merge branch 'develop' of github.com:boostorg/odeint into develop 2019-04-20 11:56:36 -07:00
Mario Mulansky
fc43a2ef44 Merge branch 'master' of github.com:headmyshoulder/odeint-v2 into develop 2019-04-20 11:49:37 -07:00
Mario Mulansky
db8b39ae27
Change eigen algebra to support Eigen>=3.3 (#237)
* Change eigen algebra to support Eigen>=3.3

An internal change in Eigen made odeint incompatible with Eigen
versions >=3.3. This commit changes odeint in such a way that it
does not rely on the changed behvior, so it is now compatible with
old and new Eigen.

Fixes #194

* Remove obsolete Eigen fail compile test

* Remove compile-fail test for C++98 unwrap_reference
2019-03-16 16:20:44 -07:00
Markus Friedrich
5dd9519b7b Enable the adaption of the maximal step size of dense output steppers. (#225)
* Enable the adaption of the maximal step size of dense output steppers.

For efficient simulation of "hybrid" systems the integrator must approach
the sample points where the discrete variables change their value.

(hybrid systems = systems of ODEs which include discrete variables, beeing
internal variables of the system which only change their value at discrete
sample points)

Approaching sample points can be done by adapting the maximal integrator
step size to min(max_step_size, next_sample_point_time - current_time)
before each do_step.

To achive this in odeint for all dense output steppers the following
changes must be done (which does not change the existing API):
- make private members in bulirsch_stoer_dense_out,
  default_step_adjuster, rosenbrock4_controller protected.
- allow std::ref/boost::ref for step_adjuster in controlled_runge_kutta
  and controlled_runge_kutta and for stepper in rosenbrock4_dense_output
  by unwrapping these before use.
This allows to pass the step adjusters by reference to the dense output
steppers which than allows to change the maximal step size (in the step
adjuster) before each call to do_step.

* Added test for a reference controller in the Rosenbrock4 dense output stepper.

* Make in bulirsch_stoer_dense_out only the required m_max_dt member
protected not all.

Extend the test in rosenbrock4.cpp to test that the controller is a
reference and the maximal step size is applied.

* Fixed build with gcc-4.8
2018-02-12 20:13:12 -08:00
Valentin Hartmann
34def567d2 fix initialization with external stepper (#215)
- time was not increased over the iterations
- prediction of dxdt was taken before integrating with the supplied stepper instead of after
2017-11-12 12:12:17 -08:00
Valentin Hartmann
848d7f1938 completed testcases 2017-07-03 14:42:41 +02:00
Valentin Hartmann
1b767b38d6 adapting tests to new formulation 2017-07-02 19:16:10 +02:00
Valentin Hartmann
7fe4477acf Tests for numeric precision, initializing procedure for steppers 2017-06-23 15:05:20 +02:00
Valentin Hartmann
d0dad9a53a changed tabs to spaces in all files 2017-06-22 17:44:49 +02:00
Valentin Hartmann
079f3ffa4d fixed problems in testcases 2017-06-21 21:32:18 +02:00
Valentin Hartmann
073e1e0143 more test cases 2017-06-21 18:14:46 +02:00
Valentin Hartmann
ac90a029ce completed testcases 2017-05-25 16:39:57 +02:00
Valentin Hartmann
518f2186ca unittests 2017-05-24 16:31:16 +02:00
Mario Mulansky
c0e1cf30f9 Merge pull request #19 from boostorg/from_headmyshoulder
Merge from headmyshoulder/odeint-v2
2017-05-09 20:57:34 -07:00
Mario Mulansky
67e1908720 Merge branch 'master' into odeint_boost_develop
Merging headmyshoulder/master into boostorg/develop
2017-05-09 20:49:33 -07:00
Mario Mulansky
ff3fd556cb Fix compiler warnings, activate parallel CI build 2017-05-07 13:27:57 -07:00
Mario Mulansky
a452f6e816 Fix abs warnings and clang compiler warning flag 2017-05-07 13:07:10 -07:00
Mario Mulansky
5d3b013955 Update Boost on Travis, fix bug with boost 1.63 2017-05-07 12:40:31 -07:00
Kohei Takahashi
357e5b36e7 Fix missing include. 2016-07-30 16:59:51 +09:00
Kohei Takahashi
5c8c4fb1b1 Relaxing test requirements. 2016-07-30 16:57:53 +09:00
Mario Mulansky
31c29dd948 fixes #189
A bug introduced with the recent max_dt facility prevented the rosenbrock
controller to increase step size in most cases (if max_dt=0). This is fixed
now, and a regression test case has been added.
2016-01-19 15:37:50 +01:00
Mario Mulansky
9d02efbff2 added reset to adams bashforth moulton
The ABM stepper was missing reset functionality, see #182
2015-12-09 12:51:50 +01:00
Mario Mulansky
f51691421c Merge branch 'master' of github.com:headmyshoulder/odeint-v2 into develop 2015-11-13 12:30:41 +01:00
Mario Mulansky
0c8e003341 Merge branch 'master' of github.com:headmyshoulder/odeint-v2
Conflicts:
	test/Jamfile.v2
2015-11-05 21:30:58 -06:00
Mario Mulansky
60cd09818d add max_dt to rosenbrock steppers
now all controlled and dense out steppers have step size limitation
functionality.
2015-11-01 14:21:02 -06:00
Mario Mulansky
80da40f6b5 test step limiter with negative dt + bugfix
Bugfix in error computation with negative dt.
2015-10-31 14:22:29 -06:00
Mario Mulansky
3d87ce360e added step size limitation to bulirsch stoer 2015-10-31 13:24:11 -06:00
Mario Mulansky
ed2040d48f refactored step size adjustment into own class
step size adjustment is now performed by a separate step_adjuster instead
of the error_checker. Repsonsibilities are now more clear.
2015-10-29 11:51:30 -06:00
Mario Mulansky
c8f28df99e removed null_checker
with the latest refactoring, the null checker is not necessary anymore.
2015-10-28 20:38:37 -06:00
Mario Mulansky
c3856f83a5 refactor all integrate functions
all integrate function now use the adaption to provide checking functionality
the implementations in detail::integrate_* are not aware of the checkers at
all.
2015-10-28 13:49:27 -06:00
Mario Mulansky
5efc181f4c refactor of integrate_times complete
integrate_times now uses checked_stepper and checked_observer to implement
the checking facility. Not that this means the integrate implementations in
detail::integrate_times have no knowledge on the checkers at all.
2015-10-28 12:50:55 -06:00
Mario Mulansky
6825d7af8b add max_dt support to generation functions + test
generate function now support additional max_dt parameter for setting the set
size limit.
Added a test case to check limiter behavior for controlled and dense out
integration.
2015-10-23 21:27:57 +02:00
Mario Mulansky
a006cb51fa bug fixes regarding the new step adjustment
all tests are now passing
2015-10-23 19:34:22 +02:00
Mario Mulansky
260d848288 refined the exception 2015-10-09 09:51:00 +02:00
Mario Mulansky
fa6a914f1a added overflow exception to other integrate funcs
following the previous additions for integrate_const now also
integrate_n_steps and integrate_times support max_step overflow
exceptions.
2015-10-08 12:57:56 +02:00
Mario Mulansky
23ffb209fa added overflow exception to integrate_const
Following the discussion in #173, the integrate_const function now
provide a mechanisms to check for TOO_MUCH_WORK situations where too
many steps are performed without any progress (i.e. observer calls).
Naturally, this only makes sense for controlled steppers or dense
output steppers.
Also, integrate_adaptive functions do not require such functionality as
there observer calls happen at every time step.
Hence, only integrate_n_steps and integrate_times will be adapted shortly
2015-10-06 17:26:18 +02:00
Karsten Ahnert
fbd9ed0010 Merge branch 'master' of https://github.com/headmyshoulder/odeint-v2 into develop 2015-07-09 22:01:48 +02:00
Mario Mulansky
ff755ff96e fixes #168
fixed bug in less_eq_with_sign. equality was not correctly checked for, which
resulted in wrong behavior when the numeric type had
std::numeric_limits<T>::epsilon() == 0.
2015-06-29 15:27:44 +02:00
akumta
c7895bbed9 Update integrate_implicit.cpp
Per ticket# 10928.
2015-03-03 14:05:10 -08:00
akumta
2ae720f494 Update rosenbrock.cpp
Update for ticket# 10929.
2015-02-25 12:26:51 -08:00
Karsten Ahnert
8f6ef31acd adding test for adjust size of bulirsch stoer 2015-02-12 10:36:41 +01:00
Mario Mulansky
c23fdbeb8f extrapolation stepper as init stepper for abm
extrapolation stepper has a configurable order, so we can use it as
initializing stepper in the adams-bashforth algorithm. All numeric tests pass.
2015-02-01 18:08:39 +01:00
Mario Mulansky
0721600e50 new extrapolation stepper 2015-02-01 16:32:18 +01:00
Mario Mulansky
2b42b359d4 added test case for velocity-verlet #150
Test numerical accuracy of the velocity verlet method using a harmonic
oscillator.
2015-01-31 14:27:25 +01:00
Karsten Ahnert
d3ca31a8e3 removing warnings, see track ticket #10931 2015-01-29 23:27:44 +01:00
Mario Mulansky
54a601d679 fixed compiler flag 2015-01-27 16:35:30 +01:00
Mario Mulansky
fe00c541a9 added test case for issue #149 2015-01-27 14:06:33 +01:00
Mario Mulansky
109e9112a8 added missing adams-bashforth test with 8 steps 2015-01-21 14:38:05 +01:00
Mario Mulansky
f5079fb258 add init_stepper as template param to abm stepper
The Adams-Bashforth-Moulton stepper has now also the initializing stepper
as a template parameter.

This allows to get rid of the specific test case for multi-step methods in
order_quadrature_formula. Furthermore, some cosmetic adjustments were made in
this test: global variables, camel case naming, while loop -> for loop.
2015-01-21 13:52:56 +01:00
Mario Mulansky
8c41ee24ba Merge pull request #146 from GregorDeCillia/master
Test certain steppers with the problem x'(t) = t^p
2015-01-21 10:24:09 +01:00