Optizelle V1.1.2 Released

First General Public Release Of The Optizelle Code

Posted by Joseph Young on Fri, Jun 20, 2014
In Software under Optizelle, History

Today, I’m excited to announce the release of Optizelle v1.1.2, which is the first general public release of the Optizelle code. It’s my sincere hope that there will be many more releases to follow.

Coincidentally enough, this week also marks the one year anniversary of my switch to work on OptimoJoe full time. As some back story, about a year ago, I left my position at Sandia National Laboratories to work exclusively on OptimoJoe. Overall, Sandia was a great place to work; I had fantastic coworkers and interesting technical problems to work on. In fact, I liked it enough to spend over a decade working for them off an on going to back to 1999. Nonetheless, I wanted to push my technical work and research in a different direction and I felt I’d be better equipped to do so while working for myself.

Thankfully, Sandia is a big proponent of open source software, so I given approval for the public release of an optimization code I wrote called PEOpt. The first release occurred in February 2012 and the last release occurred in May 2013. For the extra curious, you can find one of the OSTI publications here. In any case, PEOpt was a code that I wrote to specially handle very, very large PDE constrained optimization problems. To that end, I’d like to think it performed well.

Now, what’s the difference between Optizelle and PEOpt? As it turns out, quite a bit. At its core, both codes remain similar in the sense that I use relatively general vector space operations to write the optimization code. This makes it much easier to hook into a new application because the application, not the optimization code, defines how to compute the linear algebra. What changed were the nitty gritty details on how all of this was put together. Basically, I started getting customers and quickly realized that the code needed to be more reliable, consistent, and easy to use. That and I really needed to fix some long outstanding algorithmic bugs.

Over the coming weeks, I’ll try to elaborate on many of these technical issues. As a teaser, this will include

  • Why it’s more difficult to build scientific software on Windows

  • How we synchronize our manual to our code and why we couldn’t use doxygen

  • Our experience in migrating an SVN repository to Git with a minimal loss of history

  • How we maintain a (mostly) consistent interface across C++, Python, and MATLAB/Octave

In any case, I’m excited about the release and everything to come. If anyone has any questions, feel free to check out our user forum or contact us.