-
class
BasicHyVs
¶
Model BasicHyVs¶
terrainbento model BasicThVs program.
Erosion model program using linear diffusion, stream-power-driven sediment erosion and mass conservation, and discharge proportional to effective drainage area.
- Landlab components used:
-
class
BasicHyVs
(clock, grid, m_sp=0.5, n_sp=1.0, water_erodibility=0.0001, regolith_transport_parameter=0.1, settling_velocity=0.001, fraction_fines=0.5, hydraulic_conductivity=0.1, solver='basic', **kwargs)[source]¶ Bases:
terrainbento.base_class.erosion_model.ErosionModel
BasicHyVs model program.
This model program combines
BasicHy
andBasicVs
to evolves a topographic surface described by \(\eta\) with the following governing equations:\[ \begin{align}\begin{aligned}\frac{\partial \eta}{\partial t} = -\left(KQ(A)^{m}S^{n} - \omega_c\left(1-e^{-KQ(A)^{m}S^{n}/\omega_c}\right)\right) + V\frac{Q_s}{Q(A)} + D\nabla^2 \eta\\Q_s = \int_0^A \left(KQ(A)^{m}S^{n} - \frac{V Q_s}{Q(A)} \right) dA\\Q = 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, \(V\) is effective sediment settling velocity, \(Q_s\) is volumetric sediment flux, and \(D\) is the regolith transport efficiency.
\(\alpha\) is the saturation area scale used for transforming area into effective area \(A_{eff}\) (used as discharge). 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, settling_velocity=0.001, fraction_fines=0.5, hydraulic_conductivity=0.1, 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.
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”.
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
BasicHyVs
- Return type
model object
Examples
This is a minimal example to demonstrate how to construct an instance of model BasicHy. 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, BasicHyVs >>> clock = Clock(start=0, stop=100, step=1) >>> grid = RasterModelGrid((5,5)) >>> _ = random(grid, "topographic__elevation") >>> _ = random(grid, "soil__depth")
Construct the model.
>>> model = BasicHyVs(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 BasicVs 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.