Lab-0015: Difference between revisions

From CSDMS
No edit summary
No edit summary
Line 3: Line 3:
|LabCOModule=1 of 1
|LabCOModule=1 of 1
|LabDateContributedOrUpdated=2020/06/04
|LabDateContributedOrUpdated=2020/06/04
|LabDescriptionShort=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
|LabModelDocumentation=None
|LabAssociatedLesson=Jupyter Notebook
|LabAssociatedLesson=Jupyter Notebook
|LabURLDownloadNotebook=https://github.com/csdms/csdms-2020/tree/master/notebooks/bmi
|LabURLStartNotebook=https://csdms.rc.colorado.edu/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fcsdms%2Fcsdms-2020&urlpath=tree%2Fcsdms-2020%2Fnotebooks%2Fbmi%2Findex.ipynb&branch=master
|LabURLStartNotebook=https://csdms.rc.colorado.edu/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fcsdms%2Fcsdms-2020&urlpath=tree%2Fcsdms-2020%2Fnotebooks%2Fbmi%2Findex.ipynb&branch=master
}}
}}
Line 26: Line 26:
}}
}}
{{LabIntro
{{LabIntro
|LabDescription=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 accessed at https://bmi.readthedocs.io/en/latest.
|LabDescription=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.
|LabPicture=Bmi-logo.png
|LabPicture=Bmi-logo.png
}}
}}
{{LabClassroomOrganization
{{LabClassroomOrganization
|LabCOIntro=In this lab, we will explore through a pair of Jupyter Notebooks to learn what BMI is and how to use it. This lab will first illustrate an example "Heat" model which simulates the diffusion of temperature on a uniform rectangular plate with Dirichlet boundary conditions. Then, the lab will demonstrate how to run "Heat" model through its BMI.
|LabCOIntro=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 "Heat" model through its BMI.


You can create an account at CSDMS JupyterHub and test the Jupyter Notebook for this lab. Please follow the instruction in the "Lab Notes" section. If you are a faculty at an academic institution, it is possible to work with us to get temporary teaching accounts. Work directly with us by emailing: csdms@colorado.edu.
 
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.
}}
}}
{{LabLearningObjectivesSkills
{{LabLearningObjectivesSkills
Line 38: Line 39:
}}
}}
{{LabLearningObjectivesSkills
{{LabLearningObjectivesSkills
|LabSkill=Learn to set up and run the heat model
|LabSkill=Learn to set up and run the Heat model
}}
}}
{{LabLearningObjectivesSkills
{{LabLearningObjectivesSkills
|LabSkill=Learn to set up and run the heat model through its BMI
|LabSkill=Learn to set up and run the Heat model through its BMI
}}
}}
{{Headerplaceholder}}
{{Headerplaceholder}}
Line 48: Line 49:
}}
}}
{{LabNotes
{{LabNotes
|LabNotesInstructions=You can follow the steps below to test and run the Jupyter Notebooks on the CSDMS JupyterHub server for this lab.
|LabNotesInstructions=The 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).
1. [https://csdms.rc.colorado.edu/hub/signup Create a free account] on the CSDMS JupyterHub , providing a username and password -- they can be whatever you like
}}
 
{{LabReferences
2. [https://github.com/csdms/help-desk/issues/new?assignees=mdpiper&labels=jupyterhub&template=new-csdms-jupyterhub-account.md&title=CSDMS+JupyterHub+account Request authorization] for your new account through the CSDMS Help Desk at  -- if you don't already have a GitHub account, you'll be asked to make one
|LabReferences=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
 
}}
3. Once approved, run Jupyter Notebooks by clicking on "start" under the "Run online" section (grey table at the top of this lab page).
{{LabReferences
|LabReferences=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.
}}
}}

Revision as of 14:45, 26 August 2020

Introduction to CSDMS Tools - Basic Model Interface (BMI)

Model
None
Duration
1.0 hrs
Updated
2020/06/04
Download
Run online using:
  1. Jupyter
     Jupyter logo.png

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
Bmi-logo.png
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 "Heat" model through its BMI.


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.

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

Lab notes
The 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.