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.
|
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 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.
|
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.
|
acceptStep, addAdditionalStateProvider, addEventDetector, addTimeDerivativeData, basicPropagate, clearEventsDetectors, getAttitudeProvider, getAttitudeProviderEvents, getAttitudeProviderForces, getEventsDetectors, getFrame, getGeneratedEphemeris, getInitialState, getMode, getPVCoordinates, getPvProvider, getTimeDerivativesList, goAhead, isRegisterTimeDerivatives, isStoreTimeDerivatives, propagate, resetInitialState, setEphemerisMode, setIntegrator, setMasterMode, setMasterMode, setOrbitFrame, setSlaveMode, setStartDate, setStoreTimeDerivatives
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 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 SpacecraftState propagateSpacecraftState(AbsoluteDate date) throws PatriusException
propagateSpacecraftState
in class StelaAbstractPropagator
date
- target date for the orbitPatriusException
- * if some parameters are out of boundsprotected 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 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 © 2019 CNES. All rights reserved.