1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.orekit.propagation.events;
19
20 import org.hipparchus.ode.nonstiff.AdamsBashforthFieldIntegrator;
21 import org.hipparchus.ode.nonstiff.DormandPrince853FieldIntegrator;
22 import org.hipparchus.util.Binary64;
23 import org.hipparchus.util.Binary64Field;
24 import org.orekit.orbits.OrbitType;
25 import org.orekit.propagation.FieldPropagator;
26 import org.orekit.propagation.FieldSpacecraftState;
27 import org.orekit.propagation.ToleranceProvider;
28 import org.orekit.propagation.numerical.FieldNumericalPropagator;
29
30
31
32
33
34
35
36 public class FieldCloseEventsNumericalABTest extends FieldCloseEventsAbstractTest<Binary64> {
37
38
39 public FieldCloseEventsNumericalABTest() {
40 super(Binary64Field.getInstance());
41 }
42
43
44
45
46
47
48
49 public FieldPropagator<Binary64> getPropagator(double stepSize) {
50 double[][] tol = ToleranceProvider.getDefaultToleranceProvider(10000).getTolerances(initialOrbit, OrbitType.CARTESIAN);
51 final AdamsBashforthFieldIntegrator<Binary64> integrator =
52 new AdamsBashforthFieldIntegrator<>(field, 4, stepSize, stepSize, tol[0], tol[1]);
53 final DormandPrince853FieldIntegrator<Binary64> starter =
54 new DormandPrince853FieldIntegrator<>(
55 field, stepSize / 100, stepSize / 10, tol[0], tol[1]);
56 starter.setInitialStepSize(stepSize / 20);
57 integrator.setStarterIntegrator(starter);
58 final FieldNumericalPropagator<Binary64> propagator =
59 new FieldNumericalPropagator<>(field, integrator);
60 propagator.setInitialState(new FieldSpacecraftState<>(initialOrbit));
61 propagator.setOrbitType(OrbitType.CARTESIAN);
62 return propagator;
63 }
64
65 }