[−][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 |
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. |