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)
Bmi-logo-below-lowercase.png

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.