Presenters-0019

From CSDMS
CSDMS 2018 annual meeting - Geoprocesses, geohazards


BMI Live!

Mark Piper
University of Colorado, Boulder, United States
mpiper@colorado.edu
Eric Hutton University of Colorado, Boulder United States


Abstract
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 for each function while keeping the signatures intact. CSDMS has developed the Basic Model Interface (BMI) for facilitating the conversion of an existing model written 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'll take a simple model--an implementation of the two-dimensional heat equation in Python--and together, we'll write the BMI functions to wrap it, preparing it for transformation into a component. As we develop, we’ll explore how to use the wrapped model with a Jupyter Notebook.
To get the most out of this clinic, come prepared to code! We'll have a lot to write in the time allotted for the clinic. We recommend that clinic attendees have a laptop with the Anaconda Python distribution installed. We also request that you read over:
BMI description (https://csdms.colorado.edu/wiki/BMI_Description)
BMI documentation (http://bmi-python.readthedocs.io)
before participating in the clinic.



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

Of interest for:
  • Cyberinformatics and Numerics Working Group