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
      • addAdditionalDataProvider

        public void addAdditionalDataProvider​(AdditionalDataProvider<?> provider)
        Add a set of user-specified data to be computed along with the orbit propagation.
        Specified by:
        addAdditionalDataProvider in interface Propagator
        Parameters:
        provider - provider for additional data
      • 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
      • initializeAdditionalData

        protected void initializeAdditionalData​(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
      • isAdditionalDataManaged

        public boolean isAdditionalDataManaged​(String name)
        Check if an additional data is managed.

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

        Additional data that are present in the initial state but have no evolution method registered are not considered as managed data. These unmanaged additional data 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 data.

        Specified by:
        isAdditionalDataManaged in interface Propagator
        Parameters:
        name - name of the additional data
        Returns:
        true if the additional data is managed
      • getManagedAdditionalData

        public String[] getManagedAdditionalData()
        Get all the names of all managed additional data.
        Specified by:
        getManagedAdditionalData in interface Propagator
        Returns:
        names of all managed additional data
      • 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