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 EulerFieldIntegratorTest extends RungeKuttaFieldIntegratorAbstractTest {
27
28 protected <T extends CalculusFieldElement<T>> FixedStepRungeKuttaFieldIntegrator<T>
29 createIntegrator(Field<T> field, T step) {
30 return new EulerFieldIntegrator<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(), 1.0e-15, 6.0e-5);
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.5, 1.0e-10);
55 }
56
57 @Override
58 @Test
59 public void testSmallStep() {
60 doTestSmallStep(Binary64Field.getInstance(), 2.0e-4, 1.0e-3, 1.0e-12, "Euler");
61 }
62
63 @Override
64 @Test
65 public void testBigStep() {
66 doTestBigStep(Binary64Field.getInstance(), 0.01, 0.2, 1.0e-12, "Euler");
67
68 }
69
70 @Override
71 @Test
72 public void testBackward() {
73 doTestBackward(Binary64Field.getInstance(), 0.45, 0.45, 1.0e-12, "Euler");
74 }
75
76 @Override
77 @Test
78 public void testKepler() {
79
80 doTestKepler(Binary64Field.getInstance(), 881.176, 0.001);
81 }
82
83 @Override
84 @Test
85 public void testStepSize() {
86 doTestStepSize(Binary64Field.getInstance(), 1.0e-12);
87 }
88
89 @Override
90 @Test
91 public void testSingleStep() {
92 doTestSingleStep(Binary64Field.getInstance(), 0.21);
93 }
94
95 @Override
96 @Test
97 public void testTooLargeFirstStep() {
98 doTestTooLargeFirstStep(Binary64Field.getInstance());
99 }
100
101 @Override
102 @Test
103 public void testUnstableDerivative() {
104 doTestUnstableDerivative(Binary64Field.getInstance(), 1.0e-12);
105 }
106
107 @Override
108 @Test
109 public void testDerivativesConsistency() {
110 doTestDerivativesConsistency(Binary64Field.getInstance(), 1.0e-10);
111 }
112
113 @Override
114 @Test
115 public void testPartialDerivatives() {
116 doTestPartialDerivatives(0.085, new double[] { 0.47, 0.13, 0.019, 0.019, 0.13 });
117 }
118
119 @Test
120 public void testSecondaryEquations() {
121 doTestSecondaryEquations(Binary64Field.getInstance(), 4.8e-3, 5.6e-13);
122 }
123
124 }