Models of landscape evolution provide insight into the geomorphic history of specific field areas, create testable predictions of landform development, demonstrate the consequences of current geomorphic process theory, and spark imagination through hypothetical scenarios. While the last 4 decades have brought the proliferation of many alternative formulations for the redistribution of mass by Earth surface processes, relatively few studies have systematically compared and tested these alternative equations. We present a new Python package, terrainbento 1.0, that enables multi-model comparison, sensitivity analysis, and calibration of Earth surface process models. Terrainbento provides a set of 28 model programs that implement alternative transport laws related to four process elements: hillslope processes, surface-water hydrology, erosion by flowing water, and material properties. The 28 model programs are a systematic subset of the 2048 possible numerical models associated with 11 binary choices. Each binary choice is related to one of these four elements – for example, the use of linear or nonlinear hillslope diffusion. Terrainbento is an extensible framework: base classes that treat the elements common to all numerical models (such as input/output and boundary conditions) make it possible to create a new numerical model without reinventing these common methods. Terrainbento is built on top of the Landlab framework such that new Landlab components directly support the creation of new terrainbento model programs. Terrainbento is fully documented, has 100 % unit test coverage including numerical comparison with analytical solutions for process models, and continuous integration testing. We support future users and developers with introductory Jupyter notebooks and a template for creating new terrainbento model programs. In this paper, we describe the package structure, process theory, and software implementation of terrainbento. Finally, we illustrate the utility of terrainbento with a benchmark example highlighting the differences in steady-state topography between five different numerical models.
Computational models of long-term drainage basin and landscape
evolution have a wide spectrum of applications in geomorphology, ranging from
addressing fundamental questions about how climatic and tectonic processes
shape topography, to performing engineering assessments of landform stability
and potential for hazardous-waste containment
Relatively few studies have systematically compared and tested alternative
transport laws, and those that do usually address only a single,
quasi-one-dimensional landform element, such as the shape of an idealized
hillslope
Terrainbento is a Python-language software product designed to help meet this
need. Terrainbento version 1.0 provides three resources for exploring
alternative process formulations for landscape evolution. First, terrainbento
1.0 includes a collection of 28 distinct model programs for the long-term
(order
Second, terrainbento takes advantage of Python class inheritance such that
all common features of terrainbento model programs (such as input/output, and
the handling of boundary conditions) are provided in a generic
“ErosionModel” base class from which specific programs are derived. This
ErosionModel class enables modelers to craft and apply their own
implementations without needing to reinvent the overarching software
framework or the necessary utility functions. Terrainbento 1.0 builds on the
Landlab toolkit
Finally, boundary conditions can have a profound impact on model behavior. Terrainbento has a set of extensible features called “boundary handlers” that can be used to implement many common and complex boundary conditions.
Earth's landscapes are incredibly diverse, and the scientific questions that
they pose are equally extensive. No one model program, or even a general
framework like terrainbento, can hope to encompass all of this diversity.
Terrainbento 1.0 was originally created to address landscape evolution in a
humid–temperate, soil-mantled, postglacial environment with moderate relief
(order
A terrainbento model program begins with a gridded representation of topography. Landlab's RasterModelGrid, HexModelGrid, RadialModelGrid, and irregular Delaunay–Voronoi grids are all supported in terrainbento version 1.0. The elevation, and regolith thickness if present, at each grid node evolves according to a specified set of erosion and/or sediment transport laws, which vary between model programs. Terrainbento is agnostic to time and space units but expects that a user will ensure consistency between the grid units, time step units, and model input parameters.
In this section, we start by outlining the governing equations in a generic
form. We then examine the software framework that implements elements common
to all terrainbento model programs. The subsequent section
(Sect.
The word “model” can have multiple meanings in scientific computing and
indeed in science generally. Here we will use the term
Each mathematical model contains terms that represent individual
processes (or closely related collections of processes), such as erosion by
surface-water flow. The mathematical representation for an individual process
will be referred to as a
The term
Topography in a terrainbento mathematical model is represented as a
two-dimensional field of elevation values,
While many terrainbento model programs only treat the evolution of the
topographic surface
Several of terrainbento's model programs explicitly track a layer of
regolith, defined here as unconsolidated and potentially mobile sediment,
such as soil or alluvium (see Sect.
Nine terrainbento model programs allow for spatial juxtaposition of two
different lithologies,
Each of the 28 model programs in the terrainbento 1.0 collection has four
elements, reflecting the treatment of hillslope processes, surface-water
hydrology, erosion by running water, and material properties. The possible
formulations for each of these elements are constructed around a set of
binary choices. Each choice represents a decision about how a particular
element might be formulated. For example, the downhill soil transport rate
could be represented as either a linear or nonlinear function of local
topographic gradient, while the lithology could either be treated as
uniform or divided into two distinct types as discussed in
Sect.
Each of terrainbento's model programs uses Landlab components to implement
the numerical algorithms behind channel erosion, hillslope processes, and
water-flow routing. The components used are briefly identified by name in the
following descriptions. The software architecture that supports this
component-based approach is then discussed further in Sect.
Terrainbento supports all types of Landlab model grids. Many options for the creation of synthetic topography and instantiation from a DEM are available. These options are described in the user manual.
All terrainbento model programs calculate drainage area and surface-water
discharge using the Landlab FlowDirectors and FlowAccumulator. Flow direction
algorithms presently supported in Landlab include SteepestDescent/D4, D8,
D
Model program binary options.
Summary of 28 individual model programs in the terrainbento 1.0 collection.
The simplest of the component model programs in terrainbento is known as the
Basic model program. It implements a discretized numerical solution to the
following governing equation for land surface elevation
Three-dimensional view of simulated topography illustrating the use
of five different terrainbento model programs:
Slope–area relationship for the example simulation in Fig.
The second term on the right is the popular linear diffusion rule for
hillslopes
Rather than hard coding values for the water-erosion discharge exponent
Although Eq. (
One arrives at the terrainbento Basic model program by choosing option A for
each item in Table
To simulate hillslope evolution processes in a soil-mantled landscape, we use components of varying complexity that treat soil transport as a diffusion-like process in which sediment flux is governed by topographic gradient. Terrainbento offers two alternative soil flux rules with which to simulate the downslope transport of soil and its dependence on topographic gradient: linear and nonlinear.
In addition, as discussed previously, terrainbento also allows for the option
of explicitly tracking a dynamic soil layer. Our representation and treatment
of soil evolution are simpler than in existing models focused on soil
production and evolution
The simplest forms of the so-called “geomorphic diffusion” equation
A variety of formulae exist for the soil flux,
A more complex version of the creep law for soil-mantled slopes involves a
nonlinear relationship between soil flux and topographic gradient. The
nonlinear formulation captures accelerated creep and shallow landsliding as
the gradient approaches an effective angle of repose for loose granular
material. Several nonlinear creep-transport laws have been suggested in the
literature. The most popular of these is the Andrews–Bucknam equation
Terrainbento uses a truncated Taylor series formulation for soil flux, which
was derived by
For model programs that explicitly track a soil layer
We can modify the nonlinear flux rule (Eq.
Models that track a layer of soil must include an expression to specify the
rate at which soil is produced from the underlying parent material. The most
commonly applied formula, and the one used by terrainbento's soil-tracking
model programs, treats the rate of soil production from the underlying
lithology as an inverse-exponential function of soil thickness
Treatments of surface-water hydrology in landscape evolution models are
commonly quite straightforward, reflecting the need for both simplicity and
computational efficiency. Erosion formulae normally require specification of
water discharge or (less commonly) depth. The most common parameterization is
to use contributing drainage area,
In vegetated, humid–temperate regions, storm runoff is commonly produced by
the saturation-excess mechanism, in which rain falls on areas that have
become saturated
This threshold-based approach has been used, for example, in numerical models
that explore how hillslope hydrology influences landform evolution
It is useful to recast this in terms of an effective contributing area,
A final step is to note that one can collapse the various factors in
Eq. (
Seven of terrainbento's model programs implement variable source area
hydrology by using
An example simulation with a terrainbento model program (BasicVs) that
includes a variable source area component is shown in
Fig.
Many landscape evolution models use an
In order to facilitate comparison between numerical models with deterministic
and stochastic treatments of water discharge, terrainbento 1.0 includes a set
of six model programs that each implement two stochastic precipitation
algorithms available in the PrecipitationDistribution Landlab component. The
aim of these algorithms is not to reproduce individual storm events, but
rather to capture a spectrum of runoff and streamflow events of varying
frequency and magnitude. The first of these two methods is a
stochastic-in-time approach based on
In the first option, a series of “storms” is generated based on a specified
mean storm duration
In the second option, in which the time step duration is fixed, the frequency
of occurrence of rainfall is described using an intermittency factor,
Thus, the mean precipitation rate (averaged over wet and dry periods),
The probability distribution of precipitation rate,
The shape parameter
To describe the frequency–magnitude spectrum probabilistically in
terrainbento's stochastic model programs, time is discretized into a series
of steps of duration
The second approach uses the variable source area runoff generation
formulation described in Sect.
Several different expressions have been proposed as process formulations for
long-term channel incision (and for erosion by surface water more generally).
Terrainbento 1.0 was originally designed to address erosion of cohesive
sediments (including glacial till) and clastic sedimentary rocks with a
relatively high fracture density, both of which are prone to erosion by
hydraulic detachment of sediment grains and fracture-bounded fragments
(“plucking”). This focus guided the choice of water-erosion laws in
terrainbento 1.0. Each terrainbento model program uses one of two main types
of erosion law: a simple area–slope detachment formula (sometimes referred to
in the literature as the stream-power family of erosion laws
The area–slope (a.k.a., stream-power) family of erosion laws derives from the
assumption that the erosion rate,
Despite the simplicity of Eq. (
One of the most commonly used versions of Eq. (
With respect to the exponents
The simplicity of Eq. (
Equation (
Bed-load sediment transport is well known to exhibit threshold-like behavior,
in which the transport rate is negligible until a certain minimum hydraulic
tractive stress is reached, at which point significant transport begins.
Similar behavior applies to the erosion of highly cohesive sediment
Several terrainbento model programs include a threshold in the water-erosion
law. In order to promote mathematically smooth behavior, acknowledge evidence
for distributions of transport thresholds
The factor
Illustration of the functional form of the smooth-threshold
erosion law (Eq.
In a study of river incision into glacial deposits following ice recession in
the US upper midwest,
Two important and commonly used measures of the erosional potential of
streamflow are unit stream power and shear stress. The first represents the
rate of energy dissipation per unit surface area, while the second represents
the hydraulic traction force per unit area. Erosion rates in cohesive or
rocky material tend to correlate strongly with both quantities
In terrainbento 1.0, the choice of exponent values is set using an input file or keyword arguments, so separate code is not needed to implement the shear-stress option. Nonetheless, we consider the stream-power and shear-stress formulations to form distinct parametric models.
The sediment-tracking model program computes changes in riverbed elevation
resulting from competition between the entrainment of bed material into the
water column and deposition from the water column onto the bed using a
combined entrainment–deposition law
discussed by
Equation (
The erosion flux
Sediment deposition flux
The entrainment–deposition model program provides greater flexibility than
detachment-limited model programs in that it can freely transition between
detachment-limited and transport-limited behavior, depending on the relative
importance of the erosion and deposition fluxes. If the deposition flux is
negligible relative to the erosion flux, behavior becomes detachment limited.
In the opposite case, the numerical model becomes transport limited. The
entrainment–deposition model program is therefore uniquely able to treat
landscapes that may exhibit both types of behavior at different points in
space and time, at the cost of only a single extra parameter (
In the entrainment–deposition approach proposed by
One weakness of the entrainment–deposition model program described above is its limitation
to a single type of bed material. For example, one can configure the
parameters to represent erodible material, such as loose sediment, or
resistant material, such as indurated bedrock, but not both at once. This
limitation means that the basic form of the entrainment–deposition model
program cannot honor the reality that many bedrock-incising rivers are
blanketed by alluvium, nor can it be used to assess the relative
contributions of sediment entrainment and bedrock erosion to channel
morphology and sediment flux. One potential solution is to use the
entrainment–deposition model program
in conjunction with a substrate layering system (i.e., a layer of sediment
overlying bedrock), in which each layer is defined by its own erodibility
factor and erosion threshold
In terrainbento we use the Landlab component developed by
The SPACE numerical model includes a similar formulation for the bedrock,
whereby bedrock erosion becomes more efficient as sediment thickness declines:
As demonstrated by
For those model programs that use variable source area hydrology, the
drainage area factor in the water-erosion law is replaced by effective
drainage area,
One model program, BasicStVs, combines stochastic runoff generation with
variable source area hydrology. With this model program, as in the
variable source model program more generally, the capacity to carry
subsurface discharge is defined as
One of the binary options listed in Table
When the dynamic soil option is used in combination with a sediment-tracking entrainment–deposition erosion law (model program BasicHySa), the SPACE numerical model described above is used in place of the simpler (single-material-type) entrainment–deposition law. In all other cases, the use of a dynamic soil layer does not directly influence the water-erosion law.
When dynamic soil is combined with variable source area hydrology (model
program BasicSaVs), the actual soil thickness at each point
With two-lithology model programs, the material-dependent parameters in the
water-erosion equation, including the coefficient (
To acknowledge the fact that lithological contacts are not razor thin and
to preserve smoothness in the numerical solution, we allow there to be a
finite “contact zone” within which the two lithologies are both considered
to influence the material erodibility. One might imagine this zone as
representing a gradational transition from one unit to another, or
alternatively an uneven contact surface. We define a weight factor
As a simpler representation of variable climate than available in the
PrecipChanger described in Sect.
As noted earlier, the various process options described above can be arranged
into a set of 11 binary choices (Table
The particular list of model program choices in Table
Just as process representation influences simulation results, so do boundary
conditions. Representing boundary conditions in a component-like fashion
permits systematic and reproducible changes in boundary conditions through
either boundary condition component choice or parameter choice. To support
alternative boundary conditions, terrainbento 1.0 includes five boundary
condition handler classes. These boundary condition handlers are similar in
construction to Landlab components: they are Python objects, and they must have
an
Each of the four base-level handlers modifies the elevations of specific grid
nodes. Before describing these base-level handlers it is worth reviewing the
boundary condition types available to Landlab model grid nodes
The four base-level handlers were designed to capture the most common cases for boundary conditions in Earth surface processes modeling. The SingleNodeBaselevelHandler controls the elevation of a single, open, fixed-value boundary node, meant to represent a watershed outlet. The outlet lowering rate is specified either as a constant or through a user-supplied text file that specifies the elevation change through time. The NotCoreNodeBaselevelHandler moves either the core nodes or the not-core nodes at a constant rate through time or based on a text file. The CaptureNodeBaselevelHandler was designed to simulate drainage basin capture by a basin external to the simulated domain. It changes the boundary condition status of a single node from closed to fixed-value open at a user-defined time and lowers its elevation.
The final base-level handler is the GenericFunctionBaselevelHandler. It is
similar to the NotCoreBaselevelHandler in that it either moves the core nodes
or the not-core nodes. However, instead of taking a constant rate or
time-elevation pattern as input, it requires that a user define a function of
two arguments that returns an at-node field of uplift rate. The two required
arguments are the model grid and the simulation integration time. As the
model grid contains attributes
The final boundary condition handler was designed to implement the impacts of changing climate on the precipitation distribution and, by extension, the erodibility of material by water. For model programs with stochastic precipitation and uniform time steps, this method modifies the intermittency factor and the mean rainfall rate, whereas for model programs with an effective discharge it modifies the erodibility by water. This boundary condition handler does not presently support stochastic precipitation with stochastic event durations.
For “St” model programs that explicitly represent the intermittency factor
Next we need to relate runoff rate to precipitation rate. A common method is
to acknowledge the existence of a soil infiltration capacity,
To relate short-term (“instantaneous”) erosion rate to the long-term
average, one can first integrate the erosion rate over the full probability
distribution of daily precipitation intensity. This operation yields the
average erosion rate produced on wet days. To convert this into an average
that includes dry days, we simply multiply the integral by the wet-day
fraction
We use a Weibull distribution for the precipitation intensity PDF after
The above definition can be substituted into the integrals in
Eq. (
In creating a software product that manifests not one but rather dozens of potential model configurations, efficiency and reuse are key design considerations. To meet this goal, terrainbento 1.0 uses an object-oriented approach to its high-level design. Each terrainbento model program is implemented as a Python class. The class that implements any particular terrainbento model program inherits from a common base class called ErosionModel. Here we describe the main functions of the base class, the typical structure of the derived class, and the use of a driver program to configure and execute a terrainbento model program.
Terrainbento contains three base classes to minimize duplicate code and maximize the extensibility of the modeling framework. The first of these, ErosionModel, handles common methods such as instantiation, run, output creation, and model finalization. These include creating the model grid, reading initial topography from a file, creating synthetic topography, calculating elevation change, writing NetCDF and xarray datasets of simulation output, and interfacing with the boundary condition handlers. All model programs except the “St” and “Rt” series inherit directly from the ErosionModel base class.
The stochastic and two-lithology model programs each have a sufficient number of specialized methods to justify having their own base classes, which are the StochasticErosionModel and TwoLithologyErosionModel, respectively. Both of these inherit from ErosionModel. The StochasticErosionModel handles setting up the stochastic rain generator; calculating precipitation, runoff, and water erosion; and keeping records of storm sequences. The TwoLithologyErosionModel handles setting up the lithology contact elevation and updating any fields that depend on the depth to the contact.
The Community Surface Dynamics Modeling System (CSDMS) has promoted the use of an
interface standard known as the basic model interface (BMI) for geoscientific
numerical models
Public base class methods.
Two features make the process of writing a new model program in terrainbento
relatively fast and efficient: the ability to inherit functionality from the
terrainbento base classes and the use of process components in the Landlab
toolkit to handle individual process laws. Having already discussed the base
class, it is useful to say a few words about Landlab. The Landlab toolkit is
a Python-language software library designed to support the efficient creation,
exploration, and modification of two-dimensional numerical models of
Earth surface processes
Terrainbento uses Landlab components to implement its process laws. Each
terrainbento model program is implemented as a class that derives from the
ErosionModel base class. The model program's
The naming scheme for the classes that implement the individual terrainbento
model programs starts with the name “Basic” and then adds a two-letter code
for each element in which the model program differs from the Basic model
program (Table
Terrainbento 1.0 provides multiple options for model instantiation and
the specification of parameter values and run-control options. Parameters can be
listed in an ASCII-text input file using YAML format (“YAML Ain't Markup
Language”), as in the example in Fig.
Example of a terrainbento input file.
If a user wishes to read in a digital elevation model (DEM) to use as the
initial topography, the name of the DEM file is given as a parameter in the
input file or dictionary. All input/output methods supported by Landlab's
Gridded output is written in NetCDF format. The base name for the output files must be specified as an input parameter. When a terrainbento model program runs, output is written at regular intervals, with the frequency set by the user via an input parameter. One file is created for every output interval; these files are numbered sequentially. A terrainbento output file contains all of the grid fields used in that particular simulation, which is to say all the grid fields created by that model program's Landlab components plus any created in the main model program.
In addition to output in the form of NetCDF files, terrainbento supports the
supply of one or more functions or classes, termed output writers that are run
at output intervals. If writing and then post-processing the NetCDF files is
not sufficient for a user's application, the user can define an output writer
to suit the application. For example, if users wanted to make a diagnostic
plot to monitor a simulation run as it progresses, they could define an
output writer that does this. The interface constraints on output writers are
minimal: a function must take only one argument, expected to be a
terrainbento model instance; a class must take one argument at instantiation,
also expected to be a model instance, and must have a
Unique names are assigned to each terrainbento input parameter and each data
field. Terrainbento 1.0 parameter and field names are listed in
Table
Terrainbento parameter names and unit dimensions.
Terrainbento field names and unit dimensions.
Terrainbento follows modern software engineering best practices by incorporating documentation and testing into the package source code. The terrainbento documentation Docstrings include simple examples showing, for each model program, the minimum requirements to instantiate a model program instance. For each model program, unit tests verify that all value and compatibility checks raise the correct errors and that all existing analytical solutions are reached. These unit tests ensure that any refactoring of the code, additions or improvements in later terrainbento versions, or changes to Landlab components do not change the results produced by the model. Terrainbento 1.0 has 100 % coverage, which means that all lines of code in the base classes, derived models, and boundary condition handlers are tested by unit or Docstring tests.
The analytical solution unit tests represent model program verification. Tests of the ErosionModel base class include verification that the same random seed reproduces the same initial condition topography, that ErosionModel can work with different instantiation methods and Landlab grid types, and that ErosionModel is compatible with boundary condition handlers and output writers. For base classes like the StochasticErosionModel, we test random seed reproducibility and to ensure that the sequence of rain events generated matches the desired distribution. For each model program, we test at least two process end-members: a case with only hillslope processes and a case with only water-erosion process. Here, for the sake of illustration, we provide the example of an analytical solution for the Basic model program.
The Basic model program has the following governing equation:
Given boundary conditions of a constant relative uplift rate
In the water-erosion-only end-member,
Unit tests for all other model program can be found in the source code under
the folder
Terrainbento includes eight Jupyter notebooks designed to introduce new users
to terrainbento and demonstrate five benchmark examples. These notebooks are
available on GitHub
The five example landscapes shown in Fig.
As terrainbento was designed to be generic, it includes a template to support interested developers in building their own model programs within the framework. This template provides an example file with the skeleton of a terrainbento model program and extensive comments on the type of documentation and public functions required of new terrainbento model programs. Throughout the documentation we have made notes encouraging users and developers to make a GitHub issue if they have questions, find errors, or feel that the functionality should be expanded to meet research needs.
Terrainbento 1.0 is a model analysis package and collection of alternative model programs for long-term landscape evolution built using the Landlab framework. Terrainbento was designed to enable hypothesis testing among alternative numerical models of Earth surface processes. Terrainbento 1.0 focuses on 11 binary options for process formulation and 28 model programs that systematically explore these options. As boundary conditions can substantially influence simulation results, terrainbento also includes five boundary condition handlers, which permit the consideration of boundary conditions in a parameterized way. Integration between terrainbento and Landlab permits process component development within Landlab and the use of new components in terrainbento. Thus, while the process combinations available within terrainbento 1.0 are not exhaustive, its extensible design facilitates inclusion of additional terrainbento model programs using new and existing Landlab components.
Recent work has yielded a plethora of numerical models of Earth surface processes, yet comparison among these models has long been difficult and inconsistent. Terrainbento enables efficient numerical model intercomparison with standardized parameters, input/output, and handling of boundary conditions. Consistent, reproducible comparison among landscape evolution models using the terrainbento modeling package will support model evaluation and advance quantitative understanding of Earth surface dynamics.
The terrainbento source code can be found in a publicly
available GitHub repository distributed under an MIT license
Table of dimensions and constants.
Mathematical symbols
The governing equation for elevation change in the Basic model program is
BasicTh adds a threshold to the water-erosion term in the Basic model program:
BasicDd includes a threshold to the water-erosion term that increases with
progressive incision depth:
BasicHy uses a sediment-tracking (“hybrid”) water-erosion law:
BasicCh uses a nonlinear law for hillslope erosion and transport:
BasicSt uses a stochastic representation of precipitation, in which the
rainfall rate
The BasicVs model program implements variable source area runoff using the
“effective area” approach described in Sect.
BasicSa modifies the Basic model program by explicitly tracking a dynamic
soil layer of thickness
BasicRt modifies Basic by allowing for two lithologies, as described in
Sects.
BasicCc uses the same governing equation as Basic, but allows the parameter
The land surface evolution equation is
The BasicThVs model program implements variable source area runoff using the
“effective area” approach plus a threshold on the water-erosion law:
BasicRtTh modifies Basic by allowing for two lithologies and applying a
threshold to the channel incision law:
This is a sediment-tracking (hybrid) erosion law with a depth-dependent threshold:
This model program uses stochastic precipitation, and the water-erosion law includes a depth-dependent threshold:
Model BasicDdVs uses variable source area hydrology and an erosion threshold
that increases with progressive erosion depth:
BasicDdRt modifies Basic by allowing for two lithologies and applying a
depth-dependent threshold to the channel incision law. Unlike BasicRtTh, the
(initial) threshold is taken to be uniform across the two lithologies; the
rate of increase in threshold with depth (
This is a sediment-tracking (hybrid) model program that uses variable source area hydrology:
This model program uses a continuous layer of soil–alluvium, which influences
both hillslope transport and water erosion and transport. This model program
uses the SPACE algorithm of
This is a sediment-tracking (hybrid) model program with two lithologies:
BasicChSa modifies the Basic model program by explicitly tracking a dynamic
soil layer of thickness
This model program uses nonlinear hillslope transport and two lithologies:
BasicStVs uses a stochastic representation of precipitation, together with variable source area hydrology:
This model program combines variable source area hydrology with a dynamic
soil layer. Unlike other model programs with variable source area hydrology,
here the actual soil thickness
BasicRtVs is a two-lithology model program that uses variable source area
hydrology:
This model program combines a dynamic soil layer and two lithologies:
This model program uses nonlinear hillslope transport, two lithologies, and
an erosion threshold:
All authors contributed to the creation of the software package, including developing source code, example Jupyter notebooks, embedded documentation, and internal tests. All authors contributed to the writing and editing of the paper.
The authors declare that they have no conflict of interest.
We thank Eric Hutton at the Community Surface Dynamics Modeling System Integration Facility for assistance in best practices for scientific software development and setting up continuous integration (CSDMS is supported by NSF award 1226297). Comments from two anonymous reviewers improved the structure and clarity of the paper. Support for this work was provided by NSF award 1450409 to Tucker and an NSF EAR Postdoctoral Fellowship to Barnhart (award number 1725774). Shobe was supported by a National Defense Science and Engineering Graduate Fellowship and a University of Colorado Chancellor's Fellowship. An early version of this software was developed in support of a project that was carried out under contract with Enviro Compliance Solutions, Inc. (contract number DE-EM0002446/0920/13/DE-DT0005364/001). We thank members of the Erosion Working Group for their collaboration and insights into the original application that motivated this software. Edited by: Bethanna Jackson Reviewed by: two anonymous referees