From 6ac2026a99eeba2adaf670b0ccb2e7a102c5aed6 Mon Sep 17 00:00:00 2001 From: Dominic Dirkx Date: Wed, 25 Sep 2024 21:02:03 +0200 Subject: [PATCH 01/10] Corrections for extended precision compilation --- .../getZeroProperModeRotationalInitialState.h | 2 +- .../simulation/estimation_setup/fitOrbitToEphemeris.h | 2 +- include/tudat/simulation/estimation_setup/observations.h | 4 ++-- .../simulation/estimation_setup/processTrackingTxtFile.h | 9 +++------ .../simulation/estimation_setup/simulateObservations.h | 2 +- .../simulation/propagation_setup/propagationResults.h | 6 +++--- 6 files changed, 11 insertions(+), 14 deletions(-) diff --git a/include/tudat/astro/propagators/getZeroProperModeRotationalInitialState.h b/include/tudat/astro/propagators/getZeroProperModeRotationalInitialState.h index e30e03e576..51228296b3 100755 --- a/include/tudat/astro/propagators/getZeroProperModeRotationalInitialState.h +++ b/include/tudat/astro/propagators/getZeroProperModeRotationalInitialState.h @@ -338,7 +338,7 @@ std::map< TimeType, Eigen::Matrix< StateScalarType, Eigen::Dynamic, 1 > > > > template< typename TimeType = double, typename StateScalarType = double > std::shared_ptr< DampedInitialRotationalStateResults< TimeType, StateScalarType > > -getZeroProperModeRotationalStateWithStruct( + getZeroProperModeRotationalStateWithStruct( const simulation_setup::SystemOfBodies& bodies, const std::shared_ptr< SingleArcPropagatorSettings< StateScalarType, TimeType > > propagatorSettings, const double bodyMeanRotationRate, diff --git a/include/tudat/simulation/estimation_setup/fitOrbitToEphemeris.h b/include/tudat/simulation/estimation_setup/fitOrbitToEphemeris.h index f3d21c2b6c..6b751ee600 100644 --- a/include/tudat/simulation/estimation_setup/fitOrbitToEphemeris.h +++ b/include/tudat/simulation/estimation_setup/fitOrbitToEphemeris.h @@ -122,7 +122,7 @@ std::shared_ptr< EstimationOutput< StateScalarType, TimeType > > createBestFitTo std::pair< std::vector< std::shared_ptr< observation_models::ObservationModelSettings > >, std::shared_ptr< observation_models::ObservationCollection< StateScalarType, TimeType > > > - observationCollectionAndModelSettings = simulatePseudoObservations( + observationCollectionAndModelSettings = simulatePseudoObservations< TimeType, StateScalarType >( bodies, bodiesToPropagate, centralBodies, initialTime, finalTime, dataPointInterval ); std::shared_ptr< observation_models::ObservationCollection< StateScalarType, TimeType > > observationCollection = observationCollectionAndModelSettings.second; diff --git a/include/tudat/simulation/estimation_setup/observations.h b/include/tudat/simulation/estimation_setup/observations.h index 6f583a924c..9e58f0a425 100644 --- a/include/tudat/simulation/estimation_setup/observations.h +++ b/include/tudat/simulation/estimation_setup/observations.h @@ -419,7 +419,7 @@ class ObservationCollection return utilities::staticCastVector( concatenatedTimes_ ); } - std::vector< TimeType > getConcatenatedWeightVector( ) + std::vector< ObservationScalarType > getConcatenatedWeightVector( ) { // for now, this only takes the weights set from the single observation sets. // TODO may require a change later to accomodate other sources. @@ -1126,7 +1126,7 @@ inline std::shared_ptr< SingleObservationSet< ObservationScalarType, TimeType > { return std::make_shared< SingleObservationSet< ObservationScalarType, TimeType > >( observableType, linkEnds, observations, observationTimes, referenceLinkEnd, - std::vector< Eigen::Matrix< ObservationScalarType, Eigen::Dynamic, 1 > >( ), nullptr, ancilliarySettings ); + std::vector< Eigen::VectorXd >( ), nullptr, ancilliarySettings ); } //template< typename ObservationScalarType = double, typename TimeType = double, diff --git a/include/tudat/simulation/estimation_setup/processTrackingTxtFile.h b/include/tudat/simulation/estimation_setup/processTrackingTxtFile.h index bb0fe18f2d..c33be00734 100644 --- a/include/tudat/simulation/estimation_setup/processTrackingTxtFile.h +++ b/include/tudat/simulation/estimation_setup/processTrackingTxtFile.h @@ -237,8 +237,7 @@ createTrackingTxtFileObservationCollection( std::vector observableTypesToProcess = std::vector(), const std::map earthFixedGroundStationPositions = simulation_setup::getApproximateDsnGroundStationPositions(), // const std::map earthFixedGroundStationPositions = simulation_setup::getApproximateGroundStationPositionsFromFile(), // TODO: get ground stations from file - const ObservationAncilliarySimulationSettings& ancillarySettings = ObservationAncilliarySimulationSettings(), - const std::pair startAndEndTimesToProcess = std::make_pair(TUDAT_NAN, TUDAT_NAN)) + const ObservationAncilliarySimulationSettings& ancillarySettings = ObservationAncilliarySimulationSettings() ) { // Make sure processing the tracking file was successful @@ -332,8 +331,7 @@ createTrackingTxtFileObservationCollection( const std::vector observableTypesToProcess = std::vector(), const std::map earthFixedGroundStationPositions = simulation_setup::getApproximateDsnGroundStationPositions(), // std::map earthFixedGroundStationPositions = simulation_setup::getApproximateGroundStationPositionsFromFile(), - const ObservationAncilliarySimulationSettings& ancillarySettings = ObservationAncilliarySimulationSettings(), - std::pair startAndEndTimesToProcess = std::make_pair(TUDAT_NAN, TUDAT_NAN)) + const ObservationAncilliarySimulationSettings& ancillarySettings = ObservationAncilliarySimulationSettings()) { // Create processed tracking file contents auto processedTrackingTxtFileContents = std::make_shared(rawTrackingTxtFileContents, @@ -344,8 +342,7 @@ createTrackingTxtFileObservationCollection( return createTrackingTxtFileObservationCollection(processedTrackingTxtFileContents, observableTypesToProcess, earthFixedGroundStationPositions, - ancillarySettings, - startAndEndTimesToProcess); + ancillarySettings); } } // namespace observation_models diff --git a/include/tudat/simulation/estimation_setup/simulateObservations.h b/include/tudat/simulation/estimation_setup/simulateObservations.h index 24a85a0315..2537199590 100644 --- a/include/tudat/simulation/estimation_setup/simulateObservations.h +++ b/include/tudat/simulation/estimation_setup/simulateObservations.h @@ -550,7 +550,7 @@ std::shared_ptr< observation_models::ObservationCollection< ObservationScalarTyp std::shared_ptr< observation_models::SingleObservationSet > observationSet = std::make_shared< observation_models::SingleObservationSet >( observableType, linkEnds, observationsTimesAndValues.first, observationsTimesAndValues.second, referenceLinkEnd, - std::vector< Eigen::Matrix< ObservationScalarType, Eigen::Dynamic, 1 > >( ), nullptr, currentAncilliarySettings ); + std::vector< Eigen::VectorXd >( ), nullptr, currentAncilliarySettings ); sortedObservations[ observableType ][ linkEnds ].push_back( observationSet ); diff --git a/include/tudat/simulation/propagation_setup/propagationResults.h b/include/tudat/simulation/propagation_setup/propagationResults.h index 015d8ac1c2..5ea7087e4a 100644 --- a/include/tudat/simulation/propagation_setup/propagationResults.h +++ b/include/tudat/simulation/propagation_setup/propagationResults.h @@ -934,7 +934,7 @@ namespace tudat std::vector< std::map< TimeType, Eigen::VectorXd > > getConcatenatedDependentVariableResults( ) { - std::vector< std::map< TimeType, Eigen::VectorXd > > concatenatedResults; + std::vector< std::map< TimeType, Eigen::VectorXd > > concatenatedResults; if( singleArcResults_->getSolutionIsCleared( ) != multiArcResults_->getSolutionIsCleared( ) ) { throw std::runtime_error( "Error when getting concatenated hybrid-arc results, constituent results have inconsistent cleared state." ); @@ -946,9 +946,9 @@ namespace tudat } if( !singleArcResults_->getSolutionIsCleared( ) ) { - concatenatedResults.push_back( singleArcResults_->getEquationsOfMotionNumericalSolution( ) ); + concatenatedResults.push_back( singleArcResults_->getDependentVariableHistory( ) ); std::vector< std::map< TimeType, Eigen::VectorXd > > - multiArcResults = multiArcResults_->getConcatenatedEquationsOfMotionResults( ); + multiArcResults = multiArcResults_->getConcatenatedDependentVariableResults( ); concatenatedResults.insert( concatenatedResults.end( ), multiArcResults.begin( ), multiArcResults.end( ) ); } return concatenatedResults; From 84496fa2ec1fe806929a76985cdd747f25180e76 Mon Sep 17 00:00:00 2001 From: DominicDirkx Date: Wed, 25 Sep 2024 21:04:12 +0200 Subject: [PATCH 02/10] Update build_and_test.yml --- .github/workflows/build_and_test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 13d70e8f64..23d8cf2e02 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -138,6 +138,7 @@ jobs: -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_C_COMPILER_LAUNCHER=ccache + -DTUDAT_BUILD_WITH_EXTENDED_PRECISION_PROPAGATION_TOOLS=ON -DTUDAT_BUILD_GITHUB_ACTIONS=ON From 0156cfe9a2a4633b489f0cecf15dbdc49790d183 Mon Sep 17 00:00:00 2001 From: Dominic Dirkx Date: Wed, 25 Sep 2024 21:07:34 +0200 Subject: [PATCH 03/10] Bump --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c126df6705..167c68f472 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -67,7 +67,7 @@ option(TUDAT_BUILD_STATIC_LIBRARY "Build tudat as a static library, instead of d # Build static library instead of dynamic. option(TUDAT_BUILD_WITH_FILTERS "Build Tudat with preliminary Kalman Filter functionality." OFF) - + # Build sofa interface. option(TUDAT_BUILD_WITH_SOFA_INTERFACE "Build Tudat with sofa interface." ON) From cb407e04015e28c051f344ef4d92699e65083b96 Mon Sep 17 00:00:00 2001 From: DominicDirkx Date: Wed, 25 Sep 2024 21:10:10 +0200 Subject: [PATCH 04/10] Update build_and_test.yml --- .github/workflows/build_and_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 23d8cf2e02..087cf4a711 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -138,7 +138,7 @@ jobs: -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_C_COMPILER_LAUNCHER=ccache - -DTUDAT_BUILD_WITH_EXTENDED_PRECISION_PROPAGATION_TOOLS=ON + #-DTUDAT_BUILD_WITH_EXTENDED_PRECISION_PROPAGATION_TOOLS=ON -DTUDAT_BUILD_GITHUB_ACTIONS=ON From eb863ab991ea1d1652bdf097cab2cd1696bd527f Mon Sep 17 00:00:00 2001 From: DominicDirkx Date: Wed, 25 Sep 2024 21:15:16 +0200 Subject: [PATCH 05/10] Update build_and_test.yml --- .github/workflows/build_and_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 087cf4a711..23d8cf2e02 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -138,7 +138,7 @@ jobs: -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_C_COMPILER_LAUNCHER=ccache - #-DTUDAT_BUILD_WITH_EXTENDED_PRECISION_PROPAGATION_TOOLS=ON + -DTUDAT_BUILD_WITH_EXTENDED_PRECISION_PROPAGATION_TOOLS=ON -DTUDAT_BUILD_GITHUB_ACTIONS=ON From 5b2c1806445edb8d83458beea3c4db9c301c4db3 Mon Sep 17 00:00:00 2001 From: Dominic Dirkx Date: Thu, 26 Sep 2024 14:37:15 +0200 Subject: [PATCH 06/10] Added additional error output --- tests/src/astro/basic_astro/unitTestTimeConversions.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/src/astro/basic_astro/unitTestTimeConversions.cpp b/tests/src/astro/basic_astro/unitTestTimeConversions.cpp index 918162e730..7e567a6811 100644 --- a/tests/src/astro/basic_astro/unitTestTimeConversions.cpp +++ b/tests/src/astro/basic_astro/unitTestTimeConversions.cpp @@ -90,14 +90,15 @@ BOOST_AUTO_TEST_CASE( testJulianDayToSecondsConversions ) const long double computedSecondsSinceEpoch = convertJulianDayToSecondsSinceEpoch< long double >( julianDay, referenceEpoch ); + std::cout<::epsilon( )<<" "< Date: Thu, 26 Sep 2024 14:38:54 +0200 Subject: [PATCH 07/10] Corrected cast --- tests/src/astro/basic_astro/unitTestTimeConversions.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/src/astro/basic_astro/unitTestTimeConversions.cpp b/tests/src/astro/basic_astro/unitTestTimeConversions.cpp index 7e567a6811..89a62e1083 100644 --- a/tests/src/astro/basic_astro/unitTestTimeConversions.cpp +++ b/tests/src/astro/basic_astro/unitTestTimeConversions.cpp @@ -420,7 +420,7 @@ BOOST_AUTO_TEST_CASE( testTimeConversions ) BOOST_AUTO_TEST_CASE( testTimeConversionsLong ) { // Define test dates (arbitrary). - const long double testModifiedJulianDay = static_cast< long double >( 54583.87 ); + const long double testModifiedJulianDay = 54583.87L; const long double testJulianDay = testModifiedJulianDay + JULIAN_DAY_AT_0_MJD_LONG; // Test whether back and forth conversion between JD and MJD provides correct resulats. From 81eeb924cf8c4c4c1e61937b8e715f47ff49dcda Mon Sep 17 00:00:00 2001 From: Dominic Dirkx Date: Thu, 26 Sep 2024 14:55:52 +0200 Subject: [PATCH 08/10] Bump --- include/tudat/astro/basic_astro/timeConversions.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/tudat/astro/basic_astro/timeConversions.h b/include/tudat/astro/basic_astro/timeConversions.h index a423825418..2e033c8d2f 100644 --- a/include/tudat/astro/basic_astro/timeConversions.h +++ b/include/tudat/astro/basic_astro/timeConversions.h @@ -144,7 +144,8 @@ TimeScalarType convertJulianDayToSecondsSinceEpoch( const TimeScalarType julianDay, const TimeScalarType epochSinceJulianDayZero = getJulianDayOnJ2000< TimeScalarType >( ) ) { - return ( julianDay - epochSinceJulianDayZero ) * physical_constants::getJulianDay< TimeScalarType >( ); + + return ( julianDay - epochSinceJulianDayZero ) * physical_constants::getJulianDay< TimeScalarType >( ); } //! Compute Julian day from seconds since reference Julian day epoch. From 541713587c2df7e74c7f8680aea0870fcf36d456 Mon Sep 17 00:00:00 2001 From: DominicDirkx Date: Fri, 27 Sep 2024 11:37:33 +0200 Subject: [PATCH 09/10] Update build_and_test.yml Changed to 3 threads instead of 4 --- .github/workflows/build_and_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 23d8cf2e02..483442c4b3 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -145,7 +145,7 @@ jobs: - name: Build # Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator). Use multiple cpu cores available in the runner. shell: bash -l {0} - run: cmake --build "${{ github.workspace }}/build" --config "${{ matrix.build_type }}" -j4 + run: cmake --build "${{ github.workspace }}/build" --config "${{ matrix.build_type }}" -j3 - name: Test From 8f2022a8a6e0b5f74a42a517ac98170eb3c758da Mon Sep 17 00:00:00 2001 From: DominicDirkx Date: Tue, 1 Oct 2024 14:07:47 +0200 Subject: [PATCH 10/10] Update build_and_test.yml --- .github/workflows/build_and_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 483442c4b3..fd94759922 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -138,7 +138,7 @@ jobs: -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_C_COMPILER_LAUNCHER=ccache - -DTUDAT_BUILD_WITH_EXTENDED_PRECISION_PROPAGATION_TOOLS=ON + #-DTUDAT_BUILD_WITH_EXTENDED_PRECISION_PROPAGATION_TOOLS=ON -DTUDAT_BUILD_GITHUB_ACTIONS=ON