1 package org.orekit.propagation.conversion.averaging.converters;
2
3 import org.junit.jupiter.api.Assertions;
4 import org.junit.jupiter.api.BeforeEach;
5 import org.junit.jupiter.api.Test;
6 import org.orekit.Utils;
7 import org.orekit.data.DataContext;
8 import org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider;
9 import org.orekit.frames.FramesFactory;
10 import org.orekit.orbits.KeplerianOrbit;
11 import org.orekit.orbits.Orbit;
12 import org.orekit.orbits.PositionAngleType;
13 import org.orekit.propagation.conversion.averaging.BrouwerLyddaneOrbitalState;
14 import org.orekit.time.AbsoluteDate;
15 import org.orekit.utils.Constants;
16 import org.orekit.utils.PVCoordinates;
17
18 class OsculatingToBrouwerLyddaneElementsConverterTest {
19
20 @BeforeEach
21 public void setUp() {
22 Utils.setDataRoot("regular-data:potential");
23 }
24
25 @Test
26 void testConvertToAveragedElements() {
27
28 final KeplerianOrbit osculatingOrbit = new KeplerianOrbit(1e7, 0.1, 1., 1., 2., -3.,
29 PositionAngleType.MEAN, FramesFactory.getGCRF(), AbsoluteDate.ARBITRARY_EPOCH,
30 Constants.EGM96_EARTH_MU);
31 final OsculatingToBrouwerLyddaneConverter converter = new OsculatingToBrouwerLyddaneConverter(getProvider());
32 converter.setEpsilon(1e-12);
33 converter.setMaxIterations(100);
34
35 final BrouwerLyddaneOrbitalState averagedElements = converter
36 .convertToAveraged(osculatingOrbit);
37
38 final Orbit recomputedOsculatingOrbit = averagedElements.toOsculatingOrbit();
39 final PVCoordinates relativePV = new PVCoordinates(osculatingOrbit.getPVCoordinates(),
40 recomputedOsculatingOrbit.getPVCoordinates(osculatingOrbit.getFrame()));
41 final double expectedDifference = 0.;
42 Assertions.assertEquals(expectedDifference, relativePV.getPosition().getNorm(), 1e-5);
43 Assertions.assertEquals(expectedDifference, relativePV.getVelocity().getNorm(), 3e-9);
44 }
45
46 private UnnormalizedSphericalHarmonicsProvider getProvider() {
47 return DataContext.getDefault().getGravityFields().getUnnormalizedProvider(5, 0);
48 }
49
50 }