Git Product home page Git Product logo

fortran-astrodynamics-toolkit's Introduction

Fortran Astrodynamics Toolkit

Image

Overview

The goal is to produce a comprehensive library, written in modern Fortran (Fortran 2003/2008), of all the standard orbital mechanics algorithms. This is a work in progress. Currently-implemented and proposed capabilities include:

  • Lambert solvers
  • Gooding
  • Izzo
  • Arora
  • Kepler propagators
  • Gooding
  • Shepperd
  • Goodyear
  • ODE solvers (with event-finding)
  • Runge-Kutta
  • Nystrom
  • Adams
  • Force models
  • point mass gravity field
  • geopotential gravity
  • solar radiation pressure
  • atmospheric drag
  • relativistic effects
  • Reference frames
  • IAU_EARTH
  • IAU_MOON
  • Celestial Body Ephemerides
  • JPLEPH
  • SPICE
  • Analytical Moon w.r.t Earth
  • Analytical solar system primary bodies
  • Alternate equations of motion
  • Circular restricted three-body problem
  • Clohessy-Wiltshire
  • Modified equinoctial elements
  • Misc
  • orbital element conversions
  • halo orbits
  • targeting and optimization
  • spacecraft engine models

Examples

Building

A FoBiS configuration file (fortran-astrodynamics-toolkit.fobis) is provided that can build the library and examples. Use the mode flag to indicate what to build. For example:

  • To build all the examples using gfortran: FoBiS.py build -f fortran-astrodynamics-toolkit.fobis -mode tests-gnu
  • To build all the examples using ifort: FoBiS.py build -f fortran-astrodynamics-toolkit.fobis -mode tests-intel
  • To build a static library using gfortran: FoBiS.py build -f fortran-astrodynamics-toolkit.fobis -mode static-gnu
  • To build a static library using ifort: FoBiS.py build -f fortran-astrodynamics-toolkit.fobis -mode static-intel

The full set of modes are:

  • static-gnu
  • static-gnu-debug
  • static-intel
  • static-intel-debug
  • shared-gnu
  • shared-gnu-debug
  • shared-intel
  • shared-intel-debug
  • tests-gnu
  • tests-gnu-debug
  • tests-intel
  • tests-intel-debug

To generate the documentation using ford, run:

FoBis.py rule --execute makedoc -f fortran-astrodynamics-toolkit.fobis

Third-Party Requirements

A script get_third_party.sh is included to download and build the third-party dependencies on unix-like operating systems.

Pyplot-Fortran

The plots generated by the examples are done using the pyplot-fortran module. The git repo includes pyplot-fortran as a submodule, and it will automatically be included when building with FoBiS.

Ephemeris files

To use the ephemeris_module, a copy of one of the JPL binary ephemeris files must be present in the eph directory. This can be built from the instructions at: ftp://ssd.jpl.nasa.gov/pub/eph/planets/fortran/userguide.txt. For example (on Linux):

wget ftp://ssd.jpl.nasa.gov/pub/eph/planets/fortran/*
wget ftp://ssd.jpl.nasa.gov/pub/eph/planets/ascii/de405/*
#edit asc2eph.f file to set NRECL = 4:
sed -i '_original' '/^C.*PARAMETER ( NRECL = 4 )/s/^C//' asc2eph.f
gfortran asc2eph.f -o asc2eph
cat header.405 ascp*.405 | ./asc2eph
mkdir Fortran-Astrodynamics-Toolkit/eph
mv JPLEPH Fortran-Astrodynamics-Toolkit/eph/JPLEPH.405

Geopotential files

To use the geopotential_module, you need a geopotential model file (for example GGM03C.GEO from ftp://ftp.csr.utexas.edu/pub/grace/GGM03/GGM03_Archive.zip). This should be placed in the grav directory. For example:

wget ftp://ftp.csr.utexas.edu/pub/grace/GGM03/GGM03_Archive.zip
unzip GGM03_Archive.zip
mkdir Fortran-Astrodynamics-Toolkit/grav
cp GGM03_Archive/GGM03C.GEO Fortran-Astrodynamics-Toolkit/grav

See also

fortran-astrodynamics-toolkit's People

Contributors

jacobwilliams avatar

Watchers

James Cloos avatar Yang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.