Community Bonding Period

The Julia Community is simply amazing. Along the way I had my share of genuine but sometimes stupid and irritating doubts, everybody was really helpful. Slack is very active and very well organised. I’m really grateful to be a part of this community.

I spent the first last week of May going through literature on S-ROCK methods which I proposed to implement during my GSoC. After the first week I tried fixing bugs and getting the benchmarks for ROCK methods ready. I worked towards optimising memory usage in ROCK-methods, RKC, IRKC, and SERK-methods. Also we put in place certain step size limits to prevent the solver from going unstable. Also During this period I implemented SERK2 and ESERK4 which are similar SERK methods that I proposed but have ordrs 2 and 4 replectively.

With this IRKC and SERK-methods are almost complete and only their benchmarking remains.

List of Contributions

Description Pull Requests Current Status
Implemented ESERK5 #692 Merged
IRKC Memory Optimisation #723 Merged
ROCK2 Memory Optimisation #729 Merged
Implemented SERK2 #732 Merged
Fix IRKC Adaptive Version #733 Merged
Fix IRKC Extra Allocation #734 Merged
Implemented ESERK4 #737 Open
Fix ROCK Methods Constants #740 Merged
Cleanup ROCK Methods and ROCK4 Memory Optimisation #741 Merged
Stepsize Limits for ROCK Methods #745 Merged
Stepsize Limtis for SERK Methods and RKC #752 Merged
Fix RKC_utils.jl #759 Merged
RKC_utils GPU Compatibility #765 Open

Performance for the above Stabilized Methods

  1. Non-Stiff Problems

  2. Stiff Problems

Future Work

Going forward after discussing with my mentor I’ve decided to postpone benchmarking of SERK-methods to prioritize implementation of SROCK-methods. I plan to implement some basic stochastic solvers in StochasticDiffEq.jl, and then start with SROCK methods as detailed in my proposal.

All the problems for benchmarking purposes are taken from DiffEqBenchmarks.jl

Written on June 23, 2019