|
|
|
@ -29,7 +29,7 @@ def main(): |
|
|
|
r = vmag(pos) |
|
|
|
r = vmag(pos) |
|
|
|
v = vmag(vel) |
|
|
|
v = vmag(vel) |
|
|
|
|
|
|
|
|
|
|
|
print("// === Initial state ===") |
|
|
|
print("// Initial state") |
|
|
|
print(f"// pos = ({pos[0]:.15e}, {pos[1]:.15e}, {pos[2]:.15e}) m") |
|
|
|
print(f"// pos = ({pos[0]:.15e}, {pos[1]:.15e}, {pos[2]:.15e}) m") |
|
|
|
print(f"// vel = ({vel[0]:.15e}, {vel[1]:.15e}, {vel[2]:.15e}) m/s") |
|
|
|
print(f"// vel = ({vel[0]:.15e}, {vel[1]:.15e}, {vel[2]:.15e}) m/s") |
|
|
|
print(f"// r = {r:.15e} m") |
|
|
|
print(f"// r = {r:.15e} m") |
|
|
|
@ -57,7 +57,7 @@ def main(): |
|
|
|
|
|
|
|
|
|
|
|
v_new = vmag(vel_new) |
|
|
|
v_new = vmag(vel_new) |
|
|
|
|
|
|
|
|
|
|
|
print("// === After prograde burn ===") |
|
|
|
print("// After prograde burn") |
|
|
|
print(f"// burn_dir = ({burn_dir[0]:.15e}, {burn_dir[1]:.15e}, {burn_dir[2]:.15e})") |
|
|
|
print(f"// burn_dir = ({burn_dir[0]:.15e}, {burn_dir[1]:.15e}, {burn_dir[2]:.15e})") |
|
|
|
print(f"// vel_new = ({vel_new[0]:.15e}, {vel_new[1]:.15e}, {vel_new[2]:.15e}) m/s") |
|
|
|
print(f"// vel_new = ({vel_new[0]:.15e}, {vel_new[1]:.15e}, {vel_new[2]:.15e}) m/s") |
|
|
|
print(f"// v_new = {v_new:.15e} m/s") |
|
|
|
print(f"// v_new = {v_new:.15e} m/s") |
|
|
|
@ -88,7 +88,7 @@ def main(): |
|
|
|
print() |
|
|
|
print() |
|
|
|
|
|
|
|
|
|
|
|
# Verify omega is in [0, 2*pi) |
|
|
|
# Verify omega is in [0, 2*pi) |
|
|
|
print("// === Omega range check ===") |
|
|
|
print("// Omega range check") |
|
|
|
print(f"// omega = {new_elements.omega:.15e} rad") |
|
|
|
print(f"// omega = {new_elements.omega:.15e} rad") |
|
|
|
print(f"// omega in [0, 2*pi)? {0.0 <= new_elements.omega < 2.0 * math.pi}") |
|
|
|
print(f"// omega in [0, 2*pi)? {0.0 <= new_elements.omega < 2.0 * math.pi}") |
|
|
|
print() |
|
|
|
print() |
|
|
|
@ -107,7 +107,7 @@ def main(): |
|
|
|
# the eccentricity vector flips, meaning periapsis moves to the opposite side, |
|
|
|
# the eccentricity vector flips, meaning periapsis moves to the opposite side, |
|
|
|
# so ω → π. |
|
|
|
# so ω → π. |
|
|
|
|
|
|
|
|
|
|
|
print("// === Expected test values ===") |
|
|
|
print("// Expected test values") |
|
|
|
print(f"// a_expected = {new_elements.a:.15e}") |
|
|
|
print(f"// a_expected = {new_elements.a:.15e}") |
|
|
|
print(f"// e_expected = {new_elements.e:.15e}") |
|
|
|
print(f"// e_expected = {new_elements.e:.15e}") |
|
|
|
print(f"// omega_expected = {new_elements.omega:.15e} rad ({math.degrees(new_elements.omega):.6f} deg)") |
|
|
|
print(f"// omega_expected = {new_elements.omega:.15e} rad ({math.degrees(new_elements.omega):.6f} deg)") |
|
|
|
|