The Basic Model Interface 2.0
The Basic Model Interface 2.0: A standard interface for coupling numerical models in the geosciences - Published in JOSS (2020)
Science Score: 100.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 9 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org, zenodo.org -
✓Committers with academic emails
5 of 14 committers (35.7%) from academic institutions -
✓Institutional organization owner
Organization csdms has institutional domain (csdms.colorado.edu) -
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Scientific Fields
Repository
The Basic Model Interface is a set of functions for coupling models to models and models to data
Basic Info
- Host: GitHub
- Owner: csdms
- License: mit
- Language: TeX
- Default Branch: develop
- Homepage: https://bmi.csdms.io
- Size: 845 KB
Statistics
- Stars: 54
- Watchers: 18
- Forks: 18
- Open Issues: 46
- Releases: 1
Topics
Metadata Files
README.md
The Basic Model Interface
The Basic Model Interface (BMI) is a standardized set of functions that allows coupling of models to models and models to data.
The Basic Model Interface (BMI), developed by the Community Surface Dynamics Modeling System, is a standardized set of control and query functions that, when added to a software element such as a model or a dataset, makes that software easier to couple with other software that also exposes a BMI.
A BMI makes a model self-describing and fully controllable by a modeling framework or application. By design, the BMI functions are straightforward to implement in any language, using basic data types from standard language libraries. Also by design, the BMI functions are noninvasive. This means that a model's BMI does not make calls to other components or tools and is not modified to use any framework-specific data structures. A BMI, therefore, introduces no dependencies into a model, so the model can still be used in a stand-alone manner.
The BMI is expressed in the Scientific Interface Definition Language. From bmi.sidl, CSDMS has derived BMI specifications for five languages--C, C++, Fortran, Java, and Python. For each language, links to the specification and an example implementation are listed in the table below.
| Language | Specification | Example implementation | | -------- | ------------- | ---------------------- | | C | bmi-c | bmi-example-c | | C++ | bmi-cxx | bmi-example-cxx | | Fortran | bmi-fortran | bmi-example-fortran | | Java | bmi-java | bmi-example-java | | Python | bmi-python | bmi-example-python |
Detailed instructions for building the specifications and examples are given at each link above. Alternatively, the specifications can be installed through conda (C, C++, Fortran, Python) or Maven (Java). See the links above for details.
While CSDMS currently supports the languages listed above, a BMI specification can be written for any language. BMI is a community-driven standard; contributions that follow the contributor code of conduct are welcomed, and are acknowledged.
The table below lists community-contributed language specifications and examples for two languages, Javascript and Julia.
| Language | Specification | Example implementation | | ---------- | ------------- | ---------------------- | | Javascript | bmi-js | bmi-example-js | | Julia | bmi-julia | bmi-example-julia |
The default branch of this repository reflects the current state of development for the BMI. When implementing a BMI, please use the latest release listed in the right sidebar; currently this is Basic Model Interface 2.0. For more information on implementing a BMI, see the documentation.
BMI is open source software released under the MIT License. BMI is an element of the CSDMS Workbench, an integrated system of software tools, technologies, and standards for building and coupling models.
The Community Surface Dynamics Modeling System is supported by the National Science Foundation.
Owner
- Name: Community Surface Dynamics Modeling System
- Login: csdms
- Kind: organization
- Email: csdms@colorado.edu
- Website: http://csdms.colorado.edu
- Twitter: csdms
- Repositories: 65
- Profile: https://github.com/csdms
Cyberinfrastructure for the quantitative modeling of earth and planetary surface processes
JOSS Publication
The Basic Model Interface 2.0: A standard interface for coupling numerical models in the geosciences
Authors
Tags
C C++ Fortran Python geosciences modeling interfaceCitation (CITATION.md)
# Citation
If you use the Basic Model Interface for work/research
presented in a publication, we ask that you please cite:
::::{tab-set}
:::{tab-item} APA
Peckham, S.D., Hutton, E.W., and Norris, B., 2013. **A component-based
approach to integrated modeling in the geosciences: The design of CSDMS**.
*Computers & Geosciences*, 53, pp.3-12,
https://doi.org/10.1016/j.cageo.2012.04.002.
Hutton, E.W.H., Piper, M.D., and Tucker, G.E., 2020. **The Basic Model
Interface 2.0: A standard interface for coupling numerical models in the
geosciences**. *Journal of Open Source Software*, 5(51), 2317,
https://doi.org/10.21105/joss.02317.
:::
:::{tab-item} BibTeX
```bibtex
@article{peckham2013component,
title={
A component-based approach to integrated modeling in the
geosciences: The design of CSDMS
},
author={Peckham, Scott D and Hutton, Eric WH and Norris, Boyana},
journal={Computers \& Geosciences},
volume={53},
pages={3--12},
year={2013},
publisher={Elsevier}
}
@article{hutton2020basic,
doi={10.21105/joss.02317},
url={https://doi.org/10.21105/joss.02317},
year={2020},
publisher={The Open Journal},
volume={5},
number={51},
pages={2317},
author={Eric W.H. Hutton and Mark D. Piper and Gregory E. Tucker},
title={
The Basic Model Interface 2.0: A standard interface for coupling
numerical models in the geosciences
},
journal={Journal of Open Source Software}
}
```
:::
::::
GitHub Events
Total
- Issues event: 2
- Watch event: 5
- Delete event: 29
- Issue comment event: 18
- Push event: 63
- Pull request review comment event: 11
- Pull request review event: 28
- Pull request event: 61
- Fork event: 1
- Create event: 36
Last Year
- Issues event: 2
- Watch event: 5
- Delete event: 29
- Issue comment event: 18
- Push event: 63
- Pull request review comment event: 11
- Pull request review event: 28
- Pull request event: 61
- Fork event: 1
- Create event: 36
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| mcflugen | m****n@g****m | 178 |
| Mark Piper | m****r@c****u | 117 |
| huttone | h****e@4****4 | 32 |
| pre-commit-ci[bot] | 6****] | 2 |
| Mike Taves | m****s@g****m | 2 |
| Julian Hofer | J****r@d****l | 2 |
| Rolf Hut | r****t@t****l | 1 |
| Richard Barnes | r****s@u****u | 1 |
| Greg Tucker | g****r@c****u | 1 |
| root | r****t@4****4 | 1 |
| kallumad | k****d@4****4 | 1 |
| Phil Miller | p****r@n****v | 1 |
| Julian Hofer | j****r@d****l | 1 |
| (no author) | (****)@4****4 | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 52
- Total pull requests: 121
- Average time to close issues: 6 months
- Average time to close pull requests: 8 days
- Total issue authors: 12
- Total pull request authors: 10
- Average comments per issue: 2.6
- Average comments per pull request: 0.62
- Merged pull requests: 98
- Bot issues: 0
- Bot pull requests: 1
Past Year
- Issues: 3
- Pull requests: 60
- Average time to close issues: 26 minutes
- Average time to close pull requests: about 13 hours
- Issue authors: 2
- Pull request authors: 4
- Average comments per issue: 0.67
- Average comments per pull request: 0.32
- Merged pull requests: 44
- Bot issues: 0
- Bot pull requests: 1
Top Authors
Issue Authors
- mdpiper (22)
- hrajagers (6)
- MartineDeVos (4)
- mcflugen (4)
- kbarnhart (3)
- teuben (3)
- hellkite500 (3)
- BSchilperoort (2)
- gregtucker (2)
- aaraney (1)
- goord (1)
- PhilMiller (1)
Pull Request Authors
- mcflugen (65)
- mdpiper (38)
- PhilMiller (6)
- RolfHut (2)
- gregtucker (2)
- pre-commit-ci[bot] (2)
- mwtoews (2)
- scrasmussen (2)
- ghost (2)
- mgalloy (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- readthedocs-sphinx-search *
- sphinx >=4
- sphinx_rtd_theme *
