class BasicDdHy

# Model BasicDdHy¶

terrainbento BasicDdHy model program.

Erosion model program using linear diffusion, stream-power-driven sediment erosion and mass conservation with a smoothed threshold that varies with incision depth, and discharge proportional to drainage area.

Landlab components used:
class BasicDdHy(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, water_erosion_rule__thresh_depth_derivative=0.0, settling_velocity=0.001, fraction_fines=0.5, solver='basic', **kwargs)[source]

BasicDdHy model program.

This model program combines models BasicDd and BasicHy. It evolves a topographic surface, $$\eta$$, with the following governing equation:

\begin{align}\begin{aligned}\frac{\partial \eta}{\partial t} = -\left(KQ(A)^{m}S^{n} - \omega_{ct}\left(1-e^{-KQ^{m}S^{n}/\omega_{ct}}\right)\right) + V\frac{Q_s}{Q(A)} + D\nabla^2 \eta\\Q_s = \int_0^A \left((1-F_f)[\omega - \omega_c (1 - e^{-\omega / \omega_c})] - \frac{V Q_s}{Q(A)} \right) dA\\\omega = KQ(A)^{m}S^{n}\end{aligned}\end{align}

where $$Q$$ is the local stream discharge, $$A$$ is the local upstream drainage area, $$S$$ is the local slope, $$m$$ and $$n$$ are the discharge and slope exponent parameters, $$K$$ is the erodibility by water, $$\omega_{ct}$$ is the critical stream power needed for erosion to occur, $$V$$ is effective sediment settling velocity, $$Q_s$$ is volumetric sediment flux, and $$D$$ is the regolith transport efficiency.

$$\omega_{ct}$$ may change through time as it increases with cumulative incision depth:

$\omega_{ct}\left(x,y,t\right) = \mathrm{max}\left(\omega_c + b D_I\left(x, y, t\right), \omega_c \right)$

where $$\omega_c$$ is the threshold when no incision has taken place, $$b$$ is the rate at which the threshold increases with incision depth, and $$D_I$$ is the cumulative incision depth at location $$\left(x,y\right)$$ and time $$t$$.

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, water_erosion_rule__thresh_depth_derivative=0.0, settling_velocity=0.001, fraction_fines=0.5, solver='basic', **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.

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

• water_erosion_rule__thresh_depth_derivative (float, optional) – Rate of increase of water erosion threshold as increased incision occurs ($$b$$). Default is 0.0.

• settling_velocity (float, optional) – Settling velocity of entrained sediment ($$V$$). Default is 0.001.

• fraction_fines (float, optional) – Fraction of fine sediment that is permanently detached ($$F_f$$). Default is 0.5.

• solver (str, optional) – Solver option to pass to the Landlab ErosionDeposition component. Default is “basic”.

• **kwargs – Keyword arguments to pass to ErosionModel. Importantly these arguments specify the precipitator and the runoff generator that control the generation of surface water discharge ($$Q$$).

Returns

BasicDdHy

Return type

model object

Examples

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


Construct the model.

>>> model = BasicDdHy(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

run_one_step(step)[source]

Advance model BasicDdHy 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 threshold-modified erosion and deposition 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.