Limited Memory BFGS Update for Collective Coordinate Optimization

In the my first year of graduate school I took a class “Numerical Algorithms for Scientific Computing” geared toward implementing popular algorithms for high-performance scientific computing (hence the name). For the final project I implemented the limited-memory Broyden-Fletcher-Goldfarb-Shanno (LBFGS) algorithm for unconstrained optimization applied to generating stealthy hyperuniform ground states (see the linked repo or any references below). The algorithm itself is rather straightforward to implement if you can understand the plethora of articles published on quasi-Newton optimization techniques so this project was more of an exercise in C++ for me than anything. Regardless, this algorithm has served a number of research projects well and led to some interesting discoveries regarding hyperuniform states of matter.

References

Nocedal, Jorge, Updating quasi-Newton matrices with limited storage, Mathematics of Computation, 35, 151 (1980).

O. U. Uche, F. H. Stillinger, and S. Torquato, Constraints on Collective Density Variables: Two Dimensions, Physical Review E, 70, 046122 (2004).

O. U. Uche, S. Torquato and F. H. Stillinger, Collective Coordinates Control of Density Distributions, Physical Review E, 74, 031104 (2006).