- Added union in OrbitalElements (semi_major_axis | semi_latus_rectum)
- Updated config_loader to parse and validate semi_latus_rectum for parabolic orbits
- Validation ensures correct parameter (semi_latus_rectum for e≈1, semi_major_axis for other)
- Updated orbital_mechanics.cpp parabolic case: r = p / (1 + cos(ν))
- Updated parabolic_comet.toml to use semi_latus_rectum = 1.496e11
- Tolerance for parabolic detection: |e - 1.0| < 0.005
Note: Parabolic test still fails velocity tolerance check due to floating-point precision
at r=0.5 AU, E ≈ -200 J/kg (not exactly 0)
- Update velocity calculation to handle e=1.0 (parabolic orbits)
using escape velocity formula v² = 2GM/r instead of vis-viva
- Add parabolic comet test configuration
- Add test cases for parabolic orbit energy and escape trajectory
Claude
- Add tomlc17 library as git submodule
- Update Makefile to build tomlc17.c with C compiler
- Replace config_loader.cpp with TOML-based implementation
- Add helper functions for parsing TOML tables (position, color)
- Convert all 5 config files from .txt to .toml format:
* configs/solar_system.toml - full solar system with planets and moons
* configs/example_binary_star.toml - binary star system
* configs/test_simple.toml - various orbit types for testing
* tests/configs/earth_circular.toml - Earth orbit test
* tests/configs/mars_circular.toml - Mars orbit test
- Update all test files to reference .toml extensions
- Remove old .txt config files (maintain compatibility)
- Support both INT64 and FP64 TOML values (tomlc17 type flexibility)
- All automated tests pass with new TOML format
Claude