Mission Fuel Calculator
alias BetterThanNASA.Physics
alias BetterThanNASA.MissionControl
Scenario 1: Apollo 11 Mission
-
Path: launch Earth, land Moon, launch Moon, land Earth
-
Equipment mass: 28801 kg
apollo_stops = [
%{planet: :earth, operation: :launch},
%{planet: :moon, operation: :landing},
%{planet: :moon, operation: :launch},
%{planet: :earth, operation: :landing}
]
apollo_equipment_mass = 28_801
apollo_fuel = MissionControl.calculate_mission_fuel(apollo_equipment_mass, apollo_stops)
IO.puts("Apollo 11 Mission Fuel Required: #{apollo_fuel} kg")
Apollo 11 Mission Fuel Required: 51898 kg
:ok
Scenario 2: Mars Mission
-
Path: launch Earth, land Mars, launch Mars, land Earth
-
Equipment mass: 14606 kg
mars_stops = [
%{planet: :earth, operation: :launch},
%{planet: :mars, operation: :landing},
%{planet: :mars, operation: :launch},
%{planet: :earth, operation: :landing}
]
mars_equipment_mass = 14_606
mars_fuel = MissionControl.calculate_mission_fuel(mars_equipment_mass, mars_stops)
IO.puts("Mars Mission Fuel Required: #{mars_fuel} kg")
Mars Mission Fuel Required: 33388 kg
:ok
Scenario 3: Passenger Ship Mission
-
Path: launch Earth, land Moon, launch Moon, land Mars, launch Mars, land Earth
-
Equipment mass: 75432 kg
passenger_stops = [
%{planet: :earth, operation: :launch},
%{planet: :moon, operation: :landing},
%{planet: :moon, operation: :launch},
%{planet: :mars, operation: :landing},
%{planet: :mars, operation: :launch},
%{planet: :earth, operation: :landing}
]
passenger_equipment_mass = 75_432
passenger_fuel = MissionControl.calculate_mission_fuel(passenger_equipment_mass, passenger_stops)
IO.puts("Passenger Ship Mission Fuel Required: #{passenger_fuel} kg")
Passenger Ship Mission Fuel Required: 212161 kg
:ok