« API Propagation » : différence entre les versions

De Gentleman
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 58 : Ligne 58 :
</syntaxhighlight>
</syntaxhighlight>


But it is also possible to use the same method with a 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:


<syntaxhighlight lang="java">
<syntaxhighlight lang="java">

Version du 10 septembre 2021 à 10:43

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:

GEO progation