|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/08/26
|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.com/csdms/help-desk.
|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)
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
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.
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.