BMI: Difference between revisions
From CSDMS
mNo edit summary |
m (Update version and links) |
||
Line 3: | Line 3: | ||
<div class=AutoScaleImage>[[ File:Bmi-logo-below-lowercase.png | 325 px | right ]]<div> | <div class=AutoScaleImage>[[ File:Bmi-logo-below-lowercase.png | 325 px | right ]]<div> | ||
'''Version | '''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. | 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. | ||
Line 9: | Line 9: | ||
== Links == | == Links == | ||
* | * The latest [http://bmi.readthedocs.io/ BMI documentation]. Check it out! Last updated February 2020 for BMI 2.0. | ||
* BMI on [https://github.com/csdms/bmi GitHub]: Go here to contribute to BMI, ask a BMI-related question, or submit an issue. | * The central BMI repository on [https://github.com/csdms/bmi GitHub]: Go here to contribute to BMI, ask a BMI-related question, or submit an issue. | ||
* The | * 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. | ||
* The latest materials for the [https://github.com/csdms/bmi-live | * 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 latest materials for the [https://github.com/csdms/bmi-live BMI Live] instructional clinic. |
Revision as of 10:37, 9 March 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 latest materials for the BMI Live instructional clinic.