Split ODE Problems
Mathematical Specification of a Split ODE Problem
To define a
SplitODEProblem, you simply need to give a two functions functions $f_1$ and $f_2$ along with an initial condition $u₀$ which define an ODE:
f should be specified as
f(u,p,t) (or in-place as
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.
Many splits are at least partially linear. That is the equation:
For how to define a linear function
A, see the documentation for the DiffEqOperators.
isinplace parameter can be omitted and will be determined using the signature of
f2. Note that both
f2 should support the in-place style if
true or they should both support the out-of-place style if
false. You cannot mix up the two styles.
Under the hood, a
SplitODEProblem is just a regular
f is a
SplitFunction. Therefore you can solve a
SplitODEProblem using the same solvers for
ODEProblem. For solvers dedicated to split problems, see Split ODE Solvers.
For specifying Jacobians and mass matrices, see the DiffEqFunctions page.
f2: The functions in the ODE.
u0: The initial condition.
tspan: The timespan for the problem.
p: The parameters for the problem.
callback: A callback to be applied to every solver which uses the problem. Defaults to nothing.