SDG 15th biweekly report
Qingyu Qu

Review of the past two weeks

In the last two weeks, my work can be summarized as two parts: Refactoring the BoundaryValueDiffEq.jl to use DifferentiationInterface and make the code more autodiff compatible.

  1. With the DifferentiationInterface.jl are growing more mature and NonlinearSolve.jl has replaced SparseDiffTools.jl to DI for supporting sparse jacobian exploitation, we should keep packages in SciML universe using same API, and by changing to DI, we can have more options on using more AD backend, so recent two weaks were refactoring the current stack from SparseDiffTools.jl to DifferentiationInterface.jl+SparseMatrixColorings.jl+SparseConnectivityTracer.jl, detailed PR can be check in Use DifferentiationInterface for the Jacobian.

  2. While implementing the above refactoring, several bugs have beeen found in the upstream packages in DifferentiationInteface.jl and SparseConnectivityTracer.jl, mainly about BoundaryValueDiffEq.jl need to cover many edge cases while DI and SDT have strict type management, but all of them are figured out during communication with Guillaume and Adrian(thank you for your patient guide and quick response!), detailed issue and PR can be checked in prepare_jacobian error for OOP function with type unspecified output, Complex number support, Relax type annotations in sparse prep

  3. Start implementing infinite final time boundary value problems solver, check out how BVPSUITE have managed to done it.

More TODOs:

  1. Complete the PR for refactoring BoundaryValueDiffEq.jl from SparseDiffTools.jl to DifferentiationInterface.jl

  2. Start working on the implementation of infinite final time BVP solver, and will start on this when the above feature is done.