Skip to main content

conspire/math/integrate/
mod.rs

1#[cfg(feature = "doc")]
2pub mod doc;
3#[cfg(test)]
4mod test;
5
6mod dae;
7mod error;
8mod field;
9mod ode;
10mod tableau;
11
12use crate::math::QuantityVector;
13use crate::units::Time;
14
15/// The variable of integration values.
16pub type Times<T = Time> = QuantityVector<T>;
17
18pub use error::IntegrationError;
19pub use field::{
20    EvolvedIncrement, EvolvedState, Flat, HermiteSegment, Integrable, List, Product,
21    StateEvolution, Unimodular, integrate_euler, integrate_rkmk, integrate_rkmk_adaptive,
22    integrate_rkmk_dae_adaptive, integrate_rkmk_dae_adaptive_minimize,
23    integrate_rkmk_dae_adaptive_root, integrate_rkmk_state, integrate_rkmk_state_adaptive,
24    interpolate_hermite, rkmk_dae_step, rkmk_dae_step_minimize, rkmk_dae_step_root, rkmk_step,
25};
26pub use tableau::{ButcherTableau, EmbeddedTableau, StabilityRegion};
27
28pub use ode::explicit::variable_step::{
29    bogacki_shampine::Tableau as BogackiShampineTableau,
30    dormand_prince::Tableau as DormandPrinceTableau, verner_8::Tableau as Verner8Tableau,
31    verner_9::Tableau as Verner9Tableau,
32};
33
34pub use dae::{
35    ExplicitDaeMinimize, ExplicitDaeRoot, ImplicitDaeMinimize, ImplicitDaeRoot,
36    explicit::variable_step::{
37        explicit::{
38            ExplicitDaeVariableStepExplicit, ExplicitDaeVariableStepExplicitMinimize,
39            ExplicitDaeVariableStepExplicitRoot, ExplicitDaeVariableStepFirstSameAsLast,
40        },
41        implicit::{
42            ImplicitDaeVariableStepExplicit, ImplicitDaeVariableStepExplicitMinimize,
43            ImplicitDaeVariableStepExplicitRoot,
44        },
45    },
46};
47pub use ode::{
48    FixedStep, OdeIntegrator, VariableStep,
49    dynamics::{
50        explicit::{
51            ExplicitDynamics, ExplicitDynamicsCoupled, stacked::Stacked,
52            velocity_verlet::VelocityVerlet,
53        },
54        implicit::{ImplicitDynamics, newmark::Newmark},
55    },
56    explicit::{
57        Explicit, Spectrum,
58        fixed_step::{
59            FixedStepExplicit, bogacki_shampine::BogackiShampine as BogackiShampineFixedStep,
60            dormand_prince::DormandPrince as DormandPrinceFixedStep, euler::Euler, heun::Heun,
61            midpoint::Midpoint, ralston::Ralston, verner_8::Verner8 as Verner8FixedStep,
62            verner_9::Verner9 as Verner9FixedStep,
63        },
64        variable_step::{
65            FreeInterpolant,
66            VariableStepExplicit,
67            VariableStepExplicitFirstSameAsLast,
68            bogacki_shampine::BogackiShampine,
69            dormand_prince::DormandPrince,
70            // heun_euler::HeunEuler,
71            // midpoint_euler::MidpointEuler,
72            // ralston_euler::RalstonEuler,
73            verner_8::Verner8,
74            verner_9::Verner9,
75        },
76    },
77    implicit::{
78        Implicit, backward_euler::BackwardEuler, midpoint::Midpoint as ImplicitMidpoint,
79        trapezoidal::Trapezoidal,
80    },
81};
82
83/// Alias for [`Euler`].
84pub type Ode1 = Euler;
85
86/// Alias for [`BackwardEuler`].
87pub type Ode1be = BackwardEuler;
88
89// /// Alias for [`HeunEuler`].
90// pub type Ode12 = HeunEuler;
91
92/// Alias for [`Heun`].
93pub type Ode2 = Heun;
94
95/// Alias for [`BogackiShampine`].
96pub type Ode23 = BogackiShampine;
97
98/// Alias for [`BogackiShampineFixedStep`].
99pub type Ode3 = BogackiShampineFixedStep;
100
101/// Alias for [`DormandPrince`].
102pub type Ode45 = DormandPrince;
103
104/// Alias for [`DormandPrinceFixedStep`].
105pub type Ode5 = DormandPrinceFixedStep;
106
107/// Alias for [`Verner8`].
108pub type Ode78 = Verner8;
109
110/// Alias for [`Verner8FixedStep`].
111pub type Ode8 = Verner8FixedStep;
112
113/// Alias for [`Verner9`].
114pub type Ode89 = Verner9;
115
116/// Alias for [`Verner9FixedStep`].
117pub type Ode9 = Verner9FixedStep;