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.AdamsBashforthIntegrator;
21 import org.hipparchus.ode.nonstiff.AdamsMoultonFieldIntegrator;
22 import org.hipparchus.ode.nonstiff.DormandPrince853FieldIntegrator;
23 import org.hipparchus.util.Binary64;
24 import org.hipparchus.util.Binary64Field;
25 import org.orekit.orbits.OrbitType;
26 import org.orekit.propagation.FieldPropagator;
27 import org.orekit.propagation.FieldSpacecraftState;
28 import org.orekit.propagation.ToleranceProvider;
29 import org.orekit.propagation.numerical.FieldNumericalPropagator;
30 import org.orekit.propagation.numerical.NumericalPropagator;
31
32
33
34
35
36
37
38 public class FieldCloseEventsNumericalAMTest extends FieldCloseEventsAbstractTest<Binary64> {
39
40
41 public FieldCloseEventsNumericalAMTest() {
42 super(Binary64Field.getInstance());
43 }
44
45
46
47
48
49
50
51 public FieldPropagator<Binary64> getPropagator(double stepSize) {
52 double[][] tol = ToleranceProvider.getDefaultToleranceProvider(1).getTolerances(initialOrbit, OrbitType.CARTESIAN);
53 final AdamsMoultonFieldIntegrator<Binary64> integrator =
54 new AdamsMoultonFieldIntegrator<>(field, 4, stepSize, stepSize, tol[0], tol[1]);
55 final DormandPrince853FieldIntegrator<Binary64> starter =
56 new DormandPrince853FieldIntegrator<>(
57 field, stepSize / 100, stepSize / 10, tol[0], tol[1]);
58 starter.setInitialStepSize(stepSize / 20);
59 integrator.setStarterIntegrator(starter);
60 final FieldNumericalPropagator<Binary64> propagator = new FieldNumericalPropagator<>(field, integrator);
61 propagator.setInitialState(new FieldSpacecraftState<>(initialOrbit));
62 propagator.setOrbitType(OrbitType.CARTESIAN);
63 return propagator;
64 }
65
66 }