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.Decimal64;
24 import org.hipparchus.util.Decimal64Field;
25 import org.orekit.orbits.OrbitType;
26 import org.orekit.propagation.FieldPropagator;
27 import org.orekit.propagation.FieldSpacecraftState;
28 import org.orekit.propagation.numerical.FieldNumericalPropagator;
29 import org.orekit.propagation.numerical.NumericalPropagator;
30
31
32
33
34
35
36
37 public class FieldCloseEventsNumericalAMTest extends FieldCloseEventsAbstractTest<Decimal64> {
38
39
40 public FieldCloseEventsNumericalAMTest() {
41 super(Decimal64Field.getInstance());
42 }
43
44
45
46
47
48
49
50 public FieldPropagator<Decimal64> getPropagator(double stepSize) {
51 double[][] tol = FieldNumericalPropagator
52 .tolerances(v(1), initialOrbit, OrbitType.CARTESIAN);
53 final AdamsMoultonFieldIntegrator<Decimal64> integrator =
54 new AdamsMoultonFieldIntegrator<>(field, 4, stepSize, stepSize, tol[0], tol[1]);
55 final DormandPrince853FieldIntegrator<Decimal64> 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<Decimal64> propagator = new FieldNumericalPropagator<>(field, integrator);
61 propagator.setInitialState(new FieldSpacecraftState<>(initialOrbit));
62 propagator.setOrbitType(OrbitType.CARTESIAN);
63 return propagator;
64 }
65
66 }