Operators

Operators

Types

abstract type AbstractDiffEqOperator
abstract type AbstractDiffEqLinearOperator <: DiffEqBase.AbstractDiffEqOperator{T}
FactorizedDiffEqArrayOperator(F)

Like DiffEqArrayOperator, but stores a Factorization instead.

Supports left division and ldiv! when applied to an array.

DiffEqArrayOperator(A[; update_func])

Represents a time-dependent linear operator given by an AbstractMatrix. The update function is called by update_coefficients! and is assumed to have the following signature:

update_func(A::AbstractMatrix,u,p,t) -> [modifies A]

You can also use setval!(α,A) to bypass the update_coefficients! interface and directly mutate the array's value.

AffineDiffEqOperator{T} <: AbstractDiffEqOperator{T}

Ex: (A₁(t) + ... + Aₙ(t))*u + B₁(t) + ... + Bₙ(t)

AffineDiffEqOperator{T}(As,Bs,du_cache=nothing)

Takes in two tuples for split Affine DiffEqs

  1. update_coefficients! works by updating the coefficients of the component operators.
  2. Function calls L(u, p, t) and L(du, u, p, t) are fallbacks interpretted in this form. This will allow them to work directly in the nonlinear ODE solvers without modification.
  3. f(du, u, p, t) is only allowed if a du_cache is given
  4. B(t) can be Union{Number,AbstractArray}, in which case they are constants. Otherwise they are interpreted they are functions v=B(t) and B(v,t)

Solvers will see this operator from integrator.f and can interpret it by checking the internals of As and Bs. For example, it can check isconstant(As[1]) etc.

DiffEqScalar(val[; update_func])

Represents a time-dependent scalar/scaling operator. The update function is called by update_coefficients! and is assumed to have the following signature:

update_func(oldval,u,p,t) -> newval

You can also use setval!(α,val) to bypass the update_coefficients! interface and directly mutate the scalar's value.

struct DiffEqIdentity{T, N} <: DiffEqBase.AbstractDiffEqLinearOperator{T}

Functions

Missing docstring.

Missing docstring for update_coefficients!. Check Documenter's build log for details.

Missing docstring.

Missing docstring for DiffEqBase.setval!. Check Documenter's build log for details.

Missing docstring.

Missing docstring for isconstant. Check Documenter's build log for details.

Missing docstring.

Missing docstring for DiffEqBase.islinear. Check Documenter's build log for details.

Missing docstring.

Missing docstring for DiffEqBase.has_expmv. Check Documenter's build log for details.

Missing docstring.

Missing docstring for DiffEqBase.has_exp. Check Documenter's build log for details.

Missing docstring.

Missing docstring for DiffEqBase.has_mul. Check Documenter's build log for details.

Missing docstring.

Missing docstring for DiffEqBase.has_ldiv. Check Documenter's build log for details.