FmiGo ported to Debian 12 and Ubuntu 23.10

Yesterday I finally got around to adding support for Debian 12 (Bookworm) and Ubuntu 23.10 (Mantic Minotaur) to FmiGo. A bug that caused one test to hang put me off doing this for a while. After a bunch of printf() debugging the bug turned out to be some kind of race condition in mpich when calling MPI_Finalize(). I couldn't figure out how to fix the issue, despite following the documentation's recommendation to make the call the last thing the program does. Therefore I switched the Dockerfile for bookworm to use OpenMPI instead. Fortunately FmiGo is already engineered to make such a switch easy.

It has also occurred to me that the SPOOK solver used in FmiGo is a form of feedforward control. This contrasts with feedback control in that feedforward controllers must model the system under regulation whereas feedback controllers do not. This also means feedforward is ex-ante whereas feedback is ex-post. Some readers may already suspect where I'm going with this: planning. However that is the topic of a future post I am working on, and I intend to keep this post short. Stay tuned!