This is a project to kick off my 4th year undergraduate thesis. The goal of this simulator is for me to develop an intuition for working with solar sails and to develop a tool that can be used to simulate the dynamics of a solar sail in a variety of scenarios. The code in here will be used later one to help me develop a steering law for trajectory optimization.
Star Sailor runs on PyPy, which speeds up regular Python code. I am using this to compare against my previous projects built on regular Python, ctypes, and cffi. However, the code should be drop-in compatible with regular Python 3.8+.
To install, simply run pip install git+https://github.com/itchono/star-sailor
. This will install the package and all of its dependencies. To run the simulator, simply run python -m star-sailor
.
If installing on PyPy, use PyPy 3.8, and add the flag --extra-index-url https://antocuni.github.io/pypy-wheels/manylinux2010/
to the pip install
command.
Star sailor is a 2D simulator using Cowell's method of propagation with the following accelerations:
This is for an ideal sail, which is perfectly reflective.
This is for a spherical central body (i.e. without J2 effects).
Time integration is done using the Dormand-Prince 8(7) method with a variable step size. The error tolerance is set to