-
Notifications
You must be signed in to change notification settings - Fork 11
Home
The Spacecraft Orbital Computations Kit (SpOCK) is an open source tool for spacecraft mission analysis and simulation. SpOCK allows the simulation of spacecrafts' hardware, orbital and attitude dynamics, and the computations of mission events (ground station contacts, payload data-takes and eclipses). The ambition of the author is to develop an operational tool (mission analysis, flight dynamics and operations) which includes only few but accurate simulations features and which can be easily further developed and customized. For this reason the software is developed with a (hopefully) clear structure with elements which can be easily read and reproduced and without a graphical user interface.
SpOCK is written in C++ language. The software has been built on the main requirements of modularity, customizability and use of already existing reliable and validated external libraries whenever possible. Among the huge number of features intrinsic to C++, class inheritance has been used extensively. This allows code reusability and readability which are fundamental features for a code which is devised to be cusomizable.
Core libraries for all computations are the Eigen and Boost libraries. Eigen is a fast and reliable C++ template library for linear algebra, matrices, vectors, numerical solvers, and related algorithms. Boost is a set of libraries for C++ that provide support for tasks and structures. Specifically, odeint which is a Boost library for solving initial value problems of ordinary differential equations, has been selected for the numerical integration of orbit and attitude dynamics.
The NASA SPICE library has been used for computation using planets and Sun ephemerides, for Earth-centered coordinate systems transformations and time systems transformations.
For the atmospheric models JB2008 and NRLMSISE-00 as well as for the Earth's magnetic fields models IGRF13 and WMM2020, the official Fortran libraries has been used.
The XML parser has been implemented by means of the CodeSynthesis XSD.
Some effort has been put into enhancing the performance of the software (e.g. vectorization, parallelization, etc.) reaching a reasonable execution speed (which of course does not depend only on the code). I am perfectly aware of the fact that the performance of the software can be improved with a better design and using more intrinsic features of C++. Nevertheless one of the main requirements was reusability and readibility of the code's structure has been kept as simple as possible knowing that C++ is one of the most difficult programming languages to read.
SpOCK is a domain specific software released with a package which requires the compilation of a C++ code and has no graphical user interface. The use of this tool requires some basic skills in compiling a code with GNU make and at least a basic knowledge of astrodynamics.
SpOCK is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 3.
This software is the product of a free-time-project carried on by a single person and is provided 'as is' without warranty of any kind. There can be no warranty that:
- The software will meet your requirements
- The software will be uninterrupted, timely, secure or error-free
- The results that may be obtained from the use of the software will be effective, accurate or reliable
- The quality of the software will meet your expectations
- Any errors in the software will be corrected
The author will try to maintain it and fix any found or reported bug in a resonable time but he cannot guarantee it.
Software and its documentation:
- Could include technical or other mistakes, inaccuracies or typographical errors
- May be out of date, and the author makes no commitment to update such materials