CSDMS 2017 annual meeting: Modeling Coupled Earth and Human Systems - The Dynamic Duo

BMI: Live!

Mark Piper

University of Colorado, Boulder, United States
Eric Hutton University of Colorado, Boulder United States

[[CSDMS meeting abstract presentation::In software engineering, an interface is a set of functions with prescribed names, argument types, and return types. When a developer implements an interface for a piece of software, they fill out the details of the function, while keeping the signatures intact. CSDMS has created the Basic Model Interface (BMI) for simplifying the conversion of an existing model in C, C++, Fortran, Python, or Java into a reusable, plug-and-play component. By design, BMI functions are straightforward to implement. However, when trying to match BMI functions to model behaviors, the devil is often in the details.
In this hands-on clinic, we will take a simple model -- in this case, an implementation of the two-dimensional heat equation in Python -- and together, we will wrap it with a BMI. As we develop, we’ll use a Jupyter Notebook to test and explore how to use the BMI. To get the most out of this clinic, come prepared to code! We have a lot to write in the time allotted for the clinic. Attendees must bring a laptop, and we recommend installing the Anaconda Python distribution. We also request that you read over:before participating in the clinic.
All materials used in the clinic are available at, including the Python source code for the BMI and a Jupyter Notebook that describes how to use it. ]]

Please acknowledge the original contributors when you are using this material. If there are any copyright issues, please let us know ( and we will respond as soon as possible.

Of interest for:
  • Cyberinformatics and Numerics Working Group