class BasicStTh

Model BasicStTh

terrainbento BasicStTh model program.

Erosion model program using linear diffusion, smoothly thresholded stream power, and stochastic discharge with a smoothed infiltration capacity threshold.

Landlab components used:
  1. FlowAccumulator

  2. DepressionFinderAndRouter (optional)

  3. StreamPowerSmoothThresholdEroder

  4. LinearDiffuser

  5. PrecipitationDistribution

class BasicStTh(clock, grid, m_sp=0.5, n_sp=1.0, water_erodibility=0.0001, regolith_transport_parameter=0.1, water_erosion_rule__threshold=0.01, infiltration_capacity=1.0, **kwargs)[source]

Bases: terrainbento.base_class.stochastic_erosion_model.StochasticErosionModel

BasicStTh model program.

This model program uses a stochastic treatment of runoff and discharge, and includes an erosion threshold in the water erosion law. It combines models BasicSt and BasicTh. The model evolves a topographic surface, \(\eta (x,y,t)\), with the following governing equation:

\[\frac{\partial \eta}{\partial t} = -(K_{q}\hat{Q}^{m}S^{n} - \omega_c) + D\nabla^2 \eta\]

where \(\hat{Q}\) is the local stream discharge (the hat symbol indicates that it is a random-in-time variable) and \(S\) is the local slope gradient. \(m\) and \(n\) are the discharge and slope exponent, respectively, \(\omega_c\) is the critical stream power required for erosion to occur, \(K\) is the erodibility by water, and \(D\) is the regolith transport parameter.

Refer to Barnhart et al. (2019) Table 5 for full list of parameter symbols, names, and dimensions.

The following at-node fields must be specified in the grid:
  • topographic__elevation

__init__(clock, grid, m_sp=0.5, n_sp=1.0, water_erodibility=0.0001, regolith_transport_parameter=0.1, water_erosion_rule__threshold=0.01, infiltration_capacity=1.0, **kwargs)[source]
  • clock (terrainbento Clock instance) –

  • grid (landlab model grid instance) – The grid must have all required fields.

  • m_sp (float, optional) – Drainage area exponent (\(m\)). Default is 0.5.

  • n_sp (float, optional) – Slope exponent (\(n\)). Default is 1.0.

  • water_erodibility (float, optional) – Water erodibility (\(K\)). Default is 0.0001.

  • water_erosion_rule__threshold (float, optional) – Erosion rule threshold when no erosion has occured (\(\omega_c\)). Default is 0.01.

  • regolith_transport_parameter (float, optional) – Regolith transport efficiency (\(D\)). Default is 0.1.

  • infiltration_capacity (float, optional) – Infiltration capacity (\(I_m\)). Default is 1.0.

  • **kwargs – Keyword arguments to pass to StochasticErosionModel. These arguments control the discharge \(\hat{Q}\).



Return type

model object


This is a minimal example to demonstrate how to construct an instance of model BasicStTh. For more detailed examples, including steady-state test examples, see the terrainbento tutorials.

To begin, import the model class.

>>> from landlab import RasterModelGrid
>>> from landlab.values import random
>>> from terrainbento import Clock, BasicStTh
>>> clock = Clock(start=0, stop=100, step=1)
>>> grid = RasterModelGrid((5,5))
>>> _ = random(grid, "topographic__elevation")

Construct the model.

>>> model = BasicStTh(clock, grid)

Running the model with would create output, so here we will just run it one step.

>>> model.run_one_step(1.)
>>> model.model_time

Advance model BasicStTh for one time-step of duration step.

The run_one_step method does the following:

  1. Creates rain and runoff, then directs and accumulates flow.

  2. Assesses the location, if any, of flooded nodes where erosion should not occur.

  3. Assesses if a PrecipChanger is an active boundary handler and if so, uses it to modify the erodibility by water.

  4. Calculates detachment-limited, threshold-modified erosion by water.

  5. Calculates topographic change by linear diffusion.

  6. Finalizes the step using the ErosionModel base class function finalize__run_one_step. This function updates all boundary handlers handlers by step and increments model time by step.


step (float) – Increment of time for which the model is run.


Executes model.