Class SPL#

class eroder.SPL.SPL(*args, **kwargs)[source]#

The class computes river incision expressed using a stream power formulation function of river discharge and slope.

Note

This class assumes that the stream power law is defined such that it varies linearly with slope (i.e., n exponent set to 1.). In such case, a linear expression is used and is most simpler to compute than for the non-linear case.

If the user has turned-on the sedimentation capability, this class solves implicitly the stream power formulation accounting for a sediment transport/deposition term (Yuan et al, 2019).

Methods

erodepSPL()

Modified stream power law model used to represent erosion by rivers also taking into account the role played by sediment in modulating erosion and deposition rate.

Initialise

__init__(*args, **kwargs)

The initialisation of SPL class consists in the declaration of PETSc vectors.

Public Methods

erodepSPL()

Modified stream power law model used to represent erosion by rivers also taking into account the role played by sediment in modulating erosion and deposition rate.

Private Methods

_coupledEDSystem(eMat)

Setup matrix for the coupled linear system in which the SPL model takes into account sediment deposition.

_eroMats(hOldArray)

Builds the erosion matrices used to solve implicitly the stream power equations for the river and ice processes.

_getEroDepRate()

This function computes erosion deposition rates in metres per year.

Public functions#

SPL.erodepSPL()[source]#

Modified stream power law model used to represent erosion by rivers also taking into account the role played by sediment in modulating erosion and deposition rate.

It calls the private function _getEroDepRate described above. Once erosion/deposition rates have been calculated, the function computes local thicknesses for the considered time step and update local elevation and cumulative erosion, deposition values.

Private functions#

SPL._coupledEDSystem(eMat)[source]#

Setup matrix for the coupled linear system in which the SPL model takes into account sediment deposition.

Note

The approach follows Yuan et al, 2019, where the deposition flux depends on a deposition coefficient \(G\) and is proportional to the ratio between cell area \(A\) and flow accumulation \(FA\).

The approach considers the local balance between erosion and deposition and is based on sediment flux resulting from net upstream erosion.

\[\mathrm{\frac{\eta_i^{t+\Delta t}-\eta_i^t}{\Delta t}} = \mathrm{-\kappa P^d_i \sqrt{Q_i} \frac{\eta_i^{t+\Delta t} - \eta_{rcv}^{t+\Delta t}}{\lambda_{i,rcv}}} + \mathrm{G' Q_{s_i} / \Omega_i}\]

where \(\mathrm{\lambda_{i,rcv}}\) is the length of the edges connecting the considered vertex to its receiver and \(\mathrm{\Omega_i}\) is the area (voronoi) of the node \(i\).

\(\mathrm{Q_{s_i}}\) is the upstream incoming sediment flux in m3/yr and \(\mathrm{G'}\) is equal to \(\mathrm{G \Omega_i / \bar{P}A}\).

The upstream incoming sediment flux is obtained from the total sediment flux \(\mathrm{Q_{t_i}}\) where:

\[\mathrm{Q_{t_i}^{t+\Delta t} - \sum_{ups} w_{i,j} Q_{t_u}^{t+\Delta t}}= \mathrm{(\eta_i^{t} - \eta_i^{t+\Delta t}) \frac{\Delta t}{\Omega_i}}\]

which gives:

\[\mathrm{Q_{s_i}} = \mathrm{Q_{t_i}} - \mathrm{(\eta_i^{t} - \eta_i^{t+\Delta t}) \frac{\Delta t}{\Omega_i}}\]

This system of coupled equations is solved implicitly using PETSc by assembling the matrix and vectors using the nested submatrix and subvectors and by using the fieldsplit preconditioner combining two separate preconditioners for the collections of variables.

Parameters:

eMat – erosion matrix (from the purely-erosive SPL model)

SPL._eroMats(hOldArray)[source]#

Builds the erosion matrices used to solve implicitly the stream power equations for the river and ice processes.

Parameters:

hOldArray – local elevation array from previous time step

Returns:

eMat, PA where the first is a sparse PETSc matrices related to river and glacial erosion and PA is the flow/ice accumulation rate.

SPL._getEroDepRate()[source]#

This function computes erosion deposition rates in metres per year. This is done on the filled elevation. We use the filled-limited elevation to ensure that erosion/deposition is not going to be underestimated by small depressions which are likely to be filled (either by sediments or water) during a single time step.

The simplest law to simulate fluvial incision is based on the detachment-limited stream power law, in which erosion rate depends on drainage area \(A\), net precipitation \(P\) and local slope \(S\) and takes the form:

\[E = − \kappa P^d (PA)^m S^n\]

\(\kappa\) is a dimensional coefficient describing the erodibility of the channel bed as a function of rock strength, bed roughness and climate, \(d\), \(m\) and \(n\) are dimensionless positive constants.

A similar approach is used to compute ice induced erosion where the ice flow accumulation is defined based on downstream nodes and is smoothed to better represent the erosion induced by glaciers. The ice-induced erosion uses the stream power law equation with a eordibility coefficient which is user defined. Under glacier terminus point, melted glacier flow is added to river flow accumulation likewise is the glacier-induced transported sediment flux.

Default formulation assumes \(d = 0\), \(m = 0.5\) and \(n = 1\). The precipitation exponent \(d\) allows for representation of climate-dependent chemical weathering of river bed across non-uniform rainfall.

Important

Here, the coefficient n is fixed and the equation is tuned based on m, d and the erodibility \(\kappa\).

The erosion rate is solved by an implicit time integration method, the matrix system is based on the receiver distributions and is assembled from local Compressed Sparse Row (CSR) matrices into a global PETSc matrix. The PETSc scalable linear equations solvers (KSP) is used with both an iterative method and a preconditioner and erosion rate solution is obtained using PETSc Richardson solver (richardson) with block Jacobian preconditioning (bjacobi).

In addition, an alternative method to the purely detachment-limited approach consists in accounting for the role played by sediment in modulating erosion and deposition rates. It follows the model of Yuan et al, 2019, whereby the deposition flux depends on a deposition coefficient \(G\) and is proportional to the ratio between cell area \(\mathrm{\Omega}\) and water discharge \(\mathrm{Q}=\bar{P}A\).