DE types

# DE types

## Discrete

``abstract type AbstractDiscreteFunction <: DiffEqBase.AbstractDiffEqFunction{iip}``
``struct DiscreteFunction{iip, F, Ta, S} <: DiffEqBase.AbstractDiscreteFunction{iip}``
``abstract type AbstractDiscreteProblem <: DiffEqBase.AbstractODEProblem{uType,tType,isinplace}``

Base for types which define discrete problems.

``struct DiscreteProblem{uType, tType, isinplace, P, F, K} <: DiffEqBase.AbstractDiscreteProblem{uType,tType,isinplace}``

Defines a discrete problem.

Fields

• `f`

The function in the map.

• `u0`

The initial condition.

• `tspan`

The timespan for the problem.

• `p`

The parameter values of the function.

• `kwargs`

A callback to be applied to every solver which uses the problem.

## ODE

``abstract type AbstractODEFunction <: DiffEqBase.AbstractDiffEqFunction{iip}``
``struct ODEFunction{iip, F, TMM, Ta, Tt, TJ, JP, TW, TWt, TPJ, S, TCV} <: DiffEqBase.AbstractODEFunction{iip}``
``abstract type AbstractODEProblem <: DiffEqBase.DEProblem``

Base for types which define ODE problems.

``struct ODEProblem{uType, tType, isinplace, P, F, K, PT} <: DiffEqBase.AbstractODEProblem{uType,tType,isinplace}``

Defines an ODE problem.

Fields

• `f`

The ODE is `du/dt = f(u,p,t)`.

• `u0`

The initial condition is `u(tspan[1]) = u0`.

• `tspan`

The solution `u(t)` will be computed for `tspan[1] ≤ t ≤ tspan[2]`.

• `p`

Constant parameters to be supplied as the second argument of `f`.

• `kwargs`

A callback to be applied to every solver which uses the problem.

• `problem_type`

``struct StandardODEProblem``
``abstract type AbstractODESolution <: DiffEqBase.AbstractTimeseriesSolution{T,N}``
``struct ODESolution{T, N, uType, uType2, DType, tType, rateType, P, A, IType, DE} <: DiffEqBase.AbstractODESolution{T,N}``
``abstract type AbstractODEAlgorithm <: DiffEqBase.DEAlgorithm``
``abstract type AbstractODEIntegrator <: DiffEqBase.DEIntegrator{Alg,IIP,U,T}``

### Dynamical ODEs

``struct DynamicalODEFunction{iip, F1, F2, TMM, Ta} <: DiffEqBase.AbstractODEFunction{iip}``
``abstract type AbstractDynamicalODEProblem``
``struct DynamicalODEProblem{iip} <: DiffEqBase.AbstractDynamicalODEProblem``

### Second-order ODEs

``abstract type AbstractSecondOrderODEProblem <: DiffEqBase.AbstractODEProblem{uType,tType,isinplace}``
``struct SecondOrderODEProblem{iip} <: DiffEqBase.AbstractDynamicalODEProblem``
``abstract type AbstractSecondOrderODEAlgorithm <: DiffEqBase.DEAlgorithm``
``abstract type AbstractSecondOrderODEIntegrator <: DiffEqBase.DEIntegrator{Alg,IIP,U,T}``

### Split ODEs

``struct SplitFunction{iip, F1, F2, TMM, C, Ta, Tt, TJ, JP, TW, TWt, TPJ, S, TCV} <: DiffEqBase.AbstractODEFunction{iip}``
``abstract type AbstractSplitODEProblem``
``struct SplitODEProblem{iip} <: DiffEqBase.AbstractSplitODEProblem``

``abstract type AbstractSteadyStateProblem <: DiffEqBase.DEProblem``

Base for types which define steady state problems for ODE systems.

``struct SteadyStateProblem{uType, isinplace, P, F, K} <: DiffEqBase.AbstractSteadyStateProblem{uType,isinplace}``

Fields

• `f`

f: The function in the ODE.

• `u0`

The initial guess for the steady state.

• `p`

Parameter values for the ODE function.

• `kwargs`

``abstract type AbstractSteadyStateSolution <: DiffEqBase.AbstractNoTimeSolution{T,N}``
``struct SteadyStateSolution{T, N, uType, R, P, A} <: DiffEqBase.AbstractSteadyStateSolution{T,N}``
``abstract type AbstractSteadyStateAlgorithm <: DiffEqBase.DEAlgorithm``
``abstract type AbstractSteadyStateIntegrator <: DiffEqBase.DEIntegrator{Alg,IIP,U,Nothing}``

### Boundary value problems

``struct TwoPointBVPFunction{bF}``
``abstract type AbstractBVProblem <: DiffEqBase.AbstractODEProblem{uType,tType,isinplace}``

Base for types which define BVP problems.

``struct StandardBVProblem``
``struct BVProblem{uType, tType, isinplace, P, F, bF, PT, K} <: DiffEqBase.AbstractBVProblem{uType,tType,isinplace}``
``struct TwoPointBVProblem{iip}``

### Analytical problems

``abstract type AbstractAnalyticalProblem <: DiffEqBase.AbstractODEProblem{uType,tType,isinplace}``
``struct AnalyticalProblem{uType, tType, isinplace, P, F, K} <: AbstractAnalyticalProblem{uType,tType,isinplace}``
``abstract type AbstractAnalyticalSolution <: DiffEqBase.AbstractTimeseriesSolution{T,N}``

## SDE

SDE problems are subtypes of RODE problems.

``abstract type AbstractSDEFunction <: DiffEqBase.AbstractDiffEqFunction{iip}``
``struct SDEFunction{iip, F, G, TMM, Ta, Tt, TJ, JP, TW, TWt, TPJ, S, GG, TCV} <: DiffEqBase.AbstractSDEFunction{iip}``
``abstract type AbstractSDEProblem <: DiffEqBase.AbstractRODEProblem{uType,tType,isinplace,ND}``

Base for types which define SDE problems.

``struct StandardSDEProblem``
``struct SDEProblem{uType, tType, isinplace, P, NP, F, G, K, ND} <: DiffEqBase.AbstractSDEProblem{uType,tType,isinplace,ND}``
``abstract type AbstractSDEAlgorithm <: DiffEqBase.DEAlgorithm``
``abstract type AbstractSDEIntegrator <: DiffEqBase.DEIntegrator{Alg,IIP,U,T}``

### Split SDEs

``struct SplitSDEFunction{iip, F1, F2, G, TMM, C, Ta, Tt, TJ, JP, TW, TWt, TPJ, S, TCV} <: DiffEqBase.AbstractSDEFunction{iip}``
``abstract type AbstractSplitSDEProblem``
``struct SplitSDEProblem{iip} <: DiffEqBase.AbstractSplitSDEProblem``

## RODE

``abstract type AbstractRODEFunction <: DiffEqBase.AbstractDiffEqFunction{iip}``
``struct RODEFunction{iip, F, TMM, Ta, Tt, TJ, JP, TW, TWt, TPJ, S, TCV} <: DiffEqBase.AbstractRODEFunction{iip}``
``abstract type AbstractRODEProblem <: DiffEqBase.DEProblem``

Base for types which define RODE problems.

``mutable struct RODEProblem{uType, tType, isinplace, P, NP, F, K, ND} <: DiffEqBase.AbstractRODEProblem{uType,tType,isinplace,ND}``
``abstract type AbstractRODESolution <: DiffEqBase.AbstractODESolution{T,N}``
``struct RODESolution{T, N, uType, uType2, DType, tType, randType, P, A, IType, DE} <: DiffEqBase.AbstractRODESolution{T,N}``
``abstract type AbstractRODEAlgorithm <: DiffEqBase.DEAlgorithm``
``abstract type AbstractRODEIntegrator <: DiffEqBase.DEIntegrator{Alg,IIP,U,T}``

## DDE

``abstract type AbstractDDEFunction <: DiffEqBase.AbstractDiffEqFunction{iip}``
``struct DDEFunction{iip, F, TMM, Ta, Tt, TJ, JP, TW, TWt, TPJ, S, TCV} <: DiffEqBase.AbstractDDEFunction{iip}``
``abstract type AbstractDDEProblem <: DiffEqBase.DEProblem``

Base for types which define DDE problems.

``struct DDEProblem{uType, tType, lType, lType2, isinplace, P, F, H, K} <: DiffEqBase.AbstractDDEProblem{uType,tType,lType,isinplace}``
``abstract type AbstractConstantLagDDEProblem <: DiffEqBase.AbstractDDEProblem{uType,tType,lType,isinplace}``
``abstract type AbstractDDESolution <: DiffEqBase.AbstractODESolution{T,N}``
``abstract type AbstractDDEAlgorithm <: DiffEqBase.DEAlgorithm``
``abstract type AbstractDDEIntegrator <: DiffEqBase.DEIntegrator{Alg,IIP,U,T}``
``abstract type AbstractHistoryFunction <: Function``

Base for types which define the history of a delay differential equation.

## SDDE

``abstract type AbstractSDDEFunction <: DiffEqBase.AbstractDiffEqFunction{iip}``
``struct SDDEFunction{iip, F, G, TMM, Ta, Tt, TJ, JP, TW, TWt, TPJ, S, GG, TCV} <: DiffEqBase.AbstractSDDEFunction{iip}``
``abstract type AbstractSDDEProblem <: DiffEqBase.DEProblem``

Base for types which define SDDE problems.

``struct SDDEProblem{uType, tType, lType, lType2, isinplace, P, NP, F, G, H, K, ND} <: DiffEqBase.AbstractSDDEProblem{uType,tType,lType,isinplace,ND}``
``abstract type AbstractConstantLagSDDEProblem <: DiffEqBase.AbstractSDDEProblem{uType,tType,lType,isinplace,ND}``
``abstract type AbstractSDDEAlgorithm <: DiffEqBase.DEAlgorithm``
``abstract type AbstractSDDEIntegrator <: DiffEqBase.DEIntegrator{Alg,IIP,U,T}``

## DAE

``abstract type AbstractDAEFunction <: DiffEqBase.AbstractDiffEqFunction{iip}``
``struct DAEFunction{iip, F, Ta, Tt, TJ, JP, TW, TWt, TPJ, S, TCV} <: DiffEqBase.AbstractDAEFunction{iip}``
``abstract type AbstractDAEProblem <: DiffEqBase.DEProblem``

Base for types which define DAE problems.

``struct DAEProblem{uType, duType, tType, isinplace, P, F, K, D} <: DiffEqBase.AbstractDAEProblem{uType,duType,tType,isinplace}``
``abstract type AbstractDAESolution <: DiffEqBase.AbstractODESolution{T,N}``
``struct DAESolution{T, N, uType, duType, uType2, DType, tType, P, A, ID, DE} <: DiffEqBase.AbstractDAESolution{T,N}``
``abstract type AbstractDAEAlgorithm <: DiffEqBase.DEAlgorithm``
``abstract type AbstractDAEIntegrator <: DiffEqBase.DEIntegrator{Alg,IIP,U,T}``

### PDE

``abstract type AbstractPDEProblem <: DiffEqBase.DEProblem``

Base for types which define PDE problems.

``struct PDEProblem{P, E, S} <: DiffEqBase.AbstractPDEProblem``

## Jump problems

``abstract type AbstractJumpProblem <: DiffEqBase.DEProblem``

Base for types which define jump problems.

## Noise problems

``abstract type AbstractNoiseProblem <: DiffEqBase.DEProblem``
``struct NoiseProblem{N<:DiffEqBase.AbstractNoiseProcess, T, K} <: DiffEqBase.AbstractNoiseProblem``

## Basic problems (for testing?)

### Linear

``abstract type AbstractLinearProblem <: DiffEqBase.DEProblem``

Base for types which define linear systems.

``struct LinearProblem{uType, isinplace, F, bType, P, K} <: DiffEqBase.AbstractLinearProblem{bType,isinplace}``
``abstract type AbstractLinearSolution <: DiffEqBase.AbstractNoTimeSolution{T,N}``
``struct LinearSolution{T, N, uType, R, P, A} <: DiffEqBase.AbstractLinearSolution{T,N}``
``abstract type AbstractLinearAlgorithm <: DiffEqBase.DEAlgorithm``

### Nonlinear

``abstract type AbstractNonlinearProblem <: DiffEqBase.DEProblem``

Base for types which define nonlinear systems.

``struct NonlinearProblem{uType, isinplace, P, F, K} <: DiffEqBase.AbstractNonlinearProblem{uType,isinplace}``
``abstract type AbstractNonlinearSolution <: DiffEqBase.AbstractNoTimeSolution{T,N}``
``abstract type AbstractNonlinearAlgorithm <: DiffEqBase.DEAlgorithm``

``abstract type AbstractQuadratureProblem <: DiffEqBase.DEProblem``
``struct QuadratureProblem{isinplace, P, F, L, U, K} <: DiffEqBase.AbstractQuadratureProblem{isinplace}``
``abstract type AbstractQuadratureSolution <: DiffEqBase.AbstractNoTimeSolution{T,N}``
``abstract type AbstractQuadratureAlgorithm <: DiffEqBase.DEAlgorithm``
``abstract type DESensitivity``
``abstract type AbstractSensitivitySolution``