david/LGO

With help from Janos Pinter, I tried applying LGO to the optimization of SSP Runge-Kutta methods. This required porting the MATLAB code in RK-opt/RK-coeff-opt/ to Fortran. As a first test, I ported just the minimum necessary to optimize explicit RK methods.

The resulting code is in RK-opt/lgo/LGOMAIN.F90. I ran some tests to make sure it was correct, and then we tried it out. For small values of \(s,p\) (i.e. <4), it was able to find the correct answer in reasonable time (though much slower than MATLAB’s fmincon). For larger values, e.g. \((s,p)=(9,3)\) or \((5,4)\), it failed to find the global optimum even after running for quite a long time (several minutes or more). Based on this, it seems that LGO at present won’t be useful for this class of problems. Janos Pinter plans to include an SQP local search algorithm in the future; it may be worth trying again at that point.

There is also some kind of memory-related bug that sometimes causes the program to crash.