« API Propagation » : différence entre les versions
Aucun résumé des modifications |
|||
| Ligne 58 : | Ligne 58 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
But it is also possible to use the same method with a [{{PathCurrentJavaDoc}}/fr/cnes/dynvol/gentleman/calc/data/propagation/GtmPropagationData.html GtmPropagationData] GtmPropagationData object as argument: | But it is also possible to use the same method with a [{{PathCurrentJavaDoc}}/fr/cnes/dynvol/gentleman/calc/data/propagation/GtmPropagationData.html GtmPropagationData] GtmPropagationData object as argument. The example below is fully equivalent to the previous one: | ||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
leo.setPropagationData(new GtmPropagationData(Constants.JULIAN_DAY, GtmConstants.HOUR, 1.0, 300., 7.e-6, 3.e-10, 0., 0.)); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== GEO progation == | == GEO progation == | ||
Version du 10 septembre 2021 à 10:50
There are two possibilities to initialize an orbital propagation using a GtmLeoPropagator or a GtmLeoPropagator object.
LEO propagation
First, we will have to create a GtmLeoPropagator object:
final GtmLeoPropagator leo = new GtmLeoPropagator();
Then, we will set all the information needed for the propagation ...
Initial orbit
We may use the GtmLeoSimpleOrbit object which allows to enter simplified data as defined below and here or a full PATRIUS Orbit object
// Orbit initialization
final AbsoluteDate date = new AbsoluteDate("2020-01-01T00:00:00.000", GtmConstants.UTC);
final double hp = 299.e+3;
final double ha = 300.e+3;
final double inc = FastMath.toRadians(51.6);
final GtmLeoSimpleOrbit simpleOrbit = new GtmLeoSimpleOrbit(date, hp, ha, inc);
leo.setIniOrbit(simpleOrbit.getOrbit());
Vehicle
As for the initial orbit, we may use a GtmSimpleVehicle object for simpler data or a full PATRIUS Vehicle object.
// Vehicle characteristics
final double dryMass = 1000.;
final double mainArea = 1.;
final double spArea = 2.;
final double cd = 2.;
final GtmSimpleVehicle veh = new GtmSimpleVehicle(dryMass, mainArea, spArea, 0., 0., cd, 0., 0., 0.);
leo.setVehicle(veh.getVehicle());
Forces
Here again, we can use a GtmSimpleForces object or define a full PATRIUS ForceModelsData object.
// Forces models
final GtmSimpleForces forces = new GtmSimpleForces(2, 0, true, false, false, false, false, leo.getAssembly(), leo.getEllipsoid());
leo.setForces(forces.getForces());
Propagation data
The siplest way is to use the setPropagationData() method passing only the duration of the propagation and the output step. All other data (for the numerical propagator) will be considered with default values.
// Propagation data
leo.setPropagationData(Constants.JULIAN_DAY, GtmConstants.HOUR);
But it is also possible to use the same method with a GtmPropagationData GtmPropagationData object as argument. The example below is fully equivalent to the previous one:
leo.setPropagationData(new GtmPropagationData(Constants.JULIAN_DAY, GtmConstants.HOUR, 1.0, 300., 7.e-6, 3.e-10, 0., 0.));