-
-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathlib.rs
81 lines (58 loc) · 2.61 KB
/
lib.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*
Nyx, blazing fast astrodynamics
Copyright (C) 2018-onwards Christopher Rabotin <[email protected]>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/*! # nyx-space
[Nyx](https://en.wikipedia.org/wiki/Nyx): Blazing fast high-fidelity astrodynamics for Monte Carlo analyzes of constellations, interplanetary missions, and deep space flight navigation.
Refer to [nyxspace.com](https://nyxspace.com) for a user guide, a show case, the MathSpec, and the validation data.
*/
// Allow confusable identifiers, as the code tries to use the literature's notation where possible.
#![allow(confusable_idents)]
#[macro_use]
extern crate log;
/// Provides all the propagators / integrators available in `nyx`.
pub mod propagators;
/// Provides several dynamics used for orbital mechanics and attitude dynamics, which can be elegantly combined.
pub mod dynamics;
/// Provides the solar system planets, and state and ephemerides management.
pub mod cosmic;
/// Utility functions shared by different modules, and which may be useful to engineers.
pub mod utils;
pub mod errors;
/// Nyx will (almost) never panic and functions which may fail will return an error.
pub use self::errors::NyxError;
/// All the input/output needs for this library, including loading of SPICE kernels, and gravity potential files.
pub mod io;
/// All the orbital determination and spacecraft navigation tools and functions.
pub mod od;
/// All of the mission design and mission analysis tools and functions
pub mod md;
/// Simple tools (e.g. Lambert solver)
pub mod tools;
/// Monte Carlo module
pub mod mc;
/// Polynomial and fitting module
pub mod polyfit;
/// Re-export of hifitime
pub mod time {
pub use hifitime::prelude::*;
}
/// Re-export nalgebra
pub mod linalg {
pub use nalgebra::base::*;
}
/// Re-export some useful things
pub use self::cosmic::{Orbit, Spacecraft, State, TimeTagged};
/// The GMAT Earth gravitation parameter, used only for testing.
#[cfg(test)]
pub(crate) const GMAT_EARTH_GM: f64 = 398_600.441_5;