[[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 https://github.com/csdms/bmi-live-2017
, including the Python source code
for the BMI and a Jupyter Notebook
that describes how to use it. ]]