Review of the past two weeks
In the last two weeks, my work can be summarized as two parts: Enabling automatic differentiation for implemented SPIRK methods and refactor the new Lobatto and Radau methods in BoundaryValueDiffEq.jl.
Finally the automatic differentiation part of the implemented COLDAE solver is done, now we can use ForwardDiff.jl to obtain more precise and accurate numerical results of the boundary value differential-algebraic equations. Also, the implemented COLDAE solvers still didn’t have a proper name, so we can just call it SPIRK(Selective Projected Implicit Runge-Kutta) methods. Similar to what we have done for MIRK and FIRK methods, sparse jacobian for SPIRK methods is also done to support symbolic sparsity detection. Now the only work left is to optimize the code and refactor it to the SciML style like standard MIRK and FIRK methods.
The Lobatto and Radau methods in BoundaryValueDiffEq.jl are refactored to a more concise and efficient style. For details of the progress, please check the PR Refactor FIRK methods and the splitting into subpackages to improve precompile workload is already done, just need to bump the version and file the PR.
More TODOs:
Refactor the implemented solvers to be compatible with the SciML style, and simplify the internal of Lobatto DAE solvers.
Complete the splitting of BoundaryValueDiffEq.jl into subpackages.