BMI
From CSDMS
Basic Model Interface (BMI)
Version 2.0
Development of scientific modeling software increasingly requires the coupling of multiple, independently developed models. Component-based software engineering enables the integration of plug-and-play components, but significant additional challenges must be addressed in any specific domain in order to produce a usable development and simulation environment that also encourages contributions and adoption by entire communities. In the documents linked below, we describe the challenges in creating a coupling environment for Earth-surface process modeling and the innovative approach that we have developed to address them within CSDMS.
Links
- The latest BMI documentation. Check it out! Last updated February 2020 for BMI 2.0.
- The central BMI repository on GitHub: Go here to contribute to BMI, ask a BMI-related question, or submit an issue.
- The BMI 2.0 language specifications for C, C++, Fortran, and Python. If you have a model in one of these supported languages, implement the corresponding spec to create a BMI.
- Sample implementations in C, C++, Fortran, and Python. These examples demonstrate how to implement a BMI for a simple model.
- The Peckham et al. (2013) article in Computers & Geosciences where the concept of BMI was proposed.
- The latest materials for the BMI Live instructional clinic.