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 ode;
9
10use crate::math::QuantityVector;
11use crate::units::Time;
12
13/// The variable of integration values.
14pub type Times<T = Time> = QuantityVector<T>;
15
16pub use error::IntegrationError;
17
18pub use dae::{
19    ExplicitDaeFirstOrderMinimize, ExplicitDaeFirstOrderRoot, ExplicitDaeSecondOrderMinimize,
20    ExplicitDaeZerothOrderRoot, ImplicitDaeFirstOrderMinimize, ImplicitDaeFirstOrderRoot,
21    ImplicitDaeSecondOrderMinimize, ImplicitDaeZerothOrderRoot,
22    explicit::variable_step::{
23        explicit::{
24            ExplicitDaeVariableStepExplicit, ExplicitDaeVariableStepExplicitFirstOrderMinimize,
25            ExplicitDaeVariableStepExplicitFirstOrderRoot,
26            ExplicitDaeVariableStepExplicitSecondOrderMinimize,
27            ExplicitDaeVariableStepExplicitZerothOrderRoot, ExplicitDaeVariableStepFirstSameAsLast,
28        },
29        implicit::{
30            ImplicitDaeVariableStepExplicit, ImplicitDaeVariableStepExplicitFirstOrderMinimize,
31            ImplicitDaeVariableStepExplicitFirstOrderRoot,
32            ImplicitDaeVariableStepExplicitSecondOrderMinimize,
33            ImplicitDaeVariableStepExplicitZerothOrderRoot,
34        },
35    },
36};
37pub use ode::{
38    FixedStep, OdeIntegrator, VariableStep,
39    explicit::{
40        Explicit,
41        fixed_step::{
42            FixedStepExplicit, bogacki_shampine::BogackiShampine as BogackiShampineFixedStep,
43            dormand_prince::DormandPrince as DormandPrinceFixedStep, euler::Euler, heun::Heun,
44            midpoint::Midpoint, ralston::Ralston, verner_8::Verner8 as Verner8FixedStep,
45            verner_9::Verner9 as Verner9FixedStep,
46        },
47        variable_step::{
48            FreeInterpolant,
49            VariableStepExplicit,
50            VariableStepExplicitFirstSameAsLast,
51            bogacki_shampine::BogackiShampine,
52            dormand_prince::DormandPrince,
53            // heun_euler::HeunEuler,
54            // midpoint_euler::MidpointEuler,
55            // ralston_euler::RalstonEuler,
56            verner_8::Verner8,
57            verner_9::Verner9,
58        },
59    },
60    implicit::{
61        ImplicitFirstOrder, ImplicitZerothOrder, backward_euler::BackwardEuler,
62        midpoint::Midpoint as ImplicitMidpoint, trapezoidal::Trapezoidal,
63    },
64};
65
66/// Alias for [`Euler`].
67pub type Ode1 = Euler;
68
69/// Alias for [`BackwardEuler`].
70pub type Ode1be = BackwardEuler;
71
72// /// Alias for [`HeunEuler`].
73// pub type Ode12 = HeunEuler;
74
75/// Alias for [`Heun`].
76pub type Ode2 = Heun;
77
78/// Alias for [`BogackiShampine`].
79pub type Ode23 = BogackiShampine;
80
81/// Alias for [`BogackiShampineFixedStep`].
82pub type Ode3 = BogackiShampineFixedStep;
83
84/// Alias for [`DormandPrince`].
85pub type Ode45 = DormandPrince;
86
87/// Alias for [`DormandPrinceFixedStep`].
88pub type Ode5 = DormandPrinceFixedStep;
89
90/// Alias for [`Verner8`].
91pub type Ode78 = Verner8;
92
93/// Alias for [`Verner8FixedStep`].
94pub type Ode8 = Verner8FixedStep;
95
96/// Alias for [`Verner9`].
97pub type Ode89 = Verner9;
98
99/// Alias for [`Verner9FixedStep`].
100pub type Ode9 = Verner9FixedStep;