GSoC 2017: Development of Native Julia Solvers for Second Order ODEs and BVPs
This article details a Google Summer of Code 2017 project focused on implementing native Julia solvers for boundary value problems (BVPs) derived from second-order ordinary differential equations (ODEs). The developer constructed a shooting method to solve BVPs using initial value problems and initiated work on the mono-implicit Runge-Kutta (MIRK) method, with code available in the BoundaryValueDiffEq.jl repository. Although the original goals were not fully completed, significant progress was made in exploring symplecticity, adaptivity, and dense output. The text explains how symplectic integrators conserve first integrals like energy and angular momentum in dynamic systems, demonstrated through the Kepler problem using the Ruth3 integrator. Furthermore, it discusses the implementation of adaptive Runge-Kutta-Nyström solvers and the importance of dense output for accurate error estimation, specifically for calculating Poincaré sections and handling continuous callbacks in simulations like the Duffing oscillator. This technical report highlights advancements in scientific computing within the Julia programming language ecosystem.
Wire timeline
GSoC 2017: Development of Native Julia Solvers for Second Order ODEs and BVPs
This article details a Google Summer of Code 2017 project focused on implementing native Julia solvers for boundary value problems (BVPs) derived from second-order ordinary differential equations (ODEs). The developer constructed a shooting method to solve BVPs using initial value problems and initiated work on the mono-implicit Runge-Kutta (MIRK) method, with code available in the BoundaryValueDiffEq.jl repository. Although the original goals were not fully completed, significant progress was made in exploring symplecticity, adaptivity, and dense output. The text explains how symplectic integrators conserve first integrals like energy and angular momentum in dynamic systems, demonstrated through the Kepler problem using the Ruth3 integrator. Furthermore, it discusses the implementation of adaptive Runge-Kutta-Nyström solvers and the importance of dense output for accurate error estimation, specifically for calculating Poincaré sections and handling continuous callbacks in simulations like the Duffing oscillator. This technical report highlights advancements in scientific computing within the Julia programming language ecosystem.
JuliaLang - The Julia programming language