OrdinaryDiffEq.jl
OrdinaryDiffEq.jl copied to clipboard
Approximate Matrix Factorization Methods
https://arxiv.org/pdf/1408.3622.pdf https://aip.scitation.org/doi/abs/10.1063/1.4992341 https://www.sciencedirect.com/science/article/pii/S0096300315013454 https://www.sciencedirect.com/science/article/pii/S0168927415001464 http://www.unige.ch/~hairer/preprints/pdew-2017.pdf https://aip.scitation.org/doi/abs/10.1063/1.3241567 http://www.unige.ch/~hairer/preprints/AMF-type.pdf
We can make any method able to use approximate matrix factorization. We would just let the user define a suitable split ODE type with f_i
s, and then f = sum(f_i(...))
and then use a Jacobian approximation on each of the parts. DiffEqOperators can be used to declare a part linear. One of these papers has a second order correction which involves a (J - Japprox)*h^2 term, so we can do this higher as well. This should be awesome with implicit RK, Ros-W, or BDF methods.
Going to take a stab at this!
I'm trying to figure out how to specify the splitting here: does something like a SplitODEFunction
type sound like the right approach, which is specified rather than a usual ODEFunction
, and fed into the usual ODEProblem
?
Also, I'm a bit confused about to handle ODEFunction
's where nothing is provided for jac
etc. but instead a symbolic system is put into the sys
field (these are how the ODE functions produced by MethodOfLines
look like); does the usual jac
field etc. get populated somewhere later or are these handled totally separately?