Skip to content

Commit

Permalink
updates
Browse files Browse the repository at this point in the history
  • Loading branch information
Adrian G L committed Apr 15, 2026
1 parent 83a317e commit 4c0319e
Show file tree
Hide file tree
Showing 5 changed files with 97 additions and 254 deletions.
41 changes: 0 additions & 41 deletions assets/README.md

This file was deleted.

Binary file removed assets/earth_daymap.jpg
Binary file not shown.
94 changes: 94 additions & 0 deletions examples/hypsotest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
"""Hypso 1 test: 1-month deorbit simulation without oxide calculations."""

import sys
from pathlib import Path

sys.path.insert(0, str(Path(__file__).parent.parent))

import numpy as np

from src import Satellite, Simulation, SimulationConfig, State
from src.constants import EARTH_GRAVITATIONAL_PARAMETER, EARTH_RADIUS
from src.environment.atmosphere import Nrlmsise00Density
from src.events import DeorbitEvent, TimeLimitEvent
from src.forces import AtmosphericDrag, GravityGradientTorque, NewtonianGravity
from src.visualization import visualize_orbit


def get_default_stl_path() -> Path | None:
repo_root = Path(__file__).parent.parent
stl_file = repo_root / "sattelite.stl"
return stl_file if stl_file.exists() else None


def main():
stl_path = get_default_stl_path()
sat = Satellite(
mass=7.6,
drag_area=0.06,
drag_coefficient=2.2,
min_drag_area=0.06,
max_drag_area=0.06,
stl_path=stl_path,
name="hypso 1",
)

altitude = 436_880
expected_altitude = 395_977
six_months = 182.625 * 86400

r = EARTH_RADIUS + altitude
v = np.sqrt(EARTH_GRAVITATIONAL_PARAMETER / r)

state = State(
position=np.array([r, 0, 0]),
velocity=np.array([0.0, v, 0.1]),
time=0.0,
rotation_euler=np.array([0.5, 0.8, 0.3]),
angular_velocity_vec=np.array([1e-4, 1e-4, 1e-4]),
temperature_atmosphere=300.0,
temperature_sattelite=280.0,
oxide_thickness=0.0,
)

atmosphere = Nrlmsise00Density()

forces = [
NewtonianGravity(),
AtmosphericDrag(atmosphere),
GravityGradientTorque(stiffness=1e-10, damping=0.01),
]

events = [
DeorbitEvent(),
TimeLimitEvent(max_time=six_months),
]

print(f"Hypso 1 - {altitude / 1000:.2f} km initial altitude")
print(f"Simulating for 6 months ({six_months / 86400:.1f} days)...")
sim = Simulation(
state,
sat,
forces,
events,
SimulationConfig(dt=3.0, save_interval=500),
)
sim.run()

final_alt_km = sim.final_state.altitude() / 1000
expected_km = expected_altitude / 1000
diff_km = final_alt_km - expected_km

print(f"\nFinal altitude: {final_alt_km:.3f} km")
print(f"Expected altitude: {expected_km:.3f} km")
print(f"Diff: {diff_km:+.3f} km")
print(f"Sim time: {sim.final_state.time / 86400:.2f} days")
print(f"Steps: {sim.step_count}")

if len(sim.history) > 1:
print("\nOpening 3D visualization...")
visualize_orbit(sim.history, sat, title="Hypso 1 Deorbit")


if __name__ == "__main__":
main()
6 changes: 3 additions & 3 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,9 @@
echo "Python: $(python --version)"
echo ""
echo "Run examples with:"
echo " python examples/basic_simulation.py # Deorbit simulation"
echo " python examples/deorbit_simple.py # With scheduled changes"
echo " python examples/orbit_comparison.py # Parallel comparison"
echo " python examples/basic_simulation.py # Deorbit simulation with 3D visualization"
echo " python examples/hypsotest.py # Hypso 1 6-month deorbit simulation"
echo " python examples/oxide_simulation.py # Oxide layer growth simulation"
echo ""
'';
};
Expand Down
210 changes: 0 additions & 210 deletions main.py

This file was deleted.

0 comments on commit 4c0319e

Please sign in to comment.