OrbitalSystem
このコンテンツはまだ日本語訳がありません。
Defined in: system.rs:16
pub struct OrbitalSystem\<F: [Eci](../../../../arika/api/traits/eci/) = [arika::frame::SimpleEci](../../../../arika/api/type-aliases/simpleeci/)\> { pub mu: f64, pub gravity: Box<dyn GravityField>, pub models: Vec<Box<dyn Model<OrbitalState<F>, F>>>, pub epoch_0: Option<arika::epoch::Epoch>, pub body_radius: Option<f64>, // ...}Orbital dynamics system combining a gravity field model with perturbation forces.
Parameterized by the inertial frame F (default SimpleEci).
All models must produce ExternalLoads<F>(crate::model::ExternalLoads)
in the same frame.
Fields
Section titled “Fields”mu: f64
gravity
Section titled “gravity”gravity: [Box<dyn GravityField>](https://doc.rust-lang.org/std/boxed/struct.Box.html)
models
Section titled “models”models: [Vec<[Box<dyn [Model<OrbitalState<F>, F>](../../traits/model/)>](https://doc.rust-lang.org/std/boxed/struct.Box.html)>](https://doc.rust-lang.org/std/vec/struct.Vec.html)
epoch_0
Section titled “epoch_0”epoch_0: [Option<arika::epoch::Epoch>](https://doc.rust-lang.org/std/option/enum.Option.html)
Initial epoch corresponding to integration time t=0. Used to compute absolute epoch for time-dependent perturbations (e.g., third-body).
body_radius
Section titled “body_radius”body_radius: Option<f64>
Equatorial radius of the central body [km]. Used for collision detection.
Methods
Section titled “Methods”fn new(mu: f64, gravity: [Box<dyn GravityField>](https://doc.rust-lang.org/std/boxed/struct.Box.html)) -> Self
with_model()
Section titled “with_model()”fn with_model(self, model: impl [Model<OrbitalState<F>, F>](../../traits/model/) + ‘static) -> Self
with_epoch()
Section titled “with_epoch()”fn with_epoch(self, epoch: Epoch) -> Self
with_body_radius()
Section titled “with_body_radius()”fn with_body_radius(self, radius: f64) -> Self
acceleration_breakdown()
Section titled “acceleration_breakdown()”fn acceleration_breakdown(&self, t: f64, state: &OrbitalState<F>) -> Vec<(&str, f64)>
Compute per-force acceleration magnitudes [km/s²].
Returns a vec of (name, magnitude) pairs: "gravity" first,
then each model by its Model::name().
model_names()
Section titled “model_names()”fn model_names(&self) -> Vec<&str>
Names of active models (excluding gravity).