A glossary of terms used with BMI.

The default shell prompt.
A Python distribution that includes libraries for scientific computing and a package manager. See for more information.
Basic Model Interface
A set a functions that are used to interact with and control a model. See for more information.
See Basic Model Interface.
Community Surface Dynamics Modeling System
CSDMS is an NSF-funded program that seeks to transform the science and practice of earth-surface dynamics modeling. For more information, visit
A program that acts as a template for creating objects.
The package manager for Anaconda. Also an informal name for an Anaconda installation.
A collection of community-built packages distributed by Anaconda. See
conda environment
A conda sub-installation that isolates a group of packages from the main conda installation.
configuration file
A file that contains information, including initial values of parameters, for setting up a model.
See model coupling.
See Community Surface Dynamics Modeling System.
CSDMS Workbench
An integrated system of software tools, technologies, and standards for building and coupling models. See for more information.
Information held by an object.
A line or curve bounded by two nodes.
exchange item
A variable that a model with a BMI produces or consumes. Exchange items are public, not internal variables in the model. Exchange items should use Standard Names.
A plane or surface enclosed by a set of edges. In a 2D horizontal application one may consider the word “polygon”, but in the hierarchy of elements the term “face” is most common. See also node.
A representation of a larger spatial domain by smaller discrete cells. See Model grids and References, as well as terms node, edge, and face.
grid identifier
A unique object that labels (identifies) a model grid. Grid identifiers are integers, starting at zero. Often abbreviated “grid id”. They’re obtained through the get_var_grid function.
grid node
See node.
The process of bringing code from a Python module into another module or into an interactive Python session.
See object.
Programs that act upon the data of an object.
A computer program that attempts to describe a physical process with mathematical relationships that evolve over time and are solved numerically. For more information, see, for example,
model configuration file
A file, usually in a text-based format, that lists the tunable parameters of a model and supplies their initial values.
model coupling
Models are coupled when they exchange inputs and outputs, often at the resolution of individual time steps. One-way coupling occurs when the outputs from one model are used as inputs to another model. Two-way coupling is when outputs from one model are used as inputs for another model, which in turn supplies its outputs to the first model as inputs, producing a feedback.
A file (with the .py extension) that contains Python code.
A point that has a coordinate pair or triplet: the most basic element of a grid. Variable values are typically calculated at nodes. See also face and edge.
A Python library that provides arrays. Outputs from pymt are NumPy arrays. See also
A variable that is a concrete example of a class. Objects have data and methods that act upon those data.
The number of dimensions of a model grid. A scalar has rank 0, a vector has rank 1, a rectilinear grid has rank 2, etc.
The act of modifying the internals of a program without changing the external behaviors of the program. Refactoring is often done to clean up code and improve its performance.
Scientific Interface Definition Language
A specification language for describing software interfaces to scientific model codes. See References.
See Scientific Interface Definition Language.
Standard Names
A semantic mediation technology developed at CSDMS for precisely matching variable names between models. For more information, see
unit test
A program that isolates and runs a section (a unit) of source code to ensure that it produces an expected result.