Giter Club home page Giter Club logo

generalastrodynamics.jl's Introduction

Tests Docs

GeneralAstrodynamics.jl

Common astrodynamics calculations, with units!

Warning

The functionality in this package has being split into constituent packages, including AstrodynamicalModels.jl AstrodynamicalCalculations.jl, AstrodynamicalSolvers.jl, and more. GeneralAstrodynamics.jl is currently being refactored into a super-package, which re-exports the functionality in its constituent packages. Look out for v1.0!

JuliaCon Talk

Check out GeneralAstrodynamics in action at JuliaCon 2021! The talk Going to Jupiter with Julia walks through a simple Jupiter mission design while gently introducing astrodynamics, Julia, and GeneralAstrodynamics.

Features

Restricted Two-body Problem (R2BP)

  • Structures for Cartesian and Keplerian states, and R2BP systems
  • Functions which implement common R2BP equations
  • Kepler and Lambert solvers
  • Orbit propagation and plotting

Circular Restricted Three-body Problem (CR3BP)

  • Structures for dimensioned and normalized Cartesian states, and dimensioned and normalized CR3BP systems
  • Functions which implement common CR3BP equations
  • Analytical and iterative (numerical) Halo orbit solvers
  • Unstable and stable Halo orbit manifold computation
  • Orbit propagation and plotting
  • Zero-velocity curve computation and plotting

N-body Problem (NBP)

  • This was implemented in a previous package version, and is currently being refactored

Envisioned Usage

using GeneralAstrodynamics

orbit = rand(R2BPOrbit)
trajectory = propagate(orbit, orbital_period(orbit))

furnsh(
    de440s(),                   # position and velocity data for nearby planets
    latest_leapseconds_lsk(),   # timekeeping, parsing epochs
    gm_de440(),                 # mass parameters for major solar system bodies
    pck00011(),                 # physical properties of major solar system bodies
)

μ = reduced_mass(
  gm("earth"),
  gm("moon"),
)

orbit, T = let
  u, T = halo(μ, 2; amplitude=1e-2)

  CR3BPOrbit(CartesianState(u), CR3BParameters(μ)), T
end

trajectory = propagate(orbit, T)

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.