Trait OdeEquationsRef

Source
pub trait OdeEquationsRef<'a, ImplicitBounds: Sealed = Bounds<&'a Self>>: Op {
    type Mass: LinearOp<M = Self::M, V = Self::V, T = Self::T, C = Self::C>;
    type Rhs: NonLinearOp<M = Self::M, V = Self::V, T = Self::T, C = Self::C>;
    type Root: NonLinearOp<M = Self::M, V = Self::V, T = Self::T, C = Self::C>;
    type Init: ConstantOp<M = Self::M, V = Self::V, T = Self::T, C = Self::C>;
    type Out: NonLinearOp<M = Self::M, V = Self::V, T = Self::T, C = Self::C>;
}
Expand description

this is the reference trait that defines the ODE equations of the form, this is used to define the ODE equations for a given lifetime. See OdeEquations for the main trait that defines the ODE equations.

$$ M \frac{dy}{dt} = F(t, y) y(t_0) = y_0(t_0) $$

The ODE equations are defined by:

Optionally, the ODE equations can also include:

Required Associated Types§

Source

type Mass: LinearOp<M = Self::M, V = Self::V, T = Self::T, C = Self::C>

Source

type Rhs: NonLinearOp<M = Self::M, V = Self::V, T = Self::T, C = Self::C>

Source

type Root: NonLinearOp<M = Self::M, V = Self::V, T = Self::T, C = Self::C>

Source

type Init: ConstantOp<M = Self::M, V = Self::V, T = Self::T, C = Self::C>

Source

type Out: NonLinearOp<M = Self::M, V = Self::V, T = Self::T, C = Self::C>

Implementations on Foreign Types§

Source§

impl<'a, T: OdeEquationsRef<'a>> OdeEquationsRef<'a> for &T

Source§

type Mass = <T as OdeEquationsRef<'a>>::Mass

Source§

type Rhs = <T as OdeEquationsRef<'a>>::Rhs

Source§

type Root = <T as OdeEquationsRef<'a>>::Root

Source§

type Init = <T as OdeEquationsRef<'a>>::Init

Source§

type Out = <T as OdeEquationsRef<'a>>::Out

Implementors§

Source§

impl<'a, 'b, Eqn> OdeEquationsRef<'a> for SensEquations<'b, Eqn>

Source§

type Rhs = &'a SensRhs<'b, Eqn>

Source§

type Mass = <Eqn as OdeEquationsRef<'a>>::Mass

Source§

type Root = <Eqn as OdeEquationsRef<'a>>::Root

Source§

type Init = &'a SensInit<'b, Eqn>

Source§

type Out = <Eqn as OdeEquationsRef<'a>>::Out

Source§

impl<'a, 'b, Eqn, Method> OdeEquationsRef<'a> for AdjointEquations<'b, Eqn, Method>
where Eqn: OdeEquationsAdjoint, Method: OdeSolverMethod<'b, Eqn>,

Source§

type Rhs = &'a AdjointRhs<'b, Eqn, Method>

Source§

type Mass = &'a AdjointMass<'b, Eqn>

Source§

type Root = <Eqn as OdeEquationsRef<'a>>::Root

Source§

type Init = &'a AdjointInit<'b, Eqn>

Source§

type Out = &'a AdjointOut<'b, Eqn, Method>

Source§

impl<'a, Eqn: OdeEquations> OdeEquationsRef<'a> for NoAug<Eqn>

Source§

type Mass = <Eqn as OdeEquationsRef<'a>>::Mass

Source§

type Rhs = <Eqn as OdeEquationsRef<'a>>::Rhs

Source§

type Root = <Eqn as OdeEquationsRef<'a>>::Root

Source§

type Init = <Eqn as OdeEquationsRef<'a>>::Init

Source§

type Out = <Eqn as OdeEquationsRef<'a>>::Out

Source§

impl<'a, M, Rhs, Init, Mass, Root, Out> OdeEquationsRef<'a> for OdeSolverEquations<M, Rhs, Init, Mass, Root, Out>
where M: Matrix, Rhs: Op<M = M, V = M::V, T = M::T, C = M::C>, Init: Op<M = M, V = M::V, T = M::T, C = M::C>, Mass: Op<M = M, V = M::V, T = M::T, C = M::C>, Root: Op<M = M, V = M::V, T = M::T, C = M::C>, Out: Op<M = M, V = M::V, T = M::T, C = M::C>, ParameterisedOp<'a, Rhs>: NonLinearOp<M = M, V = M::V, T = M::T, C = M::C>, ParameterisedOp<'a, Init>: ConstantOp<M = M, V = M::V, T = M::T, C = M::C>, ParameterisedOp<'a, Mass>: LinearOp<M = M, V = M::V, T = M::T, C = M::C>, ParameterisedOp<'a, Root>: NonLinearOp<M = M, V = M::V, T = M::T, C = M::C>, ParameterisedOp<'a, Out>: NonLinearOp<M = M, V = M::V, T = M::T, C = M::C>,

Source§

impl<'a, M: MatrixHost<T = T>, CG: CodegenModule> OdeEquationsRef<'a> for DiffSl<M, CG>

Source§

type Mass = DiffSlMass<'a, M, CG>

Source§

type Rhs = DiffSlRhs<'a, M, CG>

Source§

type Root = DiffSlRoot<'a, M, CG>

Source§

type Init = DiffSlInit<'a, M, CG>

Source§

type Out = DiffSlOut<'a, M, CG>