Record the measured validation and performance figures in the readme
The acceptance criteria ask for numbers rather than claims, and every row but the three still-unbuilt ones has been measured. Splits validation into the Orekit comparison and the analytic invariants, and gives the performance table step counts alongside times so a ratio of times can be read as per-step cost. The three invariant tests and the MSIS drag comparison now print what they achieved, so the readme's figures can be reproduced by running them. Also corrects the ordinary-diffeq version in the foundations table, and the claim that the fixture generator produces observations, which it does not yet.
This commit is contained in:
1 parent
98f19b700a
commit
d268fc0cf5
4 files changed
+89
-13
No files matched your search
@@ -335,11 +335,13 @@ fn test_msis_drag_agrees_with_orekit() {
|
||||
.accuracy(Accuracy::High);
|
||||
|
||||
let solution = propagation.run();
|
||||
let mut position = 0.0_f64;
|
||||
let (mut position, mut velocity) = (0.0_f64, 0.0_f64);
|
||||
for state in &arc.states {
|
||||
let ours = Orbit.state(solution.interpolate(state.elapsed));
|
||||
position =
|
||||
position.max((ours.position() - Vector3::from_column_slice(&state.position)).norm());
|
||||
velocity =
|
||||
velocity.max((ours.velocity() - Vector3::from_column_slice(&state.velocity)).norm());
|
||||
}
|
||||
|
||||
let drag_free = {
|
||||
@@ -353,7 +355,7 @@ fn test_msis_drag_agrees_with_orekit() {
|
||||
let effect = (Vector3::from_column_slice(&last.position) - drag_free).norm();
|
||||
|
||||
println!(
|
||||
"msis drag: {position:.3e} m, {:.4}% of a {effect:.0} m effect",
|
||||
"msis drag: {position:.3e} m, {velocity:.3e} m/s, {:.4}% of a {effect:.0} m effect",
|
||||
position / effect * 100.0
|
||||
);
|
||||
assert!(
|
||||
|
||||
Reference in new issue
Block a user