Refined ODE Types
The refined ODE types are types that specify the ODE to a much greater degree of detail, and thus give the solver more information and make it easier to optimize. There are three different kinds of refined problems: split (IMEX) problems, partitioned problems, and constrained problems.
Mathematical Specification of a Split ODE Problem
To define a SplitODEProblem
, you simply need to give a tuple of functions $(f_1,f_2,\ldots,f_n)$ and the initial condition $u₀$ which define an ODE:
f
should be specified as f(t,u)
(or in-place as f(t,u,du)
), and u₀
should be an AbstractArray (or number) whose geometry matches the desired geometry of u
. Note that we are not limited to numbers or vectors for u₀
; one is allowed to provide u₀
as arbitrary matrices / higher dimension tensors as well.
Constructors
SplitODEProblem(f,u0,tspan,callback=nothing,mass_matrix=I)
: Defines the ODE with the specified functions.
Fields
f
: The tuple of functions in the ODE.u0
: The initial condition.tspan
: The timespan for the problem.callback
: A callback to be applied to every solver which uses the problem. Defaults to nothing.mass_matrix
: The mass-matrix. Defaults toI
, theUniformScaling
identity matrix.
Special Solver Options
Special Solution Fields
None. It returns a standard ODE solution.
Mathematical Specification of a Partitioned ODE Problem
To define a PartitionedODEProblem
, you need to give a tuple of functions $(f_1,f_2,\ldots,f_n)$ and the tuple of initial conditions $(u₀,v₀,...)$ (tuple of the same size) which define an ODE:
f
should be specified as f(t,u,v,...)
(or in-place as f(t,u,v,...,du)
), and the initial conditions should be AbstractArrays (or numbers) whose geometry matches the desired geometry of u
. Note that we are not limited to numbers or vectors for u₀
; one is allowed to provide u₀
as arbitrary matrices / higher dimension tensors as well. In some cases, the solvers may specify the functions in a split form, for example:
See the solver's documentation for the form it is expecting.
Constructors
PartitionedODEProblem(f,u0,tspan,callback=nothing,mass_matrix=I)
: Defines the ODE with the specified functions.
Fields
f
: The tuple of functions for the ODE.u0
: The tuple of initial conditions.tspan
: The timespan for the problem.callback
: A callback to be applied to every solver which uses the problem. Defaults to nothing.mass_matrix
: The mass-matrix. Defaults toI
, theUniformScaling
identity matrix.
Special Solver Options
Special Solution Fields
Mathematical Specification of an Second Order ODE Problem
To define an ODE Problem, you simply need to give the function $f$ and the initial condition $u₀$ which define an ODE:
f
should be specified as f(t,u,du)
(or in-place as f(t,u,du,ddu)
), and u₀
should be an AbstractArray (or number) whose geometry matches the desired geometry of u
. Note that we are not limited to numbers or vectors for u₀
; one is allowed to provide u₀
as arbitrary matrices / higher dimension tensors as well.
From this form, a partitioned ODE
is generated.
Problem Type
Constructors
SecondOrderODEProblem(f,u0,du0,tspan,callback=CallbackSet(),mass_matrix=I)
: Defines the ODE with the specified functions.
Fields
f
: The function in the ODE.u0
: The initial condition.du0
: The initial derivative.tspan
: The timespan for the problem.callback
: A callback to be applied to every solver which uses the problem. Defaults to nothing.mass_matrix
: The mass-matrix. Defaults toI
, theUniformScaling
identity matrix.
Special Solver Options
Special Solution Fields
Mathematical Specification of a Constrained ODE Problem
The constrained ODE:
is a type of refined ODE which specifies a DAE.
Constructors
ConstrainedODEProblem(f,u0,tspan,callback=nothing,mass_matrix=I)
: Defines the ODE with the specified functions.
Fields
f
: The tuple of functions for the ODE.g
: The constraint equation.u0
: The initial conditions.v0
: The initial values for the purely-algebraic variables.tspan
: The timespan for the problem.callback
: A callback to be applied to every solver which uses the problem. Defaults to nothing.mass_matrix
: The mass-matrix. Defaults toI
, theUniformScaling
identity matrix.
Mathematical Specification of a Split Constrained ODE Problem
The split constrained ODE:
is a type of refined ODE which specifies a DAE.
Constructors
SplitConstrainedODEProblem(f,u0,tspan,callback=nothing,mass_matrix=I)
: Defines the ODE with the specified functions.
Fields
f
: The tuple of functions for the ODE.g
: The constraint equation.u0
: The tuple of initial conditions.tspan
: The timespan for the problem.callback
: A callback to be applied to every solver which uses the problem. Defaults to nothing.mass_matrix
: The mass-matrix. Defaults toI
, theUniformScaling
identity matrix.
Mathematical Specification of a Partitioned Constrained ODE Problem
The constrained ODE:
is a type of refined ODE which specifies a DAE. As with the standard Partitioned problem, the solver may specify a special form which may result in splitting ODEs in some of the systems.
Constructors
ConstrainedODEProblem(f,u0,v0,tspan,callback=nothing,mass_matrix=I)
: Defines the ODE with the specified functions.
Fields
f
: The tuple of functions for the ODE.g
: The constraint equation.u0
: The tuple of initial conditions.v0
: The tuple of initial values for the purely-algebraic variables.tspan
: The timespan for the problem.callback
: A callback to be applied to every solver which uses the problem. Defaults to nothing.mass_matrix
: The mass-matrix. Defaults toI
, theUniformScaling
identity matrix.