This post is the second of a two-part discussion resulting from a comment calling for (rather lightheartedly) open-source space environment computer modeling. Open source numerical modeling would be a first (and big) step in solving a classic problem in theoretical studies using computer codes: such codes are often held tightly to the chests of those who wrote them, leaving others wondering what is really happening under-the-hood. At the now-finished GEM conference, attendees could see this effect first hand: several different models were used to simulate the exact same conditions using the exact same theory (ideally), but the results were fantastically different. Without a true understanding of what is going on under the hood, such differences are irreconcilable.
In the previous post, I presented one potential solution: taking advantage of the CCMC to evaluate several models in the community. Today, I would like to highlight the work of the University of Michigan's CSEM group, who has worked to be as open as possible with their models. The efforts of this group, in my humble opinion, provide the most transparent set of numerical modeling tools.
CSEM's flagship code is the Space Weather Modeling Framework, a program that executes, synchronizes and couples several separate space environment codes together. While not truly open source, the SWMF (or, simply, the framework) has features that bring it close to the mark.
- First, the source code is available for download after completing a license agreement. This download includes not only the SWMF, but most of the codes integrated into the framework already.
- The framework and included codes are fully documented. This provides the space science community with a full description of under-the-hood aspects of the code while simultaneously helping new, non-CSEM related modelers use the framework.
- The code is tested nightly on a variety of systems and compilers. This is not just for the benefit of the core CSEM users- it is an effort to proliferate the framework among interested parties. If it didn't work on your system with your favorite compilers, why would you use it?