Skip to content

updates #2

Merged
merged 1 commit into from
Apr 15, 2026
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.