ootk 4.0.0-0 → 4.0.0-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +142 -31
- package/{lib → dist}/coordinate/Hill.d.ts +17 -18
- package/{lib → dist}/coordinate/Hill.js +44 -36
- package/dist/coordinate/Hill.js.map +1 -0
- package/{lib → dist}/covariance/CovarianceSample.d.ts +6 -7
- package/{lib → dist}/covariance/CovarianceSample.js +29 -28
- package/dist/covariance/CovarianceSample.js.map +1 -0
- package/{lib → dist}/covariance/StateCovariance.d.ts +4 -3
- package/{lib → dist}/covariance/StateCovariance.js +8 -5
- package/dist/covariance/StateCovariance.js.map +1 -0
- package/{lib → dist}/force/AtmosphericDrag.d.ts +1 -2
- package/{lib → dist}/force/AtmosphericDrag.js +13 -6
- package/dist/force/AtmosphericDrag.js.map +1 -0
- package/{lib → dist}/force/EarthGravity.d.ts +1 -2
- package/{lib → dist}/force/EarthGravity.js +4 -2
- package/dist/force/EarthGravity.js.map +1 -0
- package/{lib → dist}/force/Force.d.ts +3 -2
- package/{lib → dist}/force/Force.js +3 -2
- package/dist/force/Force.js.map +1 -0
- package/{lib → dist}/force/ForceModel.d.ts +4 -5
- package/{lib → dist}/force/ForceModel.js +6 -2
- package/dist/force/ForceModel.js.map +1 -0
- package/{lib → dist}/force/Gravity.d.ts +1 -4
- package/{lib → dist}/force/Gravity.js +3 -4
- package/dist/force/Gravity.js.map +1 -0
- package/{lib → dist}/force/SolarRadiationPressure.d.ts +1 -2
- package/{lib → dist}/force/SolarRadiationPressure.js +6 -4
- package/dist/force/SolarRadiationPressure.js.map +1 -0
- package/{lib → dist}/force/ThirdBodyGravity.d.ts +1 -2
- package/{lib → dist}/force/ThirdBodyGravity.js +4 -3
- package/dist/force/ThirdBodyGravity.js.map +1 -0
- package/{lib → dist}/force/Thrust.d.ts +10 -11
- package/{lib → dist}/force/Thrust.js +8 -3
- package/dist/force/Thrust.js.map +1 -0
- package/dist/interfaces/RfSensorParams.d.ts +28 -0
- package/dist/interfaces/RfSensorParams.js +24 -0
- package/dist/interfaces/RfSensorParams.js.map +1 -0
- package/dist/interfaces/index.d.ts +1 -0
- package/dist/interfaces/index.js +2 -0
- package/dist/interfaces/index.js.map +1 -0
- package/{lib → dist}/interpolator/ChebyshevCoefficients.d.ts +11 -15
- package/{lib → dist}/interpolator/ChebyshevCoefficients.js +19 -15
- package/dist/interpolator/ChebyshevCoefficients.js.map +1 -0
- package/{lib → dist}/interpolator/ChebyshevInterpolator.d.ts +1 -2
- package/{lib → dist}/interpolator/ChebyshevInterpolator.js +2 -2
- package/dist/interpolator/ChebyshevInterpolator.js.map +1 -0
- package/{lib → dist}/interpolator/CubicSpline.d.ts +8 -9
- package/{lib → dist}/interpolator/CubicSpline.js +10 -5
- package/dist/interpolator/CubicSpline.js.map +1 -0
- package/{lib → dist}/interpolator/CubicSplineInterpolator.d.ts +2 -3
- package/{lib → dist}/interpolator/CubicSplineInterpolator.js +6 -4
- package/dist/interpolator/CubicSplineInterpolator.js.map +1 -0
- package/{lib → dist}/interpolator/FieldInterpolator.d.ts +7 -5
- package/{lib → dist}/interpolator/FieldInterpolator.js +6 -3
- package/dist/interpolator/FieldInterpolator.js.map +1 -0
- package/{lib → dist}/interpolator/Interpolator.d.ts +1 -2
- package/{lib → dist}/interpolator/Interpolator.js +1 -2
- package/dist/interpolator/Interpolator.js.map +1 -0
- package/{lib → dist}/interpolator/LagrangeInterpolator.d.ts +8 -10
- package/{lib → dist}/interpolator/LagrangeInterpolator.js +32 -29
- package/dist/interpolator/LagrangeInterpolator.js.map +1 -0
- package/{lib → dist}/interpolator/StateInterpolator.d.ts +2 -4
- package/{lib → dist}/interpolator/StateInterpolator.js +2 -4
- package/dist/interpolator/StateInterpolator.js.map +1 -0
- package/{lib → dist}/interpolator/VerletBlendInterpolator.d.ts +4 -5
- package/{lib → dist}/interpolator/VerletBlendInterpolator.js +16 -13
- package/dist/interpolator/VerletBlendInterpolator.js.map +1 -0
- package/{lib/ootk.d.ts → dist/main.d.ts} +4 -2
- package/dist/main.js +32 -0
- package/dist/main.js.map +1 -0
- package/{lib → dist}/maneuver/TwoBurnOrbitTransfer.d.ts +5 -7
- package/{lib → dist}/maneuver/TwoBurnOrbitTransfer.js +6 -3
- package/dist/maneuver/TwoBurnOrbitTransfer.js.map +1 -0
- package/{lib → dist}/maneuver/Waypoint.d.ts +30 -5
- package/{lib → dist}/maneuver/Waypoint.js +31 -4
- package/dist/maneuver/Waypoint.js.map +1 -0
- package/{lib → dist}/objects/DetailedSatellite.d.ts +7 -31
- package/{lib → dist}/objects/DetailedSatellite.js +68 -72
- package/dist/objects/DetailedSatellite.js.map +1 -0
- package/{lib → dist}/objects/DetailedSensor.d.ts +1 -2
- package/{lib → dist}/objects/DetailedSensor.js +22 -2
- package/dist/objects/DetailedSensor.js.map +1 -0
- package/{lib → dist}/objects/LandObject.d.ts +3 -6
- package/{lib → dist}/objects/LandObject.js +9 -3
- package/dist/objects/LandObject.js.map +1 -0
- package/{lib → dist}/objects/Marker.d.ts +1 -2
- package/{lib → dist}/objects/Marker.js +1 -2
- package/dist/objects/Marker.js.map +1 -0
- package/dist/objects/RfSensor.d.ts +41 -0
- package/dist/objects/RfSensor.js +67 -0
- package/dist/objects/RfSensor.js.map +1 -0
- package/{lib → dist}/objects/index.d.ts +1 -1
- package/{lib → dist}/objects/index.js +1 -1
- package/dist/objects/index.js.map +1 -0
- package/{lib → dist}/observation/Observation.d.ts +42 -4
- package/{lib → dist}/observation/Observation.js +41 -10
- package/dist/observation/Observation.js.map +1 -0
- package/{lib → dist}/observation/ObservationOptical.d.ts +7 -6
- package/{lib → dist}/observation/ObservationOptical.js +19 -15
- package/dist/observation/ObservationOptical.js.map +1 -0
- package/{lib → dist}/observation/ObservationRadar.d.ts +7 -4
- package/{lib → dist}/observation/ObservationRadar.js +25 -19
- package/dist/observation/ObservationRadar.js.map +1 -0
- package/{lib → dist}/observation/ObservationUtils.d.ts +1 -2
- package/{lib → dist}/observation/ObservationUtils.js +1 -2
- package/dist/observation/ObservationUtils.js.map +1 -0
- package/{lib → dist}/observation/PropagatorPairs.d.ts +3 -2
- package/{lib → dist}/observation/PropagatorPairs.js +7 -4
- package/dist/observation/PropagatorPairs.js.map +1 -0
- package/{lib → dist}/operations/BoxMuller.d.ts +7 -2
- package/{lib → dist}/operations/BoxMuller.js +15 -4
- package/dist/operations/BoxMuller.js.map +1 -0
- package/dist/operations/EulerAngles.d.ts +105 -0
- package/{lib → dist}/operations/EulerAngles.js +72 -22
- package/dist/operations/EulerAngles.js.map +1 -0
- package/{lib → dist}/operations/Quaternion.d.ts +5 -6
- package/{lib → dist}/operations/Quaternion.js +12 -9
- package/dist/operations/Quaternion.js.map +1 -0
- package/{lib → dist}/operations/RandomGaussianSource.d.ts +1 -2
- package/{lib → dist}/operations/RandomGaussianSource.js +3 -3
- package/dist/operations/RandomGaussianSource.js.map +1 -0
- package/{lib → dist}/optimize/ChebyshevCompressor.d.ts +3 -2
- package/{lib → dist}/optimize/ChebyshevCompressor.js +7 -4
- package/dist/optimize/ChebyshevCompressor.js.map +1 -0
- package/{lib → dist}/optimize/DownhillSimplex.d.ts +16 -2
- package/{lib → dist}/optimize/DownhillSimplex.js +16 -2
- package/dist/optimize/DownhillSimplex.js.map +1 -0
- package/{lib → dist}/optimize/GoldenSection.d.ts +9 -3
- package/{lib → dist}/optimize/GoldenSection.js +9 -3
- package/dist/optimize/GoldenSection.js.map +1 -0
- package/{lib → dist}/optimize/PolynomialRegression.d.ts +14 -2
- package/{lib → dist}/optimize/PolynomialRegression.js +19 -2
- package/dist/optimize/PolynomialRegression.js.map +1 -0
- package/{lib → dist}/optimize/PolynomicalRegressionResult.d.ts +5 -2
- package/{lib → dist}/optimize/PolynomicalRegressionResult.js +8 -2
- package/dist/optimize/PolynomicalRegressionResult.js.map +1 -0
- package/{lib → dist}/optimize/SimpleLinearRegression.d.ts +5 -2
- package/{lib → dist}/optimize/SimpleLinearRegression.js +12 -7
- package/dist/optimize/SimpleLinearRegression.js.map +1 -0
- package/{lib → dist}/optimize/SimplexEntry.d.ts +1 -2
- package/{lib → dist}/optimize/SimplexEntry.js +5 -2
- package/dist/optimize/SimplexEntry.js.map +1 -0
- package/{lib → dist}/orbit_determination/BatchLeastSquaresOD.d.ts +14 -3
- package/{lib → dist}/orbit_determination/BatchLeastSquaresOD.js +29 -4
- package/dist/orbit_determination/BatchLeastSquaresOD.js.map +1 -0
- package/{lib → dist}/orbit_determination/BatchLeastSquaresResult.d.ts +4 -2
- package/{lib → dist}/orbit_determination/BatchLeastSquaresResult.js +7 -2
- package/dist/orbit_determination/BatchLeastSquaresResult.js.map +1 -0
- package/{lib → dist}/orbit_determination/GibbsIOD.d.ts +9 -4
- package/{lib → dist}/orbit_determination/GibbsIOD.js +11 -5
- package/dist/orbit_determination/GibbsIOD.js.map +1 -0
- package/{lib → dist}/orbit_determination/GoodingIOD.d.ts +21 -22
- package/{lib → dist}/orbit_determination/GoodingIOD.js +74 -71
- package/dist/orbit_determination/GoodingIOD.js.map +1 -0
- package/{lib → dist}/orbit_determination/HerrickGibbsIOD.d.ts +4 -4
- package/{lib → dist}/orbit_determination/HerrickGibbsIOD.js +3 -2
- package/dist/orbit_determination/HerrickGibbsIOD.js.map +1 -0
- package/{lib → dist}/orbit_determination/LambertIOD.d.ts +21 -8
- package/{lib → dist}/orbit_determination/LambertIOD.js +20 -6
- package/dist/orbit_determination/LambertIOD.js.map +1 -0
- package/{lib → dist}/orbit_determination/ModifiedGoodingIOD.d.ts +6 -7
- package/{lib → dist}/orbit_determination/ModifiedGoodingIOD.js +12 -11
- package/dist/orbit_determination/ModifiedGoodingIOD.js.map +1 -0
- package/{lib → dist}/propagator/DormandPrince54Propagator.d.ts +1 -2
- package/dist/propagator/DormandPrince54Propagator.js +64 -0
- package/dist/propagator/DormandPrince54Propagator.js.map +1 -0
- package/{lib → dist}/propagator/KeplerPropagator.d.ts +1 -2
- package/{lib → dist}/propagator/KeplerPropagator.js +5 -2
- package/{lib → dist}/propagator/KeplerPropagator.js.map +1 -1
- package/{lib → dist}/propagator/Propagator.d.ts +5 -6
- package/{lib → dist}/propagator/Propagator.js +5 -6
- package/dist/propagator/Propagator.js.map +1 -0
- package/{lib → dist}/propagator/RkCheckpoint.d.ts +1 -2
- package/{lib → dist}/propagator/RkCheckpoint.js +3 -2
- package/dist/propagator/RkCheckpoint.js.map +1 -0
- package/{lib → dist}/propagator/RkResult.d.ts +1 -2
- package/{lib → dist}/propagator/RkResult.js +4 -2
- package/dist/propagator/RkResult.js.map +1 -0
- package/{lib → dist}/propagator/RungeKutta4Propagator.d.ts +14 -10
- package/{lib → dist}/propagator/RungeKutta4Propagator.js +45 -36
- package/dist/propagator/RungeKutta4Propagator.js.map +1 -0
- package/{lib → dist}/propagator/RungeKutta89Propagator.d.ts +1 -2
- package/dist/propagator/RungeKutta89Propagator.js +126 -0
- package/dist/propagator/RungeKutta89Propagator.js.map +1 -0
- package/{lib → dist}/propagator/RungeKuttaAdaptive.d.ts +13 -11
- package/{lib → dist}/propagator/RungeKuttaAdaptive.js +31 -24
- package/dist/propagator/RungeKuttaAdaptive.js.map +1 -0
- package/{lib → dist}/propagator/Sgp4Propagator.d.ts +3 -4
- package/{lib → dist}/propagator/Sgp4Propagator.js +4 -3
- package/dist/propagator/Sgp4Propagator.js.map +1 -0
- package/{lib → dist}/smoothing/ExponentialSmoothing.d.ts +1 -2
- package/{lib → dist}/smoothing/ExponentialSmoothing.js +1 -2
- package/dist/smoothing/ExponentialSmoothing.js.map +1 -0
- package/dist/transforms/index.d.ts +1 -0
- package/dist/transforms/index.js +2 -0
- package/dist/transforms/index.js.map +1 -0
- package/dist/transforms/transforms.d.ts +58 -0
- package/dist/transforms/transforms.js +94 -0
- package/dist/transforms/transforms.js.map +1 -0
- package/{lib → dist}/types/types.d.ts +44 -4
- package/{lib → dist}/types/types.js +1 -2
- package/dist/types/types.js.map +1 -0
- package/dist/utils/functions.d.ts +8 -0
- package/dist/utils/functions.js +18 -0
- package/dist/utils/functions.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/jacobian.d.ts +11 -0
- package/dist/utils/jacobian.js +29 -0
- package/dist/utils/jacobian.js.map +1 -0
- package/package.json +32 -42
- package/src/coordinate/Hill.ts +326 -0
- package/src/coordinate/index.ts +1 -0
- package/src/covariance/CovarianceSample.ts +194 -0
- package/src/covariance/StateCovariance.ts +69 -0
- package/src/force/AtmosphericDrag.ts +101 -0
- package/src/force/EarthGravity.ts +157 -0
- package/src/force/Force.ts +33 -0
- package/src/force/ForceModel.ts +91 -0
- package/src/force/Gravity.ts +53 -0
- package/src/force/SolarRadiationPressure.ts +42 -0
- package/src/force/ThirdBodyGravity.ts +62 -0
- package/src/force/Thrust.ts +83 -0
- package/src/interfaces/RfSensorParams.ts +30 -0
- package/src/interfaces/index.ts +1 -0
- package/src/interpolator/ChebyshevCoefficients.ts +109 -0
- package/src/interpolator/ChebyshevInterpolator.ts +87 -0
- package/src/interpolator/CubicSpline.ts +72 -0
- package/src/interpolator/CubicSplineInterpolator.ts +90 -0
- package/src/interpolator/FieldInterpolator.ts +37 -0
- package/src/interpolator/Interpolator.ts +56 -0
- package/src/interpolator/LagrangeInterpolator.ts +192 -0
- package/src/interpolator/StateInterpolator.ts +39 -0
- package/src/interpolator/VerletBlendInterpolator.ts +146 -0
- package/{lib/ootk.js → src/main.ts} +7 -3
- package/src/maneuver/TwoBurnOrbitTransfer.ts +79 -0
- package/src/maneuver/Waypoint.ts +267 -0
- package/src/objects/DetailedSatellite.ts +159 -0
- package/src/objects/DetailedSensor.ts +68 -0
- package/src/objects/LandObject.ts +46 -0
- package/src/objects/Marker.ts +25 -0
- package/src/objects/RfSensor.ts +78 -0
- package/src/objects/index.ts +5 -0
- package/src/observation/Observation.ts +125 -0
- package/src/observation/ObservationOptical.ts +146 -0
- package/src/observation/ObservationRadar.ts +131 -0
- package/src/observation/ObservationUtils.ts +40 -0
- package/src/observation/PropagatorPairs.ts +45 -0
- package/src/operations/BoxMuller.ts +87 -0
- package/src/operations/EulerAngles.ts +183 -0
- package/src/operations/Quaternion.ts +222 -0
- package/src/operations/RandomGaussianSource.ts +51 -0
- package/src/operations/index.ts +4 -0
- package/src/optimize/ChebyshevCompressor.ts +96 -0
- package/src/optimize/DownhillSimplex.ts +212 -0
- package/src/optimize/GoldenSection.ts +71 -0
- package/src/optimize/PolynomialRegression.ts +109 -0
- package/src/optimize/PolynomicalRegressionResult.ts +32 -0
- package/src/optimize/SimpleLinearRegression.ts +127 -0
- package/src/optimize/SimplexEntry.ts +50 -0
- package/src/orbit_determination/BatchLeastSquaresOD.ts +174 -0
- package/src/orbit_determination/BatchLeastSquaresResult.ts +33 -0
- package/src/orbit_determination/GibbsIOD.ts +95 -0
- package/src/orbit_determination/GoodingIOD.ts +380 -0
- package/src/orbit_determination/HerrickGibbsIOD.ts +51 -0
- package/src/orbit_determination/LambertIOD.ts +260 -0
- package/src/orbit_determination/ModifiedGoodingIOD.ts +133 -0
- package/src/propagator/DormandPrince54Propagator.ts +73 -0
- package/src/propagator/KeplerPropagator.ts +102 -0
- package/src/propagator/Propagator.ts +253 -0
- package/src/propagator/RkCheckpoint.ts +25 -0
- package/src/propagator/RkResult.ts +26 -0
- package/src/propagator/RungeKutta4Propagator.ts +179 -0
- package/src/propagator/RungeKutta89Propagator.ts +132 -0
- package/src/propagator/RungeKuttaAdaptive.ts +232 -0
- package/src/propagator/Sgp4Propagator.ts +71 -0
- package/src/smoothing/ExponentialSmoothing.ts +90 -0
- package/src/transforms/index.ts +1 -0
- package/src/transforms/transforms.ts +117 -0
- package/src/types/types.ts +135 -0
- package/src/utils/functions.ts +21 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/jacobian.ts +38 -0
- package/.eslintrc.json +0 -244
- package/jest.config.ts +0 -30
- package/lib/coordinate/Hill.js.map +0 -1
- package/lib/covariance/CovarianceSample.js.map +0 -1
- package/lib/covariance/StateCovariance.js.map +0 -1
- package/lib/force/AtmosphericDrag.js.map +0 -1
- package/lib/force/EarthGravity.js.map +0 -1
- package/lib/force/Force.js.map +0 -1
- package/lib/force/ForceModel.js.map +0 -1
- package/lib/force/Gravity.js.map +0 -1
- package/lib/force/SolarRadiationPressure.js.map +0 -1
- package/lib/force/ThirdBodyGravity.js.map +0 -1
- package/lib/force/Thrust.js.map +0 -1
- package/lib/interpolator/ChebyshevCoefficients.js.map +0 -1
- package/lib/interpolator/ChebyshevInterpolator.js.map +0 -1
- package/lib/interpolator/CubicSpline.js.map +0 -1
- package/lib/interpolator/CubicSplineInterpolator.js.map +0 -1
- package/lib/interpolator/FieldInterpolator.js.map +0 -1
- package/lib/interpolator/Interpolator.js.map +0 -1
- package/lib/interpolator/LagrangeInterpolator.js.map +0 -1
- package/lib/interpolator/StateInterpolator.js.map +0 -1
- package/lib/interpolator/VerletBlendInterpolator.js.map +0 -1
- package/lib/maneuver/TwoBurnOrbitTransfer.js.map +0 -1
- package/lib/maneuver/Waypoint.js.map +0 -1
- package/lib/objects/DetailedSatellite.js.map +0 -1
- package/lib/objects/DetailedSensor.js.map +0 -1
- package/lib/objects/LandObject.js.map +0 -1
- package/lib/objects/Marker.js.map +0 -1
- package/lib/objects/index.js.map +0 -1
- package/lib/observation/Observation.js.map +0 -1
- package/lib/observation/ObservationOptical.js.map +0 -1
- package/lib/observation/ObservationRadar.js.map +0 -1
- package/lib/observation/ObservationUtils.js.map +0 -1
- package/lib/observation/PropagatorPairs.js.map +0 -1
- package/lib/ootk.js.map +0 -1
- package/lib/operations/BoxMuller.js.map +0 -1
- package/lib/operations/EulerAngles.d.ts +0 -50
- package/lib/operations/EulerAngles.js.map +0 -1
- package/lib/operations/Quaternion.js.map +0 -1
- package/lib/operations/RandomGaussianSource.js.map +0 -1
- package/lib/optimize/ChebyshevCompressor.js.map +0 -1
- package/lib/optimize/DownhillSimplex.js.map +0 -1
- package/lib/optimize/GoldenSection.js.map +0 -1
- package/lib/optimize/PolynomialRegression.js.map +0 -1
- package/lib/optimize/PolynomicalRegressionResult.js.map +0 -1
- package/lib/optimize/SimpleLinearRegression.js.map +0 -1
- package/lib/optimize/SimplexEntry.js.map +0 -1
- package/lib/orbit_determination/BatchLeastSquaresOD.js.map +0 -1
- package/lib/orbit_determination/BatchLeastSquaresResult.js.map +0 -1
- package/lib/orbit_determination/GibbsIOD.js.map +0 -1
- package/lib/orbit_determination/GoodingIOD.js.map +0 -1
- package/lib/orbit_determination/HerrickGibbsIOD.js.map +0 -1
- package/lib/orbit_determination/LambertIOD.js.map +0 -1
- package/lib/orbit_determination/ModifiedGoodingIOD.js.map +0 -1
- package/lib/propagator/DormandPrince54Propagator.js +0 -68
- package/lib/propagator/DormandPrince54Propagator.js.map +0 -1
- package/lib/propagator/Propagator.js.map +0 -1
- package/lib/propagator/RkCheckpoint.js.map +0 -1
- package/lib/propagator/RkResult.js.map +0 -1
- package/lib/propagator/RungeKutta4Propagator.js.map +0 -1
- package/lib/propagator/RungeKutta89Propagator.js +0 -130
- package/lib/propagator/RungeKutta89Propagator.js.map +0 -1
- package/lib/propagator/RungeKuttaAdaptive.js.map +0 -1
- package/lib/propagator/Sgp4Propagator.js.map +0 -1
- package/lib/smoothing/ExponentialSmoothing.js.map +0 -1
- package/lib/types/types.js.map +0 -1
- /package/{lib → dist}/coordinate/index.d.ts +0 -0
- /package/{lib → dist}/coordinate/index.js +0 -0
- /package/{lib → dist}/coordinate/index.js.map +0 -0
- /package/{lib → dist}/operations/index.d.ts +0 -0
- /package/{lib → dist}/operations/index.js +0 -0
- /package/{lib → dist}/operations/index.js.map +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author @thkruz Theodore Kruczek
|
|
3
|
+
* @license AGPL-3.0-or-later
|
|
4
|
+
* @copyright (c) 2020-2024 Theodore Kruczek
|
|
5
|
+
*
|
|
6
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
7
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
8
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
11
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
12
|
+
* See the GNU Affero General Public License for more details.
|
|
13
|
+
*
|
|
14
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
*/
|
|
17
|
+
/* eslint-disable class-methods-use-this */
|
|
18
|
+
import { RungeKuttaAdaptive } from './RungeKuttaAdaptive';
|
|
19
|
+
export class DormandPrince54Propagator extends RungeKuttaAdaptive {
|
|
20
|
+
_a = Float64Array.from([0.0, 1.0 / 5.0, 3.0 / 10.0, 4.0 / 5.0, 8.0 / 9.0, 1.0, 1.0]);
|
|
21
|
+
_b = [
|
|
22
|
+
new Float64Array(),
|
|
23
|
+
Float64Array.from([1.0 / 5.0]),
|
|
24
|
+
Float64Array.from([3.0 / 40.0, 9.0 / 40.0]),
|
|
25
|
+
Float64Array.from([44.0 / 45.0, -56.0 / 15.0, 32.0 / 9.0]),
|
|
26
|
+
Float64Array.from([19372.0 / 6561.0, -25360.0 / 2187.0, 64448.0 / 6561.0, -212.0 / 729.0]),
|
|
27
|
+
Float64Array.from([9017.0 / 3168.0, -355.0 / 33.0, 46732.0 / 5247.0, 49.0 / 176.0, -5103.0 / 18656.0]),
|
|
28
|
+
Float64Array.from([35.0 / 384.0, 0.0, 500.0 / 1113.0, 125.0 / 192.0, -2187.0 / 6784.0, 11.0 / 84.0]),
|
|
29
|
+
];
|
|
30
|
+
_ch = Float64Array.from([
|
|
31
|
+
35.0 / 384.0,
|
|
32
|
+
0.0,
|
|
33
|
+
500.0 / 1113.0,
|
|
34
|
+
125.0 / 192.0,
|
|
35
|
+
-2187.0 / 6784.0,
|
|
36
|
+
11.0 / 84.0,
|
|
37
|
+
0.0,
|
|
38
|
+
]);
|
|
39
|
+
_c = Float64Array.from([
|
|
40
|
+
5179.0 / 57600.0,
|
|
41
|
+
0.0,
|
|
42
|
+
7571.0 / 16695.0,
|
|
43
|
+
393.0 / 640.0,
|
|
44
|
+
-92097.0 / 339200.0,
|
|
45
|
+
187.0 / 2100.0,
|
|
46
|
+
1.0 / 40.0,
|
|
47
|
+
]);
|
|
48
|
+
get a() {
|
|
49
|
+
return this._a;
|
|
50
|
+
}
|
|
51
|
+
get b() {
|
|
52
|
+
return this._b;
|
|
53
|
+
}
|
|
54
|
+
get ch() {
|
|
55
|
+
return this._ch;
|
|
56
|
+
}
|
|
57
|
+
get c() {
|
|
58
|
+
return this._c;
|
|
59
|
+
}
|
|
60
|
+
get order() {
|
|
61
|
+
return 5;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=DormandPrince54Propagator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DormandPrince54Propagator.js","sourceRoot":"","sources":["../../src/propagator/DormandPrince54Propagator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,2CAA2C;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,OAAO,yBAA0B,SAAQ,kBAAkB;IACvD,EAAE,GAAiB,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAEnG,EAAE,GAAmB;QAC3B,IAAI,YAAY,EAAE;QAClB,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAC9B,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;QAC3C,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;QAC1D,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,GAAG,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;QAC1F,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;QACtG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;KACrG,CAAC;IAEM,GAAG,GAAiB,YAAY,CAAC,IAAI,CAAC;QAC5C,IAAI,GAAG,KAAK;QACZ,GAAG;QACH,KAAK,GAAG,MAAM;QACd,KAAK,GAAG,KAAK;QACb,CAAC,MAAM,GAAG,MAAM;QAChB,IAAI,GAAG,IAAI;QACX,GAAG;KACJ,CAAC,CAAC;IAEK,EAAE,GAAiB,YAAY,CAAC,IAAI,CAAC;QAC3C,MAAM,GAAG,OAAO;QAChB,GAAG;QACH,MAAM,GAAG,OAAO;QAChB,KAAK,GAAG,KAAK;QACb,CAAC,OAAO,GAAG,QAAQ;QACnB,KAAK,GAAG,MAAM;QACd,GAAG,GAAG,IAAI;KACX,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,CAAC,CAAC;IACX,CAAC;CACF"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author @thkruz Theodore Kruczek
|
|
3
|
-
*
|
|
4
3
|
* @license AGPL-3.0-or-later
|
|
5
|
-
* @
|
|
4
|
+
* @copyright (c) 2020-2024 Theodore Kruczek
|
|
6
5
|
*
|
|
7
6
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
8
7
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author @thkruz Theodore Kruczek
|
|
3
|
-
*
|
|
4
3
|
* @license AGPL-3.0-or-later
|
|
5
|
-
* @
|
|
4
|
+
* @copyright (c) 2020-2024 Theodore Kruczek
|
|
6
5
|
*
|
|
7
6
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
8
7
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -20,6 +19,10 @@ import { VerletBlendInterpolator } from '../interpolator/VerletBlendInterpolator
|
|
|
20
19
|
import { Propagator } from './Propagator';
|
|
21
20
|
// / Kepler analytical two-body propagator.
|
|
22
21
|
export class KeplerPropagator extends Propagator {
|
|
22
|
+
_initElements;
|
|
23
|
+
_elements;
|
|
24
|
+
_cacheState;
|
|
25
|
+
_checkpoints;
|
|
23
26
|
constructor(initElements) {
|
|
24
27
|
super();
|
|
25
28
|
this._initElements = initElements;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeplerPropagator.js","sourceRoot":"","sources":["../../src/propagator/KeplerPropagator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"KeplerPropagator.js","sourceRoot":"","sources":["../../src/propagator/KeplerPropagator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author @thkruz Theodore Kruczek
|
|
3
|
-
*
|
|
4
3
|
* @license AGPL-3.0-or-later
|
|
5
|
-
* @
|
|
4
|
+
* @copyright (c) 2020-2024 Theodore Kruczek
|
|
6
5
|
*
|
|
7
6
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
8
7
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -15,19 +14,19 @@
|
|
|
15
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
16
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
17
16
|
*/
|
|
18
|
-
import { EpochUTC, J2000 } from 'ootk-core';
|
|
17
|
+
import { EpochUTC, J2000, Seconds } from 'ootk-core';
|
|
19
18
|
import { Thrust } from '../force/Thrust';
|
|
20
19
|
import { VerletBlendInterpolator } from '../interpolator/VerletBlendInterpolator';
|
|
21
20
|
export declare abstract class Propagator {
|
|
22
21
|
abstract propagate(epoch: EpochUTC): J2000;
|
|
23
|
-
ephemeris(start: EpochUTC, stop: EpochUTC, interval?:
|
|
22
|
+
ephemeris(start: EpochUTC, stop: EpochUTC, interval?: Seconds): VerletBlendInterpolator;
|
|
24
23
|
abstract reset(): void;
|
|
25
24
|
abstract checkpoint(): number;
|
|
26
25
|
abstract restore(index: number): void;
|
|
27
26
|
abstract clearCheckpoints(): void;
|
|
28
27
|
abstract get state(): J2000;
|
|
29
|
-
maneuver(maneuver: Thrust, interval?:
|
|
30
|
-
ephemerisManeuver(start: EpochUTC, finish: EpochUTC, maneuvers: Thrust[], interval?:
|
|
28
|
+
maneuver(maneuver: Thrust, interval?: Seconds): J2000[];
|
|
29
|
+
ephemerisManeuver(start: EpochUTC, finish: EpochUTC, maneuvers: Thrust[], interval?: Seconds): VerletBlendInterpolator;
|
|
31
30
|
ascendingNodeEpoch(start: EpochUTC): EpochUTC;
|
|
32
31
|
descendingNodeEpoch(start: EpochUTC): EpochUTC;
|
|
33
32
|
apogeeEpoch(start: EpochUTC): EpochUTC;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author @thkruz Theodore Kruczek
|
|
3
|
-
*
|
|
4
3
|
* @license AGPL-3.0-or-later
|
|
5
|
-
* @
|
|
4
|
+
* @copyright (c) 2020-2024 Theodore Kruczek
|
|
6
5
|
*
|
|
7
6
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
8
7
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -69,7 +68,7 @@ export class Propagator {
|
|
|
69
68
|
}
|
|
70
69
|
// Return the epoch of the ascending node after the [start] epoch.
|
|
71
70
|
ascendingNodeEpoch(start) {
|
|
72
|
-
const period = this.state.period
|
|
71
|
+
const period = this.state.period / 60;
|
|
73
72
|
const step = period / 8;
|
|
74
73
|
let current = start;
|
|
75
74
|
const stop = current.roll(period);
|
|
@@ -91,7 +90,7 @@ export class Propagator {
|
|
|
91
90
|
}
|
|
92
91
|
// Return the epoch of the descending node after the [start] epoch.
|
|
93
92
|
descendingNodeEpoch(start) {
|
|
94
|
-
const period = this.state.period
|
|
93
|
+
const period = this.state.period / 60;
|
|
95
94
|
const step = period / 8;
|
|
96
95
|
let current = start;
|
|
97
96
|
const stop = current.roll(period);
|
|
@@ -114,7 +113,7 @@ export class Propagator {
|
|
|
114
113
|
// Return the epoch of apogee after the [start] epoch.
|
|
115
114
|
apogeeEpoch(start) {
|
|
116
115
|
const slice = 8;
|
|
117
|
-
const period = this.state.period
|
|
116
|
+
const period = this.state.period / 60;
|
|
118
117
|
const step = period / slice;
|
|
119
118
|
let current = start;
|
|
120
119
|
this.propagate(current);
|
|
@@ -138,7 +137,7 @@ export class Propagator {
|
|
|
138
137
|
// Return the epoch of perigee after the [start] epoch.
|
|
139
138
|
perigeeEpoch(start) {
|
|
140
139
|
const slice = 8;
|
|
141
|
-
const period = this.state.period
|
|
140
|
+
const period = this.state.period / 60;
|
|
142
141
|
const step = period / slice;
|
|
143
142
|
let current = start;
|
|
144
143
|
this.propagate(current);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Propagator.js","sourceRoot":"","sources":["../../src/propagator/Propagator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author @thkruz Theodore Kruczek
|
|
3
|
-
*
|
|
4
3
|
* @license AGPL-3.0-or-later
|
|
5
|
-
* @
|
|
4
|
+
* @copyright (c) 2020-2024 Theodore Kruczek
|
|
6
5
|
*
|
|
7
6
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
8
7
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author @thkruz Theodore Kruczek
|
|
3
|
-
*
|
|
4
3
|
* @license AGPL-3.0-or-later
|
|
5
|
-
* @
|
|
4
|
+
* @copyright (c) 2020-2024 Theodore Kruczek
|
|
6
5
|
*
|
|
7
6
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
8
7
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -17,6 +16,8 @@
|
|
|
17
16
|
*/
|
|
18
17
|
// / Runge-Kutta adaptive state checkpoint.
|
|
19
18
|
export class RkCheckpoint {
|
|
19
|
+
cacheState;
|
|
20
|
+
stepSize;
|
|
20
21
|
constructor(cacheState, stepSize) {
|
|
21
22
|
this.cacheState = cacheState;
|
|
22
23
|
this.stepSize = stepSize;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RkCheckpoint.js","sourceRoot":"","sources":["../../src/propagator/RkCheckpoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,2CAA2C;AAC3C,MAAM,OAAO,YAAY;IACJ;IAA0B;IAA7C,YAAmB,UAAiB,EAAS,QAAgB;QAA1C,eAAU,GAAV,UAAU,CAAO;QAAS,aAAQ,GAAR,QAAQ,CAAQ;QAC3D,sBAAsB;IACxB,CAAC;CACF"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author @thkruz Theodore Kruczek
|
|
3
|
-
*
|
|
4
3
|
* @license AGPL-3.0-or-later
|
|
5
|
-
* @
|
|
4
|
+
* @copyright (c) 2020-2024 Theodore Kruczek
|
|
6
5
|
*
|
|
7
6
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
8
7
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author @thkruz Theodore Kruczek
|
|
3
|
-
*
|
|
4
3
|
* @license AGPL-3.0-or-later
|
|
5
|
-
* @
|
|
4
|
+
* @copyright (c) 2020-2024 Theodore Kruczek
|
|
6
5
|
*
|
|
7
6
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
8
7
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -17,6 +16,9 @@
|
|
|
17
16
|
*/
|
|
18
17
|
// / Result of adaptive numerical integration.
|
|
19
18
|
export class RkResult {
|
|
19
|
+
state;
|
|
20
|
+
error;
|
|
21
|
+
newStep;
|
|
20
22
|
// / Create a new [RkResult] object.
|
|
21
23
|
constructor(state, error, newStep) {
|
|
22
24
|
this.state = state;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RkResult.js","sourceRoot":"","sources":["../../src/propagator/RkResult.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,8CAA8C;AAC9C,MAAM,OAAO,QAAQ;IAEA;IAAqB;IAAsB;IAD9D,oCAAoC;IACpC,YAAmB,KAAY,EAAS,KAAa,EAAS,OAAe;QAA1D,UAAK,GAAL,KAAK,CAAO;QAAS,UAAK,GAAL,KAAK,CAAQ;QAAS,YAAO,GAAP,OAAO,CAAQ;QAC3E,sBAAsB;IACxB,CAAC;CACF"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author @thkruz Theodore Kruczek
|
|
3
|
-
*
|
|
4
3
|
* @license AGPL-3.0-or-later
|
|
5
|
-
* @
|
|
4
|
+
* @copyright (c) 2020-2024 Theodore Kruczek
|
|
6
5
|
*
|
|
7
6
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
8
7
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -15,25 +14,30 @@
|
|
|
15
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
16
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
17
16
|
*/
|
|
18
|
-
import { EpochUTC, J2000 } from 'ootk-core';
|
|
17
|
+
import { EpochUTC, J2000, Seconds } from 'ootk-core';
|
|
19
18
|
import { ForceModel } from '../force/ForceModel';
|
|
20
19
|
import { Thrust } from '../force/Thrust';
|
|
21
20
|
import { VerletBlendInterpolator } from '../interpolator/VerletBlendInterpolator';
|
|
22
21
|
import { Propagator } from './Propagator';
|
|
23
22
|
export declare class RungeKutta4Propagator extends Propagator {
|
|
24
|
-
private
|
|
25
|
-
private
|
|
26
|
-
private
|
|
27
|
-
private
|
|
28
|
-
private
|
|
23
|
+
private initState_;
|
|
24
|
+
private forceModel_;
|
|
25
|
+
private stepSize_;
|
|
26
|
+
private cacheState_;
|
|
27
|
+
private checkpoints_;
|
|
29
28
|
/**
|
|
30
29
|
* Create a new [RungeKutta4Propagator] object from an initial state vector and
|
|
31
30
|
* along with an optional [ForceModel] and [stepSize] in seconds.
|
|
31
|
+
* @param initState_ Initial state vector.
|
|
32
|
+
* @param forceModel_ Numerical integration force model.
|
|
33
|
+
* @param stepSize_ Integration step size _(seconds)_.
|
|
34
|
+
* @param cacheState_ Cached state vector.
|
|
35
|
+
* @param checkpoints_ Cached state vector checkpoints.
|
|
32
36
|
*/
|
|
33
|
-
constructor(
|
|
37
|
+
constructor(initState_: J2000, forceModel_?: ForceModel, stepSize_?: number, cacheState_?: J2000, checkpoints_?: J2000[]);
|
|
34
38
|
setStepSize(seconds: number): void;
|
|
35
39
|
setForceModel(forceModel: ForceModel): void;
|
|
36
|
-
ephemerisManeuver(start: EpochUTC, finish: EpochUTC, maneuvers: Thrust[], interval?:
|
|
40
|
+
ephemerisManeuver(start: EpochUTC, finish: EpochUTC, maneuvers: Thrust[], interval?: Seconds): VerletBlendInterpolator;
|
|
37
41
|
maneuver(maneuver: Thrust, interval?: number): J2000[];
|
|
38
42
|
private _kFn;
|
|
39
43
|
private _integrate;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author @thkruz Theodore Kruczek
|
|
3
|
-
*
|
|
4
3
|
* @license AGPL-3.0-or-later
|
|
5
|
-
* @
|
|
4
|
+
* @copyright (c) 2020-2024 Theodore Kruczek
|
|
6
5
|
*
|
|
7
6
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
8
7
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -21,26 +20,36 @@ import { VerletBlendInterpolator } from '../interpolator/VerletBlendInterpolator
|
|
|
21
20
|
import { Propagator } from './Propagator';
|
|
22
21
|
// / Runge-Kutta 4 fixed numerical propagator.
|
|
23
22
|
export class RungeKutta4Propagator extends Propagator {
|
|
23
|
+
initState_;
|
|
24
|
+
forceModel_;
|
|
25
|
+
stepSize_;
|
|
26
|
+
cacheState_;
|
|
27
|
+
checkpoints_;
|
|
24
28
|
/**
|
|
25
29
|
* Create a new [RungeKutta4Propagator] object from an initial state vector and
|
|
26
30
|
* along with an optional [ForceModel] and [stepSize] in seconds.
|
|
31
|
+
* @param initState_ Initial state vector.
|
|
32
|
+
* @param forceModel_ Numerical integration force model.
|
|
33
|
+
* @param stepSize_ Integration step size _(seconds)_.
|
|
34
|
+
* @param cacheState_ Cached state vector.
|
|
35
|
+
* @param checkpoints_ Cached state vector checkpoints.
|
|
27
36
|
*/
|
|
28
|
-
constructor(
|
|
37
|
+
constructor(initState_, forceModel_ = new ForceModel().setGravity(), stepSize_ = 15.0, cacheState_ = initState_, checkpoints_ = []) {
|
|
29
38
|
super();
|
|
30
|
-
this.
|
|
31
|
-
this.
|
|
32
|
-
this.
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
35
|
-
this.
|
|
39
|
+
this.initState_ = initState_;
|
|
40
|
+
this.forceModel_ = forceModel_;
|
|
41
|
+
this.stepSize_ = stepSize_;
|
|
42
|
+
this.cacheState_ = cacheState_;
|
|
43
|
+
this.checkpoints_ = checkpoints_;
|
|
44
|
+
this.stepSize_ = Math.abs(stepSize_);
|
|
36
45
|
}
|
|
37
46
|
// / Set the integrator step size to the provided number of [seconds].
|
|
38
47
|
setStepSize(seconds) {
|
|
39
|
-
this.
|
|
48
|
+
this.stepSize_ = Math.abs(seconds);
|
|
40
49
|
}
|
|
41
50
|
// / Set numerical integration force model.
|
|
42
51
|
setForceModel(forceModel) {
|
|
43
|
-
this.
|
|
52
|
+
this.forceModel_ = forceModel;
|
|
44
53
|
}
|
|
45
54
|
ephemerisManeuver(start, finish, maneuvers, interval = 60.0) {
|
|
46
55
|
const tMvr = maneuvers.slice(0).filter((mvr) => mvr.start >= start || mvr.stop <= finish);
|
|
@@ -49,36 +58,36 @@ export class RungeKutta4Propagator extends Propagator {
|
|
|
49
58
|
ephemeris.push(this.propagate(start));
|
|
50
59
|
}
|
|
51
60
|
for (const mvr of tMvr) {
|
|
52
|
-
while (this.
|
|
53
|
-
const step = Math.min(mvr.start.difference(this.
|
|
54
|
-
this.propagate(this.
|
|
55
|
-
if (this.
|
|
56
|
-
ephemeris.push(this.
|
|
61
|
+
while (this.cacheState_.epoch < mvr.start) {
|
|
62
|
+
const step = Math.min(mvr.start.difference(this.cacheState_.epoch), interval);
|
|
63
|
+
this.propagate(this.cacheState_.epoch.roll(step));
|
|
64
|
+
if (this.cacheState_.epoch.posix !== mvr.start.posix) {
|
|
65
|
+
ephemeris.push(this.cacheState_);
|
|
57
66
|
}
|
|
58
67
|
}
|
|
59
68
|
ephemeris.push(...this.maneuver(mvr, interval));
|
|
60
69
|
}
|
|
61
|
-
while (this.
|
|
62
|
-
const step = Math.min(finish.difference(this.
|
|
63
|
-
this.propagate(this.
|
|
64
|
-
ephemeris.push(this.
|
|
70
|
+
while (this.cacheState_.epoch.posix < finish.posix) {
|
|
71
|
+
const step = Math.min(finish.difference(this.cacheState_.epoch), interval);
|
|
72
|
+
this.propagate(this.cacheState_.epoch.roll(step));
|
|
73
|
+
ephemeris.push(this.cacheState_);
|
|
65
74
|
}
|
|
66
75
|
return new VerletBlendInterpolator(ephemeris);
|
|
67
76
|
}
|
|
68
77
|
maneuver(maneuver, interval = 60.0) {
|
|
69
78
|
if (maneuver.isImpulsive) {
|
|
70
|
-
this.
|
|
71
|
-
return [this.
|
|
79
|
+
this.cacheState_ = maneuver.apply(this.propagate(maneuver.center));
|
|
80
|
+
return [this.cacheState_];
|
|
72
81
|
}
|
|
73
82
|
let tState = this.propagate(maneuver.start);
|
|
74
|
-
this.
|
|
83
|
+
this.forceModel_.loadManeuver(maneuver);
|
|
75
84
|
const ephemeris = [tState];
|
|
76
85
|
while (tState.epoch < maneuver.stop) {
|
|
77
86
|
const step = Math.min(maneuver.stop.difference(tState.epoch), interval);
|
|
78
87
|
tState = this.propagate(tState.epoch.roll(step));
|
|
79
88
|
ephemeris.push(tState);
|
|
80
89
|
}
|
|
81
|
-
this.
|
|
90
|
+
this.forceModel_.clearManeuver();
|
|
82
91
|
return ephemeris;
|
|
83
92
|
}
|
|
84
93
|
_kFn(state, hArg, kArg) {
|
|
@@ -86,7 +95,7 @@ export class RungeKutta4Propagator extends Propagator {
|
|
|
86
95
|
const posvel = state.position.join(state.velocity);
|
|
87
96
|
const result = posvel.add(kArg);
|
|
88
97
|
const sample = new J2000(epoch, result.toVector3D(0), result.toVector3D(3));
|
|
89
|
-
return this.
|
|
98
|
+
return this.forceModel_.derivative(sample);
|
|
90
99
|
}
|
|
91
100
|
_integrate(state, step) {
|
|
92
101
|
const k1 = this._kFn(state, 0, Vector.zero(6)).scale(step);
|
|
@@ -103,30 +112,30 @@ export class RungeKutta4Propagator extends Propagator {
|
|
|
103
112
|
return new J2000(tNext, result.toVector3D(0), result.toVector3D(3));
|
|
104
113
|
}
|
|
105
114
|
propagate(epoch) {
|
|
106
|
-
let delta = epoch.difference(this.
|
|
115
|
+
let delta = epoch.difference(this.cacheState_.epoch);
|
|
107
116
|
while (delta !== 0) {
|
|
108
117
|
const direction = delta >= 0 ? 1 : -1;
|
|
109
|
-
const dt = Math.min(Math.abs(delta), this.
|
|
110
|
-
this.
|
|
111
|
-
delta = epoch.difference(this.
|
|
118
|
+
const dt = Math.min(Math.abs(delta), this.stepSize_) * direction;
|
|
119
|
+
this.cacheState_ = this._integrate(this.cacheState_, dt);
|
|
120
|
+
delta = epoch.difference(this.cacheState_.epoch);
|
|
112
121
|
}
|
|
113
|
-
return this.
|
|
122
|
+
return this.cacheState_;
|
|
114
123
|
}
|
|
115
124
|
reset() {
|
|
116
|
-
this.
|
|
125
|
+
this.cacheState_ = this.initState_;
|
|
117
126
|
}
|
|
118
127
|
get state() {
|
|
119
|
-
return this.
|
|
128
|
+
return this.cacheState_;
|
|
120
129
|
}
|
|
121
130
|
checkpoint() {
|
|
122
|
-
this.
|
|
123
|
-
return this.
|
|
131
|
+
this.checkpoints_.push(this.cacheState_);
|
|
132
|
+
return this.checkpoints_.length - 1;
|
|
124
133
|
}
|
|
125
134
|
clearCheckpoints() {
|
|
126
|
-
this.
|
|
135
|
+
this.checkpoints_ = [];
|
|
127
136
|
}
|
|
128
137
|
restore(index) {
|
|
129
|
-
this.
|
|
138
|
+
this.cacheState_ = this.checkpoints_[index];
|
|
130
139
|
}
|
|
131
140
|
}
|
|
132
141
|
//# sourceMappingURL=RungeKutta4Propagator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RungeKutta4Propagator.js","sourceRoot":"","sources":["../../src/propagator/RungeKutta4Propagator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author @thkruz Theodore Kruczek
|
|
3
|
-
*
|
|
4
3
|
* @license AGPL-3.0-or-later
|
|
5
|
-
* @
|
|
4
|
+
* @copyright (c) 2020-2024 Theodore Kruczek
|
|
6
5
|
*
|
|
7
6
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
8
7
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author @thkruz Theodore Kruczek
|
|
3
|
+
* @license AGPL-3.0-or-later
|
|
4
|
+
* @copyright (c) 2020-2024 Theodore Kruczek
|
|
5
|
+
*
|
|
6
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
7
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
8
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
11
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
12
|
+
* See the GNU Affero General Public License for more details.
|
|
13
|
+
*
|
|
14
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
*/
|
|
17
|
+
/* eslint-disable @typescript-eslint/no-loss-of-precision */
|
|
18
|
+
/* eslint-disable class-methods-use-this */
|
|
19
|
+
import { RungeKuttaAdaptive } from './RungeKuttaAdaptive';
|
|
20
|
+
// / Runge-Kutta 8(9) adaptive numerical propagator.
|
|
21
|
+
export class RungeKutta89Propagator extends RungeKuttaAdaptive {
|
|
22
|
+
a_ = Float64Array.from([
|
|
23
|
+
0.0, 0.3462e-1, 0.9702435063878044594828361677100617517633e-1, 0.1455365259581706689224254251565092627645, 0.561,
|
|
24
|
+
0.2290079115904850126662751771814700052182, 0.5449920884095149873337248228185299947818, 0.645, 0.48375, 0.6757e-1,
|
|
25
|
+
0.25, 0.6590650618730998549405331618649220295334, 0.8206, 0.9012, 1.0, 1.0,
|
|
26
|
+
]);
|
|
27
|
+
b_ = [
|
|
28
|
+
new Float64Array(0),
|
|
29
|
+
Float64Array.from([0.3462e-1]),
|
|
30
|
+
Float64Array.from([-0.389335438857287327017042687229284478532e-1, 0.1359578945245091786499878854939346230295]),
|
|
31
|
+
Float64Array.from([0.3638413148954266723060635628912731569111e-1, 0.0, 0.1091523944686280016918190688673819470733]),
|
|
32
|
+
Float64Array.from([
|
|
33
|
+
2.025763914393969636805657604282571047511, 0.0, -7.638023836496292020387602153091964592952,
|
|
34
|
+
6.173259922102322383581944548809393545442,
|
|
35
|
+
]),
|
|
36
|
+
Float64Array.from([
|
|
37
|
+
0.5112275589406060872792270881648288397197e-1, 0.0, 0.0, 0.1770823794555021537929910813839068684087,
|
|
38
|
+
0.80277624092225014536138698108025283759e-3,
|
|
39
|
+
]),
|
|
40
|
+
Float64Array.from([
|
|
41
|
+
0.1316006357975216279279871693164256985334, 0.0, 0.0, -0.2957276252669636417685183174672273730699,
|
|
42
|
+
0.878137803564295237421124704053886667082e-1, 0.62130529752252747743214350056394300261,
|
|
43
|
+
]),
|
|
44
|
+
Float64Array.from([
|
|
45
|
+
0.7166666666666666666666666666666666666667e-1, 0.0, 0.0, 0.0, 0.0, 0.3305533578915319409260346730051472207728,
|
|
46
|
+
0.2427799754418013924072986603281861125606,
|
|
47
|
+
]),
|
|
48
|
+
Float64Array.from([
|
|
49
|
+
0.71806640625e-1, 0.0, 0.0, 0.0, 0.0, 0.3294380283228177160744825466257672816401,
|
|
50
|
+
0.1165190029271822839255174533742327183599, -0.34013671875e-1,
|
|
51
|
+
]),
|
|
52
|
+
Float64Array.from([
|
|
53
|
+
0.4836757646340646986611287718844085773549e-1, 0.0, 0.0, 0.0, 0.0, 0.3928989925676163974333190042057047002852e-1,
|
|
54
|
+
0.1054740945890344608263649267140088017604, -0.2143865284648312665982642293830533996214e-1,
|
|
55
|
+
-0.1041229174627194437759832813847147895623,
|
|
56
|
+
]),
|
|
57
|
+
Float64Array.from([
|
|
58
|
+
-0.2664561487201478635337289243849737340534e-1, 0.0, 0.0, 0.0, 0.0, 0.3333333333333333333333333333333333333333e-1,
|
|
59
|
+
-0.1631072244872467239162704487554706387141, 0.3396081684127761199487954930015522928244e-1,
|
|
60
|
+
0.1572319413814626097110769806810024118077, 0.215226747803187955230353477879477037696,
|
|
61
|
+
]),
|
|
62
|
+
Float64Array.from([
|
|
63
|
+
0.3689009248708622334786359863227633989718e-1, 0.0, 0.0, 0.0, 0.0, -0.1465181576725542928653609891758501156785,
|
|
64
|
+
0.2242577768172024345345469822625833796001, 0.2294405717066072637090897902753790803034e-1,
|
|
65
|
+
-0.35850052905728761357394424889330334334e-2, 0.8669223316444385506869203619044453906053e-1,
|
|
66
|
+
0.4383840651968337846196219974168630120572,
|
|
67
|
+
]),
|
|
68
|
+
Float64Array.from([
|
|
69
|
+
-0.4866012215113340846662212357570395295088, 0.0, 0.0, 0.0, 0.0, -6.304602650282852990657772792012007122988,
|
|
70
|
+
-0.281245618289472564778284183790118418111, -2.679019236219849057687906597489223155566,
|
|
71
|
+
0.518815663924157511565311164615012522024, 1.365353187603341710683633635235238678626,
|
|
72
|
+
5.885091088503946585721274891680604830712, 2.802808786272062889819965117517532194812,
|
|
73
|
+
]),
|
|
74
|
+
Float64Array.from([
|
|
75
|
+
0.4185367457753471441471025246471931649633, 0.0, 0.0, 0.0, 0.0, 6.724547581906459363100870806514855026676,
|
|
76
|
+
-0.425444280164611790606983409697113064616, 3.343279153001265577811816947557982637749,
|
|
77
|
+
0.617081663117537759528421117507709784737, -0.929966123939932833937749523988800852013,
|
|
78
|
+
-6.099948804751010722472962837945508844846, -3.002206187889399044804158084895173690015,
|
|
79
|
+
0.2553202529443445472336424602988558373637,
|
|
80
|
+
]),
|
|
81
|
+
Float64Array.from([
|
|
82
|
+
-0.779374086122884664644623040843840506343, 0.0, 0.0, 0.0, 0.0, -13.93734253810777678786523664804936051203,
|
|
83
|
+
1.252048853379357320949735183924200895136, -14.69150040801686878191527989293072091588,
|
|
84
|
+
-0.494705058533141685655191992136962873577, 2.242974909146236657906984549543692874755,
|
|
85
|
+
13.36789380382864375813864978592679139881, 14.39665048665068644512236935340272139005,
|
|
86
|
+
-0.7975813331776800379127866056663258667437, 0.4409353709534277758753793068298041158235,
|
|
87
|
+
]),
|
|
88
|
+
Float64Array.from([
|
|
89
|
+
2.058051337466886442151242368989994043993, 0.0, 0.0, 0.0, 0.0, 22.35793772796803295519317565842520212899,
|
|
90
|
+
0.90949810997556332745009198137971890783, 35.89110098240264104710550686568482456493,
|
|
91
|
+
-3.442515027624453437985000403608480262211, -4.865481358036368826566013387928704014496,
|
|
92
|
+
-18.90980381354342625688427480879773032857, -34.26354448030451782929251177395134170515,
|
|
93
|
+
1.264756521695642578827783499806516664686, 0.0, 0.0,
|
|
94
|
+
]),
|
|
95
|
+
];
|
|
96
|
+
ch_ = Float64Array.from([
|
|
97
|
+
0.1996996514886773085518508418098868756464e-1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
|
|
98
|
+
2.191499304949330054530747099310837524864, 0.8857071848208438030833722031786358862953e-1,
|
|
99
|
+
0.1140560234865965622484956605091432032674, 0.2533163805345107065564577734569651977347,
|
|
100
|
+
-2.056564386240941011158999594595981300493, 0.340809679901311993516009489422454381283, 0.0, 0.0,
|
|
101
|
+
0.4834231373823958314376726739772871714902e-1,
|
|
102
|
+
]);
|
|
103
|
+
c_ = Float64Array.from([
|
|
104
|
+
0.1461197685842315252051541915018784713459e-1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
|
|
105
|
+
-0.391521186233133908941022826728824203081, 0.2310932500289506415909675644868993669908,
|
|
106
|
+
0.1274766769992852382560589467488989175618, 0.2246434176204157731566981937082069688984,
|
|
107
|
+
0.5684352689748512932705226972873692126743, 0.5825871557215827200814768021863420902155e-1,
|
|
108
|
+
0.1364317403482215641609022744494239843327, 0.3057013983082797397721005067920369646664e-1, 0.0,
|
|
109
|
+
]);
|
|
110
|
+
get a() {
|
|
111
|
+
return this.a_;
|
|
112
|
+
}
|
|
113
|
+
get b() {
|
|
114
|
+
return this.b_;
|
|
115
|
+
}
|
|
116
|
+
get ch() {
|
|
117
|
+
return this.ch_;
|
|
118
|
+
}
|
|
119
|
+
get c() {
|
|
120
|
+
return this.c_;
|
|
121
|
+
}
|
|
122
|
+
get order() {
|
|
123
|
+
return 8;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=RungeKutta89Propagator.js.map
|