1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.estimation;
18
19 import org.orekit.forces.ForceModel;
20 import org.orekit.forces.drag.DragForce;
21 import org.orekit.forces.gravity.HolmesFeatherstoneAttractionModel;
22 import org.orekit.forces.gravity.OceanTides;
23 import org.orekit.forces.gravity.Relativity;
24 import org.orekit.forces.gravity.SolidTides;
25 import org.orekit.forces.gravity.ThirdBodyAttraction;
26 import org.orekit.forces.radiation.SolarRadiationPressure;
27 import org.orekit.models.earth.atmosphere.HarrisPriester;
28
29 public enum Force {
30
31 POTENTIAL() {
32 public ForceModel getForceModel(Context context) {
33 return new HolmesFeatherstoneAttractionModel(context.earth.getBodyFrame(), context.gravity);
34 }
35 },
36
37 THIRD_BODY_SUN() {
38 public ForceModel getForceModel(Context context) {
39 return new ThirdBodyAttraction(context.sun);
40 }
41 },
42
43 THIRD_BODY_MOON() {
44 public ForceModel getForceModel(Context context) {
45 return new ThirdBodyAttraction(context.moon);
46 }
47 },
48
49 DRAG() {
50 public ForceModel getForceModel(Context context) {
51 return new DragForce(new HarrisPriester(context.sun, context.earth), context.dragSensitive);
52 }
53 },
54
55 SOLAR_RADIATION_PRESSURE() {
56 public ForceModel getForceModel(Context context) {
57 return new SolarRadiationPressure(context.sun, context.earth,context.radiationSensitive);
58 }
59 },
60
61 OCEAN_TIDES() {
62 public ForceModel getForceModel(Context context) {
63 return new OceanTides(context.earth.getBodyFrame(), context.gravity.getAe(), context.gravity.getMu(),
64 7, 7, context.conventions, context.ut1);
65 }
66 },
67
68 SOLID_TIDES() {
69 public ForceModel getForceModel(Context context) {
70 return new SolidTides(context.earth.getBodyFrame(), context.gravity.getAe(), context.gravity.getMu(),
71 context.gravity.getTideSystem(),
72 context.conventions, context.ut1, context.sun, context.moon);
73 }
74 },
75
76 RELATIVITY() {
77 public ForceModel getForceModel(Context context) {
78 return new Relativity(context.gravity.getMu());
79 }
80 };
81
82 public abstract ForceModel getForceModel(Context context);
83
84 }