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§
sourcefn call_inplace(&self, x: &Self::V, t: Self::T, y: &mut Self::V)
fn call_inplace(&self, x: &Self::V, t: Self::T, y: &mut Self::V)
Compute the operator at a given state and time.
Provided Methods§
sourcefn call(&self, x: &Self::V, t: Self::T) -> Self::V
fn call(&self, x: &Self::V, t: Self::T) -> Self::V
Compute the operator at a given state and time, and return the result.
sourcefn jac_mul(&self, x: &Self::V, t: Self::T, v: &Self::V) -> Self::V
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.
sourcefn jacobian_inplace(&self, x: &Self::V, t: Self::T, y: &mut Self::M)
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
.
sourcefn _default_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)
Default implementation of the Jacobian computation.