nyx_space/propagators/
python.rs1use super::IntegratorOptions;
2use hifitime::{Duration, Unit};
3use pyo3::prelude::*;
4
5#[pymethods]
6impl IntegratorOptions {
7 #[pyo3(signature=(min_step_s=None, max_step_s=None,tolerance=None))]
8 #[new]
9 fn py_new(min_step_s: Option<f64>, max_step_s: Option<f64>, tolerance: Option<f64>) -> Self {
10 let mut opts = Self::default();
11 if let Some(min_step_s) = min_step_s {
12 opts.min_step = Unit::Second * min_step_s;
13 }
14 if let Some(max_step_s) = max_step_s {
15 opts.max_step = Unit::Second * max_step_s;
16 }
17 if let Some(tolerance) = tolerance {
18 opts.tolerance = tolerance;
19 }
20 opts
21 }
22
23 #[getter]
24 fn get_min_step(&self) -> Duration {
25 self.min_step
26 }
27 #[getter]
28 fn get_max_step(&self) -> Duration {
29 self.max_step
30 }
31 #[getter]
32 fn get_tolerance(&self) -> f64 {
33 self.tolerance
34 }
35}