BMI: Difference between revisions
From CSDMS
m (Update version and links) |
m (Add Hutton et al. (2020) article) |
||
Line 13: | Line 13: | ||
* The BMI 2.0 language specifications for [https://github.com/csdms/bmi-c C], [https://github.com/csdms/bmi-cxx C++], [https://github.com/csdms/bmi-fortran Fortran], and [https://github.com/csdms/bmi-python Python]. If you have a model in one of these supported languages, implement the corresponding spec to create a BMI. | * The BMI 2.0 language specifications for [https://github.com/csdms/bmi-c C], [https://github.com/csdms/bmi-cxx C++], [https://github.com/csdms/bmi-fortran Fortran], and [https://github.com/csdms/bmi-python Python]. If you have a model in one of these supported languages, implement the corresponding spec to create a BMI. | ||
* Sample implementations in [https://github.com/csdms/bmi-example-c C], [https://github.com/csdms/bmi-example-cxx C++], [https://github.com/csdms/bmi-example-fortran Fortran], and [https://github.com/csdms/bmi-example-python Python]. These examples demonstrate how to implement a BMI for a simple model. | * Sample implementations in [https://github.com/csdms/bmi-example-c C], [https://github.com/csdms/bmi-example-cxx C++], [https://github.com/csdms/bmi-example-fortran Fortran], and [https://github.com/csdms/bmi-example-python Python]. These examples demonstrate how to implement a BMI for a simple model. | ||
* The [http://www.sciencedirect.com/science/article/pii/S0098300412001252 Peckham et al. (2013) article] in Computers & Geosciences where the concept of BMI was proposed. | * The [http://www.sciencedirect.com/science/article/pii/S0098300412001252 Peckham et al. (2013) article] in ''Computers & Geosciences'' where the concept of BMI was proposed. | ||
* The [https://joss.theoj.org/papers/10.21105/joss.02317 Hutton et al. (2020) article] in ''Journal of Open Source Software'' describing BMI 2.0. | |||
* The latest materials for the [https://github.com/csdms/bmi-live BMI Live] instructional clinic. | * The latest materials for the [https://github.com/csdms/bmi-live BMI Live] instructional clinic. |
Revision as of 17:46, 23 July 2020
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 Hutton et al. (2020) article in Journal of Open Source Software describing BMI 2.0.
- The latest materials for the BMI Live instructional clinic.