Lab-0015: Difference between revisions
From CSDMS
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
|Labtitle=Introduction to CSDMS Tools: Basic Model Interface (BMI) | |Labtitle=Introduction to CSDMS Tools: Basic Model Interface (BMI) | ||
|LabCOModule=1 of 1 | |LabCOModule=1 of 1 | ||
|LabDateContributedOrUpdated=2020 | |LabDateContributedOrUpdated=2020-08-26 | ||
|LabDescriptionShort=The Basic Model Interface (BMI) is a set of standard control and query functions that, when added to a model code, make that model both easier to learn and easier to couple with other software elements. This lab illustrates how to run a model through its BMI. | |LabDescriptionShort=The Basic Model Interface (BMI) is a set of standard control and query functions that, when added to a model code, make that model both easier to learn and easier to couple with other software elements. This lab illustrates how to run a model through its BMI. | ||
|LabCODuration=1.0 hrs | |LabCODuration=1.0 hrs | ||
Line 50: | Line 50: | ||
}} | }} | ||
{{LabNotes | {{LabNotes | ||
|LabNotesInstructions=This lab can be run on the CSDMS JupyterHub. (If you don't already have an account, follow the instructions to sign up at: https://csdms.colorado.edu/wiki/JupyterHub.) Run the lab Notebook by clicking the "start" link under the Run online heading at the top of this page. If you're an educator using this lab in a class, you can get CSDMS JupyterHub accounts for students. For more information, please contact us through the CSDMS Help Desk: https://github. | |LabNotesInstructions=This lab can be run on the CSDMS JupyterHub. (If you don't already have an account, follow the instructions to sign up at: https://csdms.colorado.edu/wiki/JupyterHub.) Run the lab Notebook by clicking the "start" link under the Run online heading at the top of this page. If you're an educator using this lab in a class, you can get CSDMS JupyterHub accounts for students. For more information, please contact us through the CSDMS Help Desk: https://csdms.github.io/help-desk. | ||
|LabNotesRequirements=If run locally, this lab requires the source code from the bmi-example-python repository: https://github.com/csdms/bmi-example-python. | |LabNotesRequirements=If run locally, this lab requires the source code from the bmi-example-python repository: https://github.com/csdms/bmi-example-python. | ||
|LabAcknowledgements=This material is based upon work supported by the National Science Foundation under Grant No. 1831623, Community Facility Support: The Community Surface Dynamics Modeling System (CSDMS). | |LabAcknowledgements=This material is based upon work supported by the National Science Foundation under Grant No. 1831623, Community Facility Support: The Community Surface Dynamics Modeling System (CSDMS). |
Revision as of 16:32, 29 March 2022
Introduction to CSDMS Tools: Basic Model Interface (BMI)
Contributor(s)
Eric Hutton at INSTAAR - University of Colorado Boulder.
Mark Piper at INSTAAR - University of Colorado Boulder.
Greg Tucker at Geological Sciences - University of Colorado Boulder.
Irina Overeem at INSTAAR - University of Colorado Boulder.
Introduction
The Basic Model Interface (BMI) is a set of standard control and query functions that, when added to a model code, make that model both easier to learn and easier to couple with other software elements. Detailed information about BMI can be found at https://bmi.readthedocs.io.
Classroom organization
In this lab, we explore what BMI is and how to use it through a pair of Jupyter Notebooks. This lab first illustrates an example "Heat" model which simulates the diffusion of temperature on a uniform rectangular plate with Dirichlet boundary conditions. Then, the lab demonstrates how to run the "Heat" model through its BMI.
Learning objectives
Skills
Skills
- View model source code and model BMI source code
- Learn to set up and run the Heat model
- Learn to set up and run the Heat model through its BMI
Key concepts
- Diffusion of temperature
- Software interface
Lab notes
This lab can be run on the CSDMS JupyterHub. (If you don't already have an account, follow the instructions to sign up at: https://csdms.colorado.edu/wiki/JupyterHub.) Run the lab Notebook by clicking the "start" link under the Run online heading at the top of this page. If you're an educator using this lab in a class, you can get CSDMS JupyterHub accounts for students. For more information, please contact us through the CSDMS Help Desk: https://csdms.github.io/help-desk.
Requirements
If run locally, this lab requires the source code from the bmi-example-python repository: https://github.com/csdms/bmi-example-python.
Acknowledgements
This material is based upon work supported by the National Science Foundation under Grant No. 1831623, Community Facility Support: The Community Surface Dynamics Modeling System (CSDMS).
References
- 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
- 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, http://dx.doi.org/10.1016/j.cageo.2012.04.002.