The Basic Model Interface 2.0: A standard interface for coupling numerical models in the geosciences

  • Hutton E
  • Piper M
  • Tucker G
N/ACitations
Citations of this article
48Readers
Mendeley users who have this article in their library.

Abstract

Component modeling is a research technique in which new models are constructed by coupling the inputs and outputs of simpler existing models. Component modeling traces its roots to component-based software engineering, where a software system is constructed from a number of independent, reusable software components, each encapsulating a unit of functionality and exposing inputs and outputs through an interface. A tangible analogy is a bicycle. A bicycle is a system of reusable, replaceable components. Tires are one of the components. You can easily swap in a studded tire for icy winter streets, then swap it out again in the summer. While there is a longer history of component modeling in fields such as climate modeling, with, for example, the Earth System Modeling Framework (Collins et al., 2005), component modeling is relatively new to the earth surface processes community. Some recent examples include Ratliff, Hutton, & Murray (2018), who show that a river model transporting sediment can feed a delta model that distributes the sediment, and Hoch, Eilander, Ikeuchi, Baart, & Winsemius (2019), who show that coupling hydrologic and hydrodynamic models may sharpen inundation estimates in flood modeling. In component-based software engineering, components communicate through interfaces: named sets of functions with prescribed arguments and return values. The bicycle analogy above benefits from a standard interface for tire diameter and width. Likewise, component modeling can benefit from an interface for describing the inputs, outputs, and behaviors of a model. The Basic Model Interface (BMI) provides a standard set of functions for querying, modifying, and running a model. Equipping a model with a BMI allows the model to be coupled with other models that expose a BMI. The BMI concept was introduced by Peckham, Hutton, & Norris (2013) as a foundational technology for the proposed Community Surface Dynamics Modeling System (CSDMS) model coupling framework. The current work represents an update to the original BMI, with new functions for describing variables and for working with structured and unstructured grids. Full documentation for the current version of the BMI is available at https://bmi.readthedocs.io. The functions that comprise the BMI are designed to be straightforward to implement in any programming language, using only simple data types from standard language libraries. To generalize across languages, the BMI is expressed in the Scientific Interface Definition Language (Epperly et al., 2012). BMI specifications for four languages-C, C++, Fortran, and Python-have been derived from the SIDL specification. For each language, links to the GitHub repositories supplying the specification and an example implementation are listed in Table 1 below. Detailed instructions for building the language specification and example are given within each repository. Hutton et al., (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.

Cite

CITATION STYLE

APA

Hutton, E., Piper, M., & Tucker, G. (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

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free