1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.hipparchus.ode.nonstiff;
19
20
21 import org.hipparchus.CalculusFieldElement;
22 import org.hipparchus.Field;
23 import org.hipparchus.util.Binary64Field;
24 import org.junit.jupiter.api.Test;
25
26 class ClassicalRungeKuttaFieldIntegratorTest extends RungeKuttaFieldIntegratorAbstractTest {
27
28 protected <T extends CalculusFieldElement<T>> FixedStepRungeKuttaFieldIntegrator<T>
29 createIntegrator(Field<T> field, T step) {
30 return new ClassicalRungeKuttaFieldIntegrator<T>(field, step);
31 }
32
33 @Override
34 @Test
35 public void testNonFieldIntegratorConsistency() {
36 doTestNonFieldIntegratorConsistency(Binary64Field.getInstance());
37 }
38
39 @Override
40 @Test
41 public void testMissedEndEvent() {
42 doTestMissedEndEvent(Binary64Field.getInstance(), 5.0e-6, 1.0e-9);
43 }
44
45 @Override
46 @Test
47 public void testSanityChecks() {
48 doTestSanityChecks(Binary64Field.getInstance());
49 }
50
51 @Override
52 @Test
53 public void testDecreasingSteps() {
54 doTestDecreasingSteps(Binary64Field.getInstance(), 1.0, 1.0, 1.0e-10);
55 }
56
57 @Override
58 @Test
59 public void testSmallStep() {
60 doTestSmallStep(Binary64Field.getInstance(), 2.0e-13, 4.0e-12, 1.0e-12, "classical Runge-Kutta");
61 }
62
63 @Override
64 @Test
65 public void testBigStep() {
66 doTestBigStep(Binary64Field.getInstance(), 0.0004, 0.005, 1.0e-12, "classical Runge-Kutta");
67
68 }
69
70 @Override
71 @Test
72 public void testBackward() {
73 doTestBackward(Binary64Field.getInstance(), 5.0e-10, 7.0e-10, 1.0e-12, "classical Runge-Kutta");
74 }
75
76 @Override
77 @Test
78 public void testKepler() {
79 doTestKepler(Binary64Field.getInstance(), 5.82e-3, 1.0e-5);
80 }
81
82 @Override
83 @Test
84 public void testStepSize() {
85 doTestStepSize(Binary64Field.getInstance(), 1.0e-12);
86 }
87
88 @Override
89 @Test
90 public void testSingleStep() {
91 doTestSingleStep(Binary64Field.getInstance(), 9.3e-9);
92 }
93
94 @Override
95 @Test
96 public void testTooLargeFirstStep() {
97 doTestTooLargeFirstStep(Binary64Field.getInstance());
98 }
99
100 @Override
101 @Test
102 public void testUnstableDerivative() {
103 doTestUnstableDerivative(Binary64Field.getInstance(), 1.0e-12);
104 }
105
106 @Override
107 @Test
108 public void testDerivativesConsistency() {
109 doTestDerivativesConsistency(Binary64Field.getInstance(), 1.0e-10);
110 }
111
112 @Override
113 @Test
114 public void testPartialDerivatives() {
115 doTestPartialDerivatives(3.2e-10, new double[] { 2.1e-9, 5.9e-10, 7.0e-11, 7.0e-11, 5.9e-10 });
116 }
117
118 @Test
119 public void testSecondaryEquations() {
120 doTestSecondaryEquations(Binary64Field.getInstance(), 1.1e-12, 5.6e-13);
121 }
122
123 }