6065 Commits

Author SHA1 Message Date
Luc Maisonobe
34f1f6a485 Added tests for midpoint integrator. 2016-01-06 12:41:07 +01:00
Luc Maisonobe
de90332490 Added tests for derivatives consistency. 2016-01-06 12:41:06 +01:00
Luc Maisonobe
a961a2ec9c Prepared testing framework for step interpolators. 2016-01-06 12:41:04 +01:00
Luc Maisonobe
ba1ce9b9aa Fixed Butcher arrays constants for Luther integrator. 2016-01-06 12:41:02 +01:00
Luc Maisonobe
85b941ea1f Factor test code. 2016-01-06 12:40:58 +01:00
Luc Maisonobe
d53a6f834b Fixed comment. 2016-01-06 12:40:56 +01:00
Luc Maisonobe
1f14ff6ce8 Added test and fixed step interpolator for field version of Gill method. 2016-01-06 12:40:54 +01:00
Luc Maisonobe
c4a093c1f2 Added test for field version of classical Runge-Kutta method. 2016-01-06 12:40:49 +01:00
Luc Maisonobe
91b931f79f Reactivated test. 2016-01-06 12:40:49 +01:00
Luc Maisonobe
1077ae03c0 Reduced coupling between integrators and step interpolators. 2016-01-06 12:40:38 +01:00
Luc Maisonobe
41bbbd468a Starting tests on field ODE!
At least we can now run some code ...
2016-01-06 12:40:37 +01:00
Luc Maisonobe
6d1fb4dc3e One step towards immutable step interpolators.
The interpolators do not expect anymore the y and yDot arrays to
be shared with integrator and be updated by it.
2016-01-06 12:40:23 +01:00
Luc Maisonobe
aab178594f Fixed wrong state reset in field ode. 2016-01-06 12:40:22 +01:00
Luc Maisonobe
c053a327f9 Cehck array dimensions in equations mapper. 2016-01-06 12:40:20 +01:00
Luc Maisonobe
c4dd533843 The step interpolator should refer to the integrator array.
This behavior will be changed later on to get immutable objects.
For now, we still rely on arrays being shared between the integrator and
the interpolator.
2016-01-06 12:40:18 +01:00
Luc Maisonobe
335e9df408 Prevent null pointer exception at integration start. 2016-01-06 12:40:16 +01:00
Luc Maisonobe
e10c80fa72 Converted constants for step interpolators. 2016-01-06 12:40:14 +01:00
Luc Maisonobe
93d4d37c5f Converted constants for embedded Runge-Kutta integrators. 2016-01-06 12:40:12 +01:00
Luc Maisonobe
3d93574d2c Converted constants for Runge-Kutta integrators. 2016-01-06 12:40:10 +01:00
Luc Maisonobe
d4b56e80b4 Removed step interpolator prototyping.
We can just use a factory method in the integrator for building an
interpolator each time we integrate.

In the long term, we will even recreate it at each step so the
interpolator can be immutable.
2016-01-06 12:40:08 +01:00
Luc Maisonobe
40faa3ef12 Replaced static double array constants with field constants.
This will allow for example setting up ode integrators using Dfp
instances with increased accuracy, including for the ode coefficients
themselves.
2016-01-06 12:40:05 +01:00
Luc Maisonobe
35c99d4dea Prepared tests for field-based ODE. 2016-01-06 12:40:03 +01:00
Luc Maisonobe
121c6b6892 Restrictied fields visibility in tests. 2016-01-06 12:39:46 +01:00
Luc Maisonobe
87d71e9d46 Simplified ODE test harness. 2016-01-06 12:39:35 +01:00
Luc Maisonobe
79c4719396 Use a top level interface for bracketed real field solver. 2016-01-06 12:38:03 +01:00
Luc Maisonobe
e7a46ac6ca Field-based version of Dormand-Prince 5(4) method for solving ODE. 2016-01-06 12:24:44 +01:00
Luc Maisonobe
301b0a8110 Field-based version of Higham-Hall 5(4) method for solving ODE. 2016-01-06 12:24:43 +01:00
Luc Maisonobe
b3c1686093 Field-based version of Dormand-Prince 8(5, 3) method for solving ODE. 2016-01-06 12:24:41 +01:00
Luc Maisonobe
213cb76f59 Added field-based continuous output throughout integration range. 2016-01-06 12:24:39 +01:00
Luc Maisonobe
c83289781a Added forgotten copy method in FieldStepInterpolator interface. 2016-01-06 12:24:37 +01:00
Luc Maisonobe
1a26866d77 Intermediate level implementations of variable-step Runge-Kutta methods. 2016-01-06 12:24:29 +01:00
Luc Maisonobe
637027aa50 Avoid spurious array copy. 2016-01-06 12:24:25 +01:00
Luc Maisonobe
b21b4c8ded The full set of derivatives are needed in Runge-Kutta. 2016-01-06 12:24:24 +01:00
Luc Maisonobe
c4e2ddf266 Added min/max utility methods for RealField elements. 2016-01-06 12:24:21 +01:00
Luc Maisonobe
dbb04c1ccb Field-based version of Luther method for solving ODE. 2016-01-06 12:24:20 +01:00
Luc Maisonobe
c9aa8f334a Field-based version of 3/8 method for solving ODE. 2016-01-06 12:24:19 +01:00
Luc Maisonobe
58e713233d Field-based version of Gill method for solving ODE. 2016-01-06 12:24:18 +01:00
Luc Maisonobe
d67f7e2af9 Field-based version of classical Runge-Kutta method for solving ODE. 2016-01-06 12:24:16 +01:00
Luc Maisonobe
defa2be2ea Field-based version of midpoint method for solving ODE. 2016-01-06 12:24:14 +01:00
Luc Maisonobe
f05e3793ed Fixed javadoc. 2016-01-06 12:24:12 +01:00
Luc Maisonobe
df355deb13 Whitespace. 2016-01-06 12:24:09 +01:00
Luc Maisonobe
738e361a36 Field-based version of Euler method for solving ODE. 2016-01-06 12:24:01 +01:00
Luc Maisonobe
f8fa8259db Intermediate level implementations of fixed-step Rung-Kutta methods. 2016-01-06 12:23:59 +01:00
Luc Maisonobe
12aea84075 Integrator returns the full state, not only the time. 2016-01-06 12:23:57 +01:00
Luc Maisonobe
02641ff729 Step interpolator only needs the mapper, not the full equations. 2016-01-06 12:23:54 +01:00
Luc Maisonobe
7644b5a2bd Initialize primary and secondary equations at integration start. 2016-01-06 12:23:51 +01:00
Luc Maisonobe
152073fa08 Use MapArrays utility methods for building arrays. 2016-01-06 12:23:48 +01:00
Luc Maisonobe
22991a71c6 Added init methods for primary and secondary ODE.
This addition is for consistency with other user-implemented interfaces
as step handlers and event handlers. However, since the equations have
only the state as input and the produce derivatives as output, their
init method also only uses state, as derivatives can be computed only
after equations have been initialized, not before.
2016-01-06 12:23:44 +01:00
Luc Maisonobe
fe8646e83e Separate equations from mapper. 2016-01-06 12:23:38 +01:00
Luc Maisonobe
6da8a0eba0 Implementation of the top level abstract classes in field ode.
This layer implements boilerplate code, mainly step handling and events
handling. It is independent of the type of integrator used. Below this
layer will be the real implementations (Runge-Kutta, embedded
runge-Kutta, Gragg-Bulirsch-Stoer, Adams, ...).
2016-01-06 12:23:19 +01:00