1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  package org.apache.commons.math4.legacy.ode.nonstiff;
19  
20  
21  import org.apache.commons.math4.legacy.core.Field;
22  import org.apache.commons.math4.legacy.core.RealFieldElement;
23  
24  public class GillFieldIntegratorTest extends RungeKuttaFieldIntegratorAbstractTest {
25  
26      @Override
27      protected <T extends RealFieldElement<T>> RungeKuttaFieldIntegrator<T>
28      createIntegrator(Field<T> field, T step) {
29          return new GillFieldIntegrator<>(field, step);
30      }
31  
32      @Override
33      public void testNonFieldIntegratorConsistency() {
34          doTestNonFieldIntegratorConsistency(Decimal64Field.getInstance());
35      }
36  
37      @Override
38      public void testMissedEndEvent() {
39          doTestMissedEndEvent(Decimal64Field.getInstance(), 1.0e-15, 6.0e-5);
40      }
41  
42      @Override
43      public void testSanityChecks() {
44          doTestSanityChecks(Decimal64Field.getInstance());
45      }
46  
47      @Override
48      public void testDecreasingSteps() {
49          doTestDecreasingSteps(Decimal64Field.getInstance(), 1.0, 1.0, 1.0e-10);
50      }
51  
52      @Override
53      public void testSmallStep() {
54          doTestSmallStep(Decimal64Field.getInstance(), 2.0e-13, 4.0e-12, 1.0e-12, "Gill");
55      }
56  
57      @Override
58      public void testBigStep() {
59          doTestBigStep(Decimal64Field.getInstance(), 0.0004, 0.005, 1.0e-12, "Gill");
60      }
61  
62      @Override
63      public void testBackward() {
64          doTestBackward(Decimal64Field.getInstance(), 5.0e-10, 7.0e-10, 1.0e-12, "Gill");
65      }
66  
67      @Override
68      public void testKepler() {
69          doTestKepler(Decimal64Field.getInstance(), 1.72e-3, 1.0e-5);
70      }
71  
72      @Override
73      public void testStepSize() {
74          doTestStepSize(Decimal64Field.getInstance(), 1.0e-12);
75      }
76  
77      @Override
78      public void testSingleStep() {
79          doTestSingleStep(Decimal64Field.getInstance(), 0.21);
80      }
81  
82      @Override
83      public void testTooLargeFirstStep() {
84          doTestTooLargeFirstStep(Decimal64Field.getInstance());
85      }
86  
87      @Override
88      public void testUnstableDerivative() {
89          doTestUnstableDerivative(Decimal64Field.getInstance(), 1.0e-12);
90      }
91  
92      @Override
93      public void testDerivativesConsistency() {
94          doTestDerivativesConsistency(Decimal64Field.getInstance(), 1.0e-10);
95      }
96  
97      @Override
98      public void testPartialDerivatives() {
99          doTestPartialDerivatives(3.2e-10, new double[] { 2.1e-9, 5.9e-10, 7.0e-11, 7.0e-11, 5.9e-10 });
100     }
101 }