class BasicStVs

# Model BasicStVs¶

terrainbento Model BasicStVs program.

Erosion model program using linear diffusion and stream power. Precipitation is modeled as a stochastic process. Discharge is calculated from precipitation using a simple variable source-area formulation.

Landlab components used:
class BasicStVs(clock, grid, m_sp=0.5, n_sp=1.0, water_erodibility=0.0001, regolith_transport_parameter=0.1, hydraulic_conductivity=0.1, **kwargs)[source]

BasicStVs model program.

This model program uses a stochastic treatment of runoff and discharge, using a variable source area runoff generation model. It combines BasicSt and BasicVs. 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} + 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, $$K$$ is the erodibility by water, and $$D$$ is the regolith transport parameter.

This model iterates through a sequence of storm and interstorm periods. Given a storm precipitation intensity $$P$$, the discharge $$Q$$. is calculated using:

$Q = PA - T\lambda S [1 - \exp (-PA/T\lambda S) ]$

where $$T = K_sH$$ is the soil transmissivity, $$H$$ is soil thickness, $$K_s$$ is hydraulic conductivity, and $$\lambda$$ is cell width.

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, hydraulic_conductivity=0.1, **kwargs)[source]
Parameters
• 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.

• 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.

• hydraulic_conductivity (float, optional) – Hydraulic conductivity ($$K_{sat}$$). Default is 0.1.

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

Returns

BasicStVs

Return type

model object

Examples

This is a minimal example to demonstrate how to construct an instance of model BasicStVs. 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, BasicStVs
>>> clock = Clock(start=0, stop=100, step=1)
>>> grid = RasterModelGrid((5,5))
>>> _ = random(grid, "topographic__elevation")
>>> _ = random(grid, "soil__depth")


Construct the model.

>>> model = BasicStVs(clock, grid)


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

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

calc_runoff_and_discharge()[source]

Calculate runoff rate and discharge; return runoff.

run_one_step(step)[source]

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

The run_one_step method does the following:

1. Directs flow, accumulates drainage area, and calculates effective drainage area.

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 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.

Parameters

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

main()[source]

Executes model.