History
Cats2D grew out of a code started in 1991 by Ralph Goodwin as a post-doc working for Bill Schowalter at University of Illinois. Andrew Yeckel contributed early advice to this effort based on his experience solving free boundary problems in fluid dynamics using CFAL, a code developed by Juan de Santos as a graduate student working for Skip Scriven at the University of Minnesota. In 1992 Yeckel joined Goodwin working on the code, and over the next three years they developed many of the core elements that constitute Cats2D today.
In 1996 Goodwin set sail for industry, and for the next 18 years Yeckel developed the code on his own, with frequent testing and validation conducted by Jeff Derby's research group at the University of Minnesota. Necessarily much of the development of Cats2D was driven by these research interactions, which has made the code particularly well suited to simulating transport phenomena in bulk crystal growth. Indeed, the name Cats2D was adopted in 2003 as an acronym for "Crystallization and transport simulator" (and for other reasons too). Nevertheless, Cats2D is very general and can be applied to a wide diversity of problems in coupled fluid dynamics and transport phenomena.
In 2014 Yeckel left the Derby research group and undertook a massive rewriting of the code to modernize it for 64-bit computing, to reorganize the user interface, to fix or remove features that were broken or obsolete, and to add many new features typically found in commercial CFD codes. Around this same time Goodwin rejoined the effort, completely rewriting the frontal solver several different ways before settling on a nested dissection-based algorithm of astounding speed and ludicrously small memory requirements. The outcome of this effort is the new Cats2D.