Class AbstractPropagator

    • Constructor Detail

      • AbstractPropagator

        protected AbstractPropagator()
        Build a new instance.
    • Method Detail

      • setStartDate

        protected void setStartDate​(AbsoluteDate startDate)
        Set a start date.
        Parameters:
        startDate - start date
      • getStartDate

        protected AbsoluteDate getStartDate()
        Get the start date.
        Returns:
        start date
      • setAttitudeProvider

        public void setAttitudeProvider​(AttitudeProvider attitudeProvider)
        Set attitude provider.
        Specified by:
        setAttitudeProvider in interface Propagator
        Parameters:
        attitudeProvider - attitude provider
      • getFrame

        public Frame getFrame()
        Get the frame in which the orbit is propagated.

        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.

        Specified by:
        getFrame in interface Propagator
        Returns:
        frame in which the orbit is propagated
        See Also:
        Propagator.resetInitialState(SpacecraftState)
      • resetInitialState

        public void resetInitialState​(SpacecraftState state)
        Reset the propagator initial state.
        Specified by:
        resetInitialState in interface Propagator
        Parameters:
        state - new initial state to consider
      • addAdditionalStateProvider

        public void addAdditionalStateProvider​(AdditionalStateProvider provider)
        Add a set of user-specified state parameters to be computed along with the orbit propagation.
        Specified by:
        addAdditionalStateProvider in interface Propagator
        Parameters:
        provider - provider for additional state
      • setupMatricesComputation

        public MatricesHarvester setupMatricesComputation​(String stmName,
                                                          RealMatrix initialStm,
                                                          DoubleArrayDictionary initialJacobianColumns)
        Set up computation of State Transition Matrix and Jacobians matrix with respect to parameters.

        If this method is called, both State Transition Matrix and Jacobians with respect to the force models parameters that will be selected when propagation starts will be automatically computed, and the harvester will allow to retrieve them.

        The arguments for initial matrices must be compatible with the orbit type and position angle that will be used by the propagator.

        The default implementation throws an exception as the method is not supported by all propagators.

        Specified by:
        setupMatricesComputation in interface Propagator
        Parameters:
        stmName - State Transition Matrix state name
        initialStm - initial State Transition Matrix ∂Y/∂Y₀, if null (which is the most frequent case), assumed to be 6x6 identity
        initialJacobianColumns - initial columns of the Jacobians matrix with respect to parameters, if null or if some selected parameters are missing from the dictionary, the corresponding initial column is assumed to be 0
        Returns:
        harvester to retrieve computed matrices during and after propagation
      • createHarvester

        protected AbstractMatricesHarvester createHarvester​(String stmName,
                                                            RealMatrix initialStm,
                                                            DoubleArrayDictionary initialJacobianColumns)
        Create the harvester suitable for propagator.
        Parameters:
        stmName - State Transition Matrix state name
        initialStm - initial State Transition Matrix ∂Y/∂Y₀, if null (which is the most frequent case), assumed to be 6x6 identity
        initialJacobianColumns - initial columns of the Jacobians matrix with respect to parameters, if null or if some selected parameters are missing from the dictionary, the corresponding initial column is assumed to be 0
        Returns:
        harvester to retrieve computed matrices during and after propagation
        Since:
        11.1
      • getHarvester

        protected AbstractMatricesHarvester getHarvester()
        Get the harvester.
        Returns:
        harvester, or null if it was not created
        Since:
        11.1
      • initializeAdditionalStates

        protected void initializeAdditionalStates​(AbsoluteDate target)
        Initialize the additional state providers at the start of propagation.
        Parameters:
        target - date of propagation. Not equal to initialState.getDate().
        Since:
        11.2
      • isAdditionalStateManaged

        public boolean isAdditionalStateManaged​(String name)
        Check if an additional state is managed.

        Managed states are states for which the propagators know how to compute its evolution. They correspond to additional states for which a provider has been registered by calling the addAdditionalStateProvider method.

        Additional states that are present in the initial state but have no evolution method registered are not considered as managed states. These unmanaged additional states are not lost during propagation, though. Their value are piecewise constant between state resets that may change them if some event handler resetState method is called at an event occurrence and happens to change the unmanaged additional state.

        Specified by:
        isAdditionalStateManaged in interface Propagator
        Parameters:
        name - name of the additional state
        Returns:
        true if the additional state is managed
      • getManagedAdditionalStates

        public String[] getManagedAdditionalStates()
        Get all the names of all managed states.
        Specified by:
        getManagedAdditionalStates in interface Propagator
        Returns:
        names of all managed states
      • propagate

        public SpacecraftState propagate​(AbsoluteDate target)
        Propagate towards a target date.

        Simple propagators use only the target date as the specification for computing the propagated state. More feature rich propagators can consider other information and provide different operating modes or G-stop facilities to stop at pinpointed events occurrences. In these cases, the target date is only a hint, not a mandatory objective.

        Specified by:
        propagate in interface Propagator
        Parameters:
        target - target date towards which orbit state should be propagated
        Returns:
        propagated state
      • initializePropagation

        protected void initializePropagation()
        Initialize propagation.
        Since:
        10.1
      • stateChanged

        protected void stateChanged​(SpacecraftState state)
        Notify about a state change.
        Parameters:
        state - new state