-
class
BasicThVs
¶
Model BasicThVs¶
terrainbento model BasicThVs program.
Erosion model program using linear diffusion, stream power with a smoothed threshold, and discharge proportional to effective drainage area.
- Landlab components used:
-
class
BasicThVs
(clock, grid, m_sp=0.5, n_sp=1.0, water_erodibility=0.0001, regolith_transport_parameter=0.1, hydraulic_conductivity=0.1, water_erosion_rule__threshold=0.01, **kwargs)[source]¶ Bases:
terrainbento.base_class.erosion_model.ErosionModel
BasicThVs model program.
This model program combines models
BasicTh
andBasicVs
. It evolves a topographic surface described by : math:eta with the following governing equations:\[ \begin{align}\begin{aligned}\frac{\partial \eta}{\partial t} = -\left(K A_{eff}^{m}S^{n} - \omega_{c}\left(1-e^{-KA_{eff}^{m}S^{n}/\omega_{c}}\right)\right) + D\nabla^2 \eta\\A_{eff} = A \exp \left( -\frac{-\alpha S}{A}\right)\\\alpha = \frac{K_{sat} H dx}{R_m}\end{aligned}\end{align} \]where \(Q\) is the local stream discharge, \(S\) is the local slope, \(m\) and \(n\) are the discharge and slope exponent parameters, \(K\) is the erodibility by water, \(\omega_c\) is the critical stream power needed for erosion to occur, and \(D\) is the regolith transport parameter.
\(\alpha\) is the saturation area scale used for transforming area into effective area \(A_{eff}\). It is given as a function of the saturated hydraulic conductivity \(K_{sat}\), the soil thickness \(H\), the grid spacing \(dx\), and the recharge rate, \(R_m\).
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
soil__depth
-
__init__
(clock, grid, m_sp=0.5, n_sp=1.0, water_erodibility=0.0001, regolith_transport_parameter=0.1, hydraulic_conductivity=0.1, water_erosion_rule__threshold=0.01, **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 0.01.
hydraulic_conductivity (float, optional) – Hydraulic conductivity (\(K_{sat}\)). Default is 0.1.
**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
BasicThVs
- Return type
model object
Examples
This is a minimal example to demonstrate how to construct an instance of model BasicThVs. 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, BasicThVs >>> clock = Clock(start=0, stop=100, step=1) >>> grid = RasterModelGrid((5,5)) >>> _ = random(grid, "topographic__elevation") >>> _ = random(grid, "soil__depth")
Construct the model.
>>> model = BasicThVs(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 BasicThVs for one time-step of duration step.
The run_one_step method does the following:
Directs flow, accumulates drainage area, and calculates effective drainage area.
Assesses the location, if any, of flooded nodes where erosion should not occur.
Assesses if a
PrecipChanger
is an active boundary handler and if so, uses it to modify the erodibility by water.Calculates detachment-limited erosion by water.
Calculates topographic change by linear diffusion.
Finalizes the step using the
ErosionModel
base class function finalize__run_one_step. This function updates all boundary handlers handlers bystep
and increments model time bystep
.
- Parameters
step (float) – Increment of time for which the model is run.