[][src]Crate nyx_space

nyx-space

Nyx is a high fidelity, fast, reliable and validated astrodynamical toolkit library written in Rust.

The ultimate goal of this library is to provide a high-speed and scalable replacement for General Mission Analysis Tool (GMAT).

Tutorial

The tutorial is a great place to start learning how to use nyx. The target audience is astrodynamics & aerospace engineers.

If you are new to Rust, learn the basics on the "Rust By Example" interactive tutorial. Using nyx isn't hard, despite the code of the library being quite complicated.

Features

Unless specified otherwise in the documentation of specific functions, all vectors and matrices are statically allocated.

Propagation

  • Propagation with different Runge Kutta methods (validated in GMAT)
  • Convenient and explicit definition of the dynamics for a simulation
  • Propagation to different stopping conditions

Dynamical models

  • Multibody dynamics using XB files
  • Finite burns with fuel depletion (including low thrust / ion propulsion)
  • Sub-Optimal Control of continuous thrust (e.g. Ruggerio, Petropoulos/Q-law)
  • Solar radiation pressure modeling
  • Basic drag models (cannonball)

Orbit determination

  • Statistical Orbit Determination: Classical and Extended Kalman Filter
  • Orbit Determination with multibody dynamics
  • Smoothing and iterations of CKFs
  • Square Root Information Filer (SRIF)
  • An easy-to-use OD user interface
  • State noise compensation (SNC)

Celestial computations

  • Orbital state manipulation (from GMAT source code and validated in GMAT)
  • Planetary and Solar eclipse and visibility computation
  • Light-time corrections and abberations

Usage

Put this in your Cargo.toml:

[dependencies]
nyx-space = "0.0.20"

And add the following to your crate root:

extern crate nyx_space as nyx;

Modules

celestia

Provides the solar system planets, and state and (later) ephemeride management.

dimensions

Re-export nalgebra

dynamics

Provides several dynamics used for orbital mechanics and attitude dynamics, which can be elegantly combined.

io

Provides all the input/output needs for this library, including loading of SPICE kernels, and gravity potential files.

od

Provides all the orbital determination tools.

propagators

Provides all the propagators / integrators available in nyx.

time

Re-export of hifitime

tutorial

This tutorial covers some of the basics of using nyx and its builtin features.

utils

Include utility functions shared by different modules, and which may be useful to engineers.