As part of ongoing research into Asteroid Retrieval in the CR3BP, the Fortran Asteroid Retrieval Toolkit provides the basic computational tools to find Easily Retrievable Objects (EROs) for a given database of Near-Earth Objects. Several tools, written largely in Fortran, are included:
- The Fortran Asteroid Prefilter: Takes a given NEO database and filters it according to a Hohmann transfer approximation to obtain retrieval candidates.
- The Fortran Asteroid Retrieval Tool: Takes a given list of retrieval candidates and optimises their transfers for minimum transfer velocity and whether the object can be considered an ERO.
- A script, written in Expect, to automatically extract epehemerides from the JPL HORIZONS system.
- MIDACO Wrappers, designed to interface C versions of MIDACO with Fortran objective function codes.
All of the codes are written in Fortran, with small interfaces to C++, and parallelised using the OpenMPI and MPI parallel programming paradigms. The problems are embarassingly parallel and scale nearly linearly with core count. Basic Python versions of the Asteroid Retrieval Tool are available on request.
- BOOST
- OpenMP
- Message-Passing Interface MPICH is officially supported, although any MPI implementation that supports Fortran will do.
- CMake
- SPICE
- Fortran Astrodynamics Toolkit
- Fortran B-Spline Library
- MIDACO - this is a paid optimiser for more than 4 design variables (as is the case here for the retrieval tool.) Either a license must be purchased, or the Tool must be rewritten to work for your optimiser. This is explained in detail in the local folder for the tool.
Both the Astrodynamics toolkit and B-Spline library are kindly provided by Jacob Williams; his codes also depend on FoBiS.py, an automated build library for Fortran written in Python.
gfortran
, gcc
and g++
are the officially-supported compilers. In theory, the Intel Compilers should also work, but use at your own risk.
The dependencies given above are required prior to build. The program is currently built and tested with the GNU compiler systems, wrapped by the MPICH library.
- Clone the repo
git clone https://github.com/tylerjackoliver/Fortran-Asteroid-Retrieval-Toolkit.git
-
Navigate to the tool you wish to use.
-
For Fortran codes, install the dependencies and run the CMake wrapper
sh build.sh
- For Expect codes, use as per your system instructions.
Jack Tyler - @tylerjackoliver - [email protected]
Project Link: https://github.com/tylerjackoliver/Fortran-Asteroid-Retrieval-Toolkit