public class StelaGTOPropagator extends StelaAbstractPropagator
Modifier and Type | Field and Description |
---|---|
protected AbsoluteDate |
maxDate
Max date after which simulation has to fail if exception mecanism was triggered
|
protected int |
stepCounter
Step counter for drag computation.
|
protected boolean |
wasException
Was the exception mecanism triggered already
|
attitudeProviderByDefault, attitudeProviderEvents, attitudeProviderForces, eventsStates, integrator, oldStepHandler
EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
Constructor and Description |
---|
StelaGTOPropagator(FirstOrderIntegrator integr)
Build a StelaGTOPropagator.
|
StelaGTOPropagator(FirstOrderIntegrator integr,
AttitudeProvider inAttitudeProviderForces,
AttitudeProvider inAttitudeProviderEvents,
StelaBasicInterpolator inInter,
double maxShiftIn,
double minStepSizeIn)
Build a StelaGTOPropagator.
|
StelaGTOPropagator(FirstOrderIntegrator integr,
AttitudeProvider inAttitudeProvider,
StelaBasicInterpolator inInter,
double maxShiftIn,
double minStepSizeIn)
Build a StelaGTOPropagator.
|
StelaGTOPropagator(FirstOrderIntegrator integr,
double maxShiftIn,
double minStepSizeIn)
Build a StelaGTOPropagator.
|
Modifier and Type | Method and Description |
---|---|
void |
addAdditionalEquations(StelaAdditionalEquations addEquations)
Add a set of user-specified additional equations to be integrated along with the orbit
propagation.
|
void |
addAttitudeEquation(StelaAttitudeAdditionalEquations addEqu)
Add a set of user-specified attitude equations to be integrated along with the orbit
propagation.
|
void |
addForceModel(StelaForceModel forceModel)
Add a force model to the global perturbation model.
|
protected void |
dragComputation()
update drag computation need before creating differential equations
|
List<StelaAdditionalEquations> |
getAddEquations()
Get the additional equations.
|
protected double[] |
getdDragdt()
Method that returns the drag value in memory, only used for n steps drag computation purposes
|
List<StelaForceModel> |
getForceModels()
Get perturbing force models list.
|
ForcesStepHandler |
getForcesStepHandler()
Getter for forces step handler.
|
List<AbstractStelaGaussContribution> |
getGaussForceModels()
Get perturbing Gauss force models list.
|
List<AbstractStelaLagrangeContribution> |
getLagrangeForceModels()
Get perturbing Lagrange force models list.
|
protected double |
getMass(AbsoluteDate date)
Get the mass.
|
OrbitNatureConverter |
getOrbitNatureConverter()
Get the mean/osculating orbit converter.
|
AbsoluteDate |
getReferenceDate()
Get the reference date
|
protected List<PatriusStepHandler> |
getStepHandlers()
Provides a list of step handlers to be performed during propagation.
|
protected void |
initialOrbitTest(SpacecraftState initialState2)
tests whether the initial orbit is under Perigee Altitude
|
protected boolean |
isRecomputeDrag() |
SpacecraftState |
propagate(AbsoluteDate start,
AbsoluteDate target)
Propagate from a start date towards a target date.
|
protected SpacecraftState |
propagateSpacecraftState(AbsoluteDate date)
Extrapolate a spacecraftState up to a specific target date.
|
protected SpacecraftState |
propagationManagement(SpacecraftState state,
double stepSize,
double dt,
AbsoluteDate target)
Manages the current step, method to override when user wants to deal with exceptions during the propagation.
|
protected SpacecraftState |
propagationManagementLoop(double currentStepSize,
AbsoluteDate target,
double dt,
String message)
Reduce step size until propagation over next step returns physical values.
|
void |
removeForceModels()
Remove all perturbing force models from the global perturbation model.
|
void |
setAttitudeProvider(AttitudeProvider attitudeProvider)
Set attitude provider for forces and events computation.
|
void |
setAttitudeProviderEvents(AttitudeProvider attitudeEventsProvider)
Set attitude provider for events computation.
|
void |
setAttitudeProviderForces(AttitudeProvider attitudeForcesProvider)
Set attitude provider for forces computation.
|
protected void |
setdDragdt(double[] indDragdt)
Specify the drag values, only used for n steps drag computation purposes
|
void |
setInitialState(SpacecraftState initialState,
double massIn,
boolean isOsculatingIn)
Set the initial state.
|
void |
setNatureConverter(List<StelaForceModel> forceModels)
Set the force models to be used in the mean <=> osculating converter.
|
acceptStep, addAdditionalStateProvider, addEventDetector, addTimeDerivativeData, basicPropagate, clearEventsDetectors, getAttitudeProvider, getAttitudeProviderEvents, getAttitudeProviderForces, getEventsDetectors, getFrame, getGeneratedEphemeris, getInitialState, getMode, getPVCoordinates, getPvProvider, getSpacecraftState, getTimeDerivativesList, goAhead, isRegisterTimeDerivatives, isStoreTimeDerivatives, propagate, resetInitialState, setEphemerisMode, setIntegrator, setMasterMode, setMasterMode, setOrbitFrame, setSlaveMode, setStartDate, setStoreTimeDerivatives
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getNativeFrame
protected boolean wasException
protected AbsoluteDate maxDate
protected int stepCounter
public StelaGTOPropagator(FirstOrderIntegrator integr) throws PatriusException
After creation, there is no orbit, method setInitialState
must be
called. This constructor uses a Default Law as AttitudeProvider. For a specific Attitude
Provider please use the other constructor. After creation, there are no perturbing forces at
all. This means that if addForceModel
is not called after creation, the integrated orbit will follow a simple
Keplerian evolution.
During reentry, no correction is performed if some results are not physical. As a result, an exception will be thrown if obtained results are not physical.
integr
- the first order integrator to use for extrapolationPatriusException
- exception in reset initial statepublic StelaGTOPropagator(FirstOrderIntegrator integr, double maxShiftIn, double minStepSizeIn) throws PatriusException
After creation, there is no orbit, method setInitialState
must be
called. This constructor uses a the AttitudeProvider given by the user. After creation, there
are no perturbing forces at all. This means that if addForceModel
is
not called after creation, the integrated orbit will follow a simple Keplerian evolution.
No attitude provider is defined. The user should call
setAttitudeProvider(AttitudeProvider)
or
setAttitudeProviderEvents(AttitudeProvider)
or
setAttitudeProviderForces(AttitudeProvider)
integr
- the first order integrator to use for extrapolationmaxShiftIn
- Maximum number of integration steps STELA will try to correct to get some physical
results
(mostly during reentry since integration step is too large). If 0, not correction is
performed.
If more corrections are required, an exception will be thrownminStepSizeIn
- Smallest integration stepsize allowed. STELA will try to reduce stepsize during
reentry to try to
get some physical results. If equals to integrator step size, not correction is done.
If a smaller stepsize than provided value is required, an exception will be thrownPatriusException
- exception in reset initial statepublic StelaGTOPropagator(FirstOrderIntegrator integr, AttitudeProvider inAttitudeProvider, StelaBasicInterpolator inInter, double maxShiftIn, double minStepSizeIn) throws PatriusException
After creation, there is no orbit, method setInitialState
must be
called. This constructor uses a single AttitudeProvider given by the user. After creation,
there are no perturbing forces at all. This means that if addForceModel
is not called after creation, the integrated orbit will follow a simple
Keplerian evolution.
integr
- the first order integrator to use for extrapolationinAttitudeProvider
- attitude providerinInter
- the interpolatormaxShiftIn
- Maximum number of integration steps STELA will try to correct to get some physical
results
(mostly during reentry since integration step is too large). If 0, not correction is
performed.
If more corrections are required, an exception will be thrownminStepSizeIn
- Smallest integration stepsize allowed. STELA will try to reduce stepsize during
reentry to try to
get some physical results. If equals to integrator step size, not correction is done.
If a smaller stepsize than provided value is required, an exception will be thrownPatriusException
- exception in reset initial statepublic StelaGTOPropagator(FirstOrderIntegrator integr, AttitudeProvider inAttitudeProviderForces, AttitudeProvider inAttitudeProviderEvents, StelaBasicInterpolator inInter, double maxShiftIn, double minStepSizeIn) throws PatriusException
After creation, there is no orbit, method setInitialState
must be
called. This constructor uses AttitudeProvider for forces and events computations given by
the user. After creation, there are no perturbing forces at all. This means that if
addForceModel
is not called after creation, the integrated orbit will
follow a simple Keplerian evolution.
integr
- the first order integrator to use for extrapolationinAttitudeProviderForces
- attitude provider for forces computationinAttitudeProviderEvents
- attitude provider for events computationinInter
- the interpolatormaxShiftIn
- Maximum number of integration steps STELA will try to correct to get some physical
results
(mostly during reentry since integration step is too large). If 0, not correction is
performed.
If more corrections are required, an exception will be thrownminStepSizeIn
- Smallest integration stepsize allowed. STELA will try to reduce stepsize during
reentry to try to
get some physical results. If equals to integrator step size, not correction is done.
If a smaller stepsize than provided value is required, an exception will be thrownPatriusException
- exception in reset initial stateprotected boolean isRecomputeDrag()
public void setInitialState(SpacecraftState initialState, double massIn, boolean isOsculatingIn) throws PatriusException
initialState
- initial state (no mass information should be provided)massIn
- the initial massisOsculatingIn
- true if initial state is osculatingPatriusException
- OrekitExceptionStelaAbstractPropagator.propagate(AbsoluteDate)
public void addForceModel(StelaForceModel forceModel)
If this method is not called at all, the integrated orbit will follow a simple keplerian evolution.
forceModel
- perturbing StelaForceModel
to addremoveForceModels()
public void setNatureConverter(List<StelaForceModel> forceModels)
Beware to call this method after the addForceModel(StelaForceModel)
method
since the latter overrides the nature converter.
forceModels
- force models to be used in the mean <=> osculating converterpublic void removeForceModels()
Once all perturbing forces have been removed (and as long as no new force model is added), the integrated orbit will follow a simple keplerian evolution.
addForceModel(StelaForceModel)
public List<StelaForceModel> getForceModels()
addForceModel(StelaForceModel)
,
removeForceModels()
public List<AbstractStelaGaussContribution> getGaussForceModels()
addForceModel(StelaForceModel)
,
removeForceModels()
public List<AbstractStelaLagrangeContribution> getLagrangeForceModels()
addForceModel(StelaForceModel)
,
removeForceModels()
public void addAdditionalEquations(StelaAdditionalEquations addEquations)
addEquations
- additional equationsNumericalPropagator
public void addAttitudeEquation(StelaAttitudeAdditionalEquations addEqu)
addEqu
- attitude additional equations for Stela GTO propagatorpublic void setAttitudeProvider(AttitudeProvider attitudeProvider)
ConstantAttitudeLaw
.setAttitudeProvider
in interface Propagator
setAttitudeProvider
in class StelaAbstractPropagator
attitudeProvider
- attitude providerpublic void setAttitudeProviderForces(AttitudeProvider attitudeForcesProvider)
ConstantAttitudeLaw
.setAttitudeProviderForces
in interface Propagator
setAttitudeProviderForces
in class StelaAbstractPropagator
attitudeForcesProvider
- attitude provider for forces computationpublic void setAttitudeProviderEvents(AttitudeProvider attitudeEventsProvider)
ConstantAttitudeLaw
.setAttitudeProviderEvents
in interface Propagator
setAttitudeProviderEvents
in class StelaAbstractPropagator
attitudeEventsProvider
- attitude provider for events computationpublic SpacecraftState propagate(AbsoluteDate start, AbsoluteDate target) throws PropagationException
Those propagators use a start date and a target date to compute the propagated state. For propagators using event detection mechanism, if the provided start date is different from the initial state date, a first, simple propagation is performed, without processing any event computation. Then complete propagation is performed from start date to target date.
Note that mean elements are returned.propagate
in interface Propagator
propagate
in class StelaAbstractPropagator
start
- start date from which orbit state should be propagatedtarget
- target date to which orbit state should be propagatedPropagationException
- if state cannot be propagatedprotected List<PatriusStepHandler> getStepHandlers()
getStepHandlers
in class StelaAbstractPropagator
protected void initialOrbitTest(SpacecraftState initialState2) throws PatriusException
initialState2
- the initial statePatriusException
- the orekit exceptionprotected SpacecraftState propagateSpacecraftState(AbsoluteDate date) throws PatriusException
propagateSpacecraftState
in class StelaAbstractPropagator
date
- target date for the orbitPatriusException
- * if some parameters are out of boundsprotected void dragComputation()
protected SpacecraftState propagationManagement(SpacecraftState state, double stepSize, double dt, AbsoluteDate target) throws PatriusException
propagationManagement
in class StelaAbstractPropagator
state
- the current SpacecraftStatestepSize
- the current stepsizedt
- the dt timetarget
- target date to propagatePatriusException
- Orekit exceptionprotected SpacecraftState propagationManagementLoop(double currentStepSize, AbsoluteDate target, double dt, String message) throws PropagationException
currentStepSize
- the initial stepSizetarget
- the target datedt
- the dt timemessage
- the exception messagePropagationException
- a propagation exceptionprotected double getMass(AbsoluteDate date) throws PropagationException
getMass
in class StelaAbstractPropagator
date
- target date for the orbitPropagationException
- if some parameters are out of boundspublic AbsoluteDate getReferenceDate()
public List<StelaAdditionalEquations> getAddEquations()
public OrbitNatureConverter getOrbitNatureConverter()
protected void setdDragdt(double[] indDragdt)
indDragdt
- the drag values to setprotected double[] getdDragdt()
public ForcesStepHandler getForcesStepHandler()
Copyright © 2023 CNES. All rights reserved.