Proposal to add getBaseInitialState to Propagator

The Propagator interface has a getInitialState method to retrieve the initial state. This state is set up either from implementations constructors or using the resetInitialState method. This can include some unmanaged data in addition to orbit, attitude and mass.

It is possible to add managed data to the state generated by the propagate method, either using addAdditionalDataProvider (available to all propagators) or addAdditionalDerivativesProvider for integrated propagators. These additional states are not returned by getInitialState, hence getInitialState and propagate(getInitialState().getDate()) return different values.

I suggest to have a getBaseInitialState() method in the Propagator interface that reproduces the current behavior and change getInitialState() semantic to return the additional data too.

This is of course an incompatible change as it modifies a public interface and it changes semantics of an existing method, so it can only be introduced in 14.0, not in 13.1.7.

What do you think about this change?

+1 for this change!

Hi Luc,

Why not. What would happen when the initial state has been reset by a propagation? Does the base state still refers to the actual original state (so a different epoch than “initial” state) or is it updated as well?

Cheers,
Romain

It is reset, just as it is now.
You can look at branch issue-1974 to see the proposed changes.

+1 for the change

Cheers
Vincent

Hi @luc

A small question regarding this change. Do you think is solves the following issue?

Thanks

Bryan

I am not sure, but it could. For sure getInitialState was lacking the provider for STM and now it should include it.