Trait diffsol::op::NonLinearOp

source ·
pub trait NonLinearOp: Op {
    // Required methods
    fn call_inplace(&self, x: &Self::V, t: Self::T, y: &mut Self::V);
    fn jac_mul_inplace(
        &self,
        x: &Self::V,
        t: Self::T,
        v: &Self::V,
        y: &mut Self::V
    );

    // Provided methods
    fn call(&self, x: &Self::V, t: Self::T) -> Self::V { ... }
    fn jac_mul(&self, x: &Self::V, t: Self::T, v: &Self::V) -> Self::V { ... }
    fn jacobian_inplace(&self, x: &Self::V, t: Self::T, y: &mut Self::M) { ... }
    fn _default_jacobian_inplace(
        &self,
        x: &Self::V,
        t: Self::T,
        y: &mut Self::M
    ) { ... }
    fn jacobian(&self, x: &Self::V, t: Self::T) -> Self::M { ... }
}

Required Methods§

source

fn call_inplace(&self, x: &Self::V, t: Self::T, y: &mut Self::V)

Compute the operator at a given state and time.

source

fn jac_mul_inplace(&self, x: &Self::V, t: Self::T, v: &Self::V, y: &mut Self::V)

Compute the product of the Jacobian with a given vector.

Provided Methods§

source

fn call(&self, x: &Self::V, t: Self::T) -> Self::V

Compute the operator at a given state and time, and return the result.

source

fn jac_mul(&self, x: &Self::V, t: Self::T, v: &Self::V) -> Self::V

Compute the product of the Jacobian with a given vector, and return the result.

source

fn jacobian_inplace(&self, x: &Self::V, t: Self::T, y: &mut Self::M)

Compute the Jacobian of the operator and store it in the matrix y. y should have been previously initialised using the output of Op::sparsity.

source

fn _default_jacobian_inplace(&self, x: &Self::V, t: Self::T, y: &mut Self::M)

Default implementation of the Jacobian computation.

source

fn jacobian(&self, x: &Self::V, t: Self::T) -> Self::M

Compute the Jacobian of the operator and return it.

Implementations on Foreign Types§

source§

impl<C: NonLinearOp> NonLinearOp for &C

source§

fn call_inplace(&self, x: &Self::V, t: Self::T, y: &mut Self::V)

source§

fn jac_mul_inplace(&self, x: &Self::V, t: Self::T, v: &Self::V, y: &mut Self::V)

source§

fn jacobian_inplace(&self, x: &Self::V, t: Self::T, y: &mut Self::M)

Implementors§

source§

impl NonLinearOp for DiffSlRhs<'_>

source§

impl NonLinearOp for DiffSlRoot<'_>

source§

impl<C: NonLinearOp> NonLinearOp for FilterCallable<C>

source§

impl<Eqn: OdeEquations> NonLinearOp for BdfCallable<Eqn>
where for<'b> &'b Eqn::V: VectorRef<Eqn::V>, for<'b> &'b Eqn::M: MatrixRef<Eqn::M>,

source§

impl<Eqn: OdeEquations> NonLinearOp for SdirkCallable<Eqn>
where for<'b> &'b Eqn::V: VectorRef<Eqn::V>, for<'b> &'b Eqn::M: MatrixRef<Eqn::M>,

source§

impl<M, F> NonLinearOp for ClosureNoJac<M, F>
where M: Matrix, F: Fn(&M::V, &M::V, M::T, &mut M::V),

source§

impl<M, F, G> NonLinearOp for Closure<M, F, G>
where M: Matrix, F: Fn(&M::V, &M::V, M::T, &mut M::V), G: Fn(&M::V, &M::V, M::T, &M::V, &mut M::V),

source§

impl<M: Matrix> NonLinearOp for UnitCallable<M>