Fix/triad#307
Merged
Merged
Conversation
…ove force handling
…tPropagator SpacecraftPropagator now owns all force building for custom integrators, mirroring the existing VV convenience constructor pattern. RK78Integrator constructors no longer require forces or initial state; forces are added via AddForce() and Initialize() is called by the propagator. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implement dual-mode propagator: SSB-centered (existing, for interplanetary) and central-body-centered (new, for planetary satellite missions). The central-body mode avoids catastrophic cancellation in double precision that occurs when computing satellite-to-body vectors from SSB-centered positions (~5 significant digits lost for LEO). - Add ThirdBodyPerturbation force using Battin's numerically stable formulation: a = -mu / |r-d|^3 * (r + f(q)*d), where f(q) stably computes (1+q)^(3/2)-1 and |r-d|^3 = |d|^3*(1+q)^(3/2) - Add centralBody constructor overloads to SpacecraftPropagator - Replace old propagation tests with conformance-based tests from GMAT R2025a reference data (cases 001, 002, 003) - Both modes tested against same GMAT reference within tolerances Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…tests; remove .NET 8.0 support - Introduce PropagatorBase, SsbPropagator, and CentralBodyPropagator for modular propagation modes - Implement conformance and infrastructure tests for new propagators - Update Spacecraft propagation logic to select appropriate propagator based on observer type - Remove .NET 8.0 target from project files and NuSpec; standardize on net10.0 - Refactor usages and comments for new propagator classes - Adjust test tolerances and assertions for improved accuracy and consistency
…nd test project references for consistent community linkage; add CLAUDE.md with repository guidance
…formance; refactor GetEphemeris methods and introduce PropagationEphemerisCache
…tate vector handling; convert CB-relative states to SSB-relative on demand and optimize ephemeris retrieval
…ctors for force evaluation; implement UpdateState method for improved state management
…ect corrected ephemeris values
…n-SPICE observers; enhance GetGeometricStateRelativeTo methods across celestial objects
…mputation for non-SPICE observers; reduce SSB round-trips and improve memory allocation efficiency
…amics propagation - Added performance benchmark results for RK78 integration methods in Markdown, CSV, and HTML formats. - Implemented BisectionEventFinder for root-finding within integration steps using cubic Hermite interpolation. - Created AcceptedStep struct to represent integration steps with start and end states. - Introduced CrossingDirection enum to specify event triggering directions. - Developed IEventDetector interface for industry-standard event detection based on continuous g-functions. - Implemented ManeuverEventDetector class to handle impulse maneuvers and event-driven triggering. - Added IntegrationResult struct to encapsulate results of integration segments, including detected events. - Created PropagationSegment class to manage continuous propagation arcs and provide cubic Hermite interpolation. - Developed PropagationSolution class to manage multiple segments and interpolate states at given epochs.
…ralBodyPropagator, implement segment-based event-driven maneuver execution, and enhance event detection system with g-function approach.
…espectively; add IO.Astrodynamics.CLI project to solution
…isTests for accuracy
…propagator-rework # Conflicts: # src/community/IO.Astrodynamics.Net/IO.Astrodynamics.Tests/Propagators/PropagatorTests.cs
… StateVectors access modifier
…prove internal access modifiers
…hemeris computation strategy
…te state vector retrieval
Add MSBuild-based license validation for IO.Astrodynamics.Pro NuGet consumers (IOASTRO001/IOASTRO002 errors) with internal build bypass. Create smoke test project validating both license enforcement and package functionality from NuGet. Modernize community NuGet packaging by replacing .nuspec with csproj-based approach (fixes missing MathNet dependencies and adds proper runtimes/ layout for native libraries). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The .nuspec was replaced by csproj-based packaging in the previous commit. Update the CD workflow to use plain dotnet pack. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…license # Conflicts: # src/community/IO.Astrodynamics.Net/IO.Astrodynamics/IO.Astrodynamics.csproj
- Introduced `AlbedoRadiationPressure` class to model the perturbation from sunlight reflected off celestial bodies onto spacecraft. - Created `CentralBodyPropagatorBuilder` to facilitate the construction of propagators with albedo effects. - Added tests for albedo radiation pressure in `AlbedoRadiationPressureTests` to validate the implementation. - Updated `CelestialBody` class to include an `Albedo` property. - Modified project files to include necessary references and configurations for the new features.
…IEarthOrientationParameters interface, and GCRF, CIRS, TIRS frames
…ests for addition and RTN transformations
…on and update related tests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request adds comprehensive new unit tests and minor improvements to the astrodynamics library, focusing on attitude targeting, matrix operations, special functions, and state vector transformations. It also introduces a new property for spacecraft conjunction analysis. The changes improve test coverage, clarify the default behavior for aberration handling, and add functionality for matrix and vector operations.
Attitude Targeting and Aberration Handling:
CelestialAttitudeTargetTests.csandTriadAttitudeTests.csto clarify that the default aberration for celestial targets is nowAberration.None(geometric), ensuring consistency with orbital direction targets. Regression and difference tests were added to verify this behavior and its impact on attitude calculations. [1] [2] [3] [4] [5]Attitude Targeting and Aberration Handling
CelestialAttitudeTargetis nowAberration.None(geometric); new and updated tests verify default and explicit aberration behaviors, and ensure consistency in triad attitude calculations when mixing celestial and orbital targets. [1] [2] [3] [4] [5]