diff --git a/include/tudat/basics/utilities.h b/include/tudat/basics/utilities.h index 85ec8c361f..2270df664d 100755 --- a/include/tudat/basics/utilities.h +++ b/include/tudat/basics/utilities.h @@ -873,7 +873,7 @@ std::vector< T > getStlVectorSegment( const std::vector< T > originalVector, con } template< typename T, typename S > -std::vector< T > staticCastVector( const std::vector< S > originalVector ) +std::vector< T > staticCastVector( const std::vector< S >& originalVector ) { std::vector< T > castVector; for( unsigned int i = 0; i < originalVector.size( ); i++ ) @@ -883,6 +883,17 @@ std::vector< T > staticCastVector( const std::vector< S > originalVector ) return castVector; } +template< typename T, typename S, typename U > +std::map< T, U > staticCastMapKeys( const std::map< S, U >& originalMap ) +{ + std::map< T, U > castMap; + for( auto it : originalMap ) + { + castMap[ static_cast< T >( it.first) ] = it.second; + } + return castMap; +} + template Eigen::Matrix< T, Eigen::Dynamic, 1 > getSuccesivelyConcatenatedVector( const Eigen::Matrix< T, Eigen::Dynamic, 1 > baseVector, const unsigned int numberOfConcatenations ) diff --git a/include/tudat/simulation/propagation_setup/dynamicsSimulator.h b/include/tudat/simulation/propagation_setup/dynamicsSimulator.h index bcdef8adcf..30786087cf 100644 --- a/include/tudat/simulation/propagation_setup/dynamicsSimulator.h +++ b/include/tudat/simulation/propagation_setup/dynamicsSimulator.h @@ -1132,6 +1132,8 @@ class SingleArcDynamicsSimulator: public DynamicsSimulator< StateScalarType, Tim return propagationResults_->equationsOfMotionNumericalSolution_; } + + //! Function to return the map of state history of numerically integrated bodies, in propagation coordinates. /*! * Function to return the map of state history of numerically integrated bodies, in propagation coordinates. diff --git a/include/tudat/simulation/propagation_setup/propagationResults.h b/include/tudat/simulation/propagation_setup/propagationResults.h index 0fdb9ef50a..5c139ebcf0 100644 --- a/include/tudat/simulation/propagation_setup/propagationResults.h +++ b/include/tudat/simulation/propagation_setup/propagationResults.h @@ -212,6 +212,11 @@ namespace tudat return equationsOfMotionNumericalSolution_; } + std::map< double, Eigen::Matrix< StateScalarType, Eigen::Dynamic, 1 > > getEquationsOfMotionNumericalSolutionDouble( ) + { + return utilities::staticCastMapKeys< double, Time, Eigen::Matrix< StateScalarType, Eigen::Dynamic, 1 > >( equationsOfMotionNumericalSolution_ ); + } + std::map > & getEquationsOfMotionNumericalSolutionRaw( ) {