public class FieldIntegratedEphemeris<T extends CalculusFieldElement<T>> extends FieldAbstractAnalyticalPropagator<T> implements FieldBoundedPropagator<T>
Instances of this class are built automatically when the getEphemerisGenerator
method has been called. They are created when propagation is over.
Random access to any intermediate state of the orbit throughout the propagation range is
possible afterwards through this object.
A typical use case is for numerically integrated orbits, which can be used by algorithms that need to wander around according to their own algorithm without cumbersome tight links with the integrator.
As this class implements the Propagator
interface, it can itself be used in batch mode to build another instance of the
same type. This is however not recommended since it would be a waste of resources.
Note that this class stores all intermediate states along with interpolation models, so it may be memory intensive.
NumericalPropagator
DEFAULT_MASS
Constructor and Description |
---|
FieldIntegratedEphemeris(FieldAbsoluteDate<T> startDate,
FieldAbsoluteDate<T> minDate,
FieldAbsoluteDate<T> maxDate,
FieldStateMapper<T> mapper,
PropagationType type,
FieldDenseOutputModel<T> model,
FieldArrayDictionary<T> unmanaged,
List<FieldAdditionalStateProvider<T>> providers,
String[] equations)
Creates a new instance of IntegratedEphemeris.
|
FieldIntegratedEphemeris(FieldAbsoluteDate<T> startDate,
FieldAbsoluteDate<T> minDate,
FieldAbsoluteDate<T> maxDate,
FieldStateMapper<T> mapper,
PropagationType type,
FieldDenseOutputModel<T> model,
Map<String,T[]> unmanaged,
List<FieldAdditionalStateProvider<T>> providers,
String[] equations)
|
Modifier and Type | Method and Description |
---|---|
protected FieldSpacecraftState<T> |
basicPropagate(FieldAbsoluteDate<T> date)
Propagate an orbit without any fancy features.
|
Frame |
getFrame()
Get the frame in which the orbit is propagated.
|
FieldSpacecraftState<T> |
getInitialState()
Get the propagator initial state.
|
protected T |
getMass(FieldAbsoluteDate<T> date)
Get the mass.
|
FieldAbsoluteDate<T> |
getMaxDate()
Get the last date of the range.
|
FieldAbsoluteDate<T> |
getMinDate()
Get the first date of the range.
|
protected List<ParameterDriver> |
getParametersDrivers()
Get the parameters driver for propagation model.
|
TimeStampedFieldPVCoordinates<T> |
getPVCoordinates(FieldAbsoluteDate<T> date,
Frame frame)
Get the
FieldPVCoordinates of the body in the selected frame. |
protected FieldOrbit<T> |
propagateOrbit(FieldAbsoluteDate<T> date,
T[] parameters)
Extrapolate an orbit up to a specific target date.
|
void |
resetInitialState(FieldSpacecraftState<T> state)
Reset the propagator initial state.
|
protected void |
resetIntermediateState(FieldSpacecraftState<T> state,
boolean forward)
Reset an intermediate state.
|
acceptStep, addEventDetector, clearEventsDetectors, getEphemerisGenerator, getEventsDetectors, getParameters, getPvProvider, propagate
addAdditionalStateProvider, getAdditionalStateProviders, getAttitudeProvider, getField, getManagedAdditionalStates, getMultiplexer, getStartDate, initializePropagation, isAdditionalStateManaged, propagate, setAttitudeProvider, setStartDate, stateChanged, updateAdditionalStates, updateUnmanagedStates
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addAdditionalStateProvider, addEventDetector, clearEventsDetectors, clearStepHandlers, getAdditionalStateProviders, getAttitudeProvider, getEphemerisGenerator, getEventsDetectors, getManagedAdditionalStates, getMultiplexer, isAdditionalStateManaged, propagate, propagate, setAttitudeProvider, setStepHandler, setStepHandler
@Deprecated public FieldIntegratedEphemeris(FieldAbsoluteDate<T> startDate, FieldAbsoluteDate<T> minDate, FieldAbsoluteDate<T> maxDate, FieldStateMapper<T> mapper, PropagationType type, FieldDenseOutputModel<T> model, Map<String,T[]> unmanaged, List<FieldAdditionalStateProvider<T>> providers, String[] equations)
FieldIntegratedEphemeris(FieldAbsoluteDate,
FieldAbsoluteDate, FieldAbsoluteDate, FieldStateMapper, PropagationType,
FieldDenseOutputModel, FieldArrayDictionary, List, String[])
startDate
- Start date of the integration (can be minDate or maxDate)minDate
- first date of the rangemaxDate
- last date of the rangemapper
- mapper between raw double components and spacecraft statetype
- type of orbit to output (mean or osculating)model
- underlying raw mathematical modelunmanaged
- unmanaged additional states that must be simply copiedproviders
- providers for pre-integrated statesequations
- names of additional equationspublic FieldIntegratedEphemeris(FieldAbsoluteDate<T> startDate, FieldAbsoluteDate<T> minDate, FieldAbsoluteDate<T> maxDate, FieldStateMapper<T> mapper, PropagationType type, FieldDenseOutputModel<T> model, FieldArrayDictionary<T> unmanaged, List<FieldAdditionalStateProvider<T>> providers, String[] equations)
startDate
- Start date of the integration (can be minDate or maxDate)minDate
- first date of the rangemaxDate
- last date of the rangemapper
- mapper between raw double components and spacecraft statetype
- type of orbit to output (mean or osculating)model
- underlying raw mathematical modelunmanaged
- unmanaged additional states that must be simply copiedproviders
- generators for pre-integrated statesequations
- names of additional equationsprotected FieldSpacecraftState<T> basicPropagate(FieldAbsoluteDate<T> date)
This method is similar in spirit to the FieldAbstractAnalyticalPropagator.propagate(org.orekit.time.FieldAbsoluteDate<T>, org.orekit.time.FieldAbsoluteDate<T>)
method,
except that it does not call any handler during
propagation, nor any discrete events, not additional states. It always
stop exactly at the specified date.
basicPropagate
in class FieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
date
- target date for propagationprotected FieldOrbit<T> propagateOrbit(FieldAbsoluteDate<T> date, T[] parameters)
propagateOrbit
in class FieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
date
- target date for the orbitparameters
- model parametersprotected T getMass(FieldAbsoluteDate<T> date)
getMass
in class FieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
date
- target date for the orbitpublic TimeStampedFieldPVCoordinates<T> getPVCoordinates(FieldAbsoluteDate<T> date, Frame frame)
FieldPVCoordinates
of the body in the selected frame.getPVCoordinates
in interface FieldPVCoordinatesProvider<T extends CalculusFieldElement<T>>
getPVCoordinates
in class FieldAbstractPropagator<T extends CalculusFieldElement<T>>
date
- current dateframe
- the frame where to define the positionpublic FieldAbsoluteDate<T> getMinDate()
getMinDate
in interface FieldBoundedPropagator<T extends CalculusFieldElement<T>>
public FieldAbsoluteDate<T> getMaxDate()
getMaxDate
in interface FieldBoundedPropagator<T extends CalculusFieldElement<T>>
public Frame getFrame()
FieldAbstractPropagator
The propagation frame is the definition frame of the initial state, so this method should be called after this state has been set, otherwise it may return null.
getFrame
in interface FieldPropagator<T extends CalculusFieldElement<T>>
getFrame
in class FieldAbstractPropagator<T extends CalculusFieldElement<T>>
FieldPropagator.resetInitialState(FieldSpacecraftState)
public void resetInitialState(FieldSpacecraftState<T> state)
resetInitialState
in interface FieldPropagator<T extends CalculusFieldElement<T>>
resetInitialState
in class FieldAbstractPropagator<T extends CalculusFieldElement<T>>
state
- new initial state to considerprotected void resetIntermediateState(FieldSpacecraftState<T> state, boolean forward)
resetIntermediateState
in class FieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
state
- new intermediate state to considerforward
- if true, the intermediate state is valid for
propagations after itselfpublic FieldSpacecraftState<T> getInitialState()
getInitialState
in interface FieldPropagator<T extends CalculusFieldElement<T>>
getInitialState
in class FieldAbstractPropagator<T extends CalculusFieldElement<T>>
protected List<ParameterDriver> getParametersDrivers()
getParametersDrivers
in class FieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>
Copyright © 2002-2022 CS GROUP. All rights reserved.