Class SEDMesh

class sed.sedplex.SEDMesh(*args, **kwargs)[source]

This class encapsulates all the functions related to sediment transport, production and deposition in the continental domain. gospl has the ability to track three types of clastic sediment size and one type of carbonate (still under development). The following processes are considered:

  • inland river deposition in depressions and enclosed sea

  • hillslope processes in both marine and inland areas

Note

All these functions are ran in parallel using the underlying PETSc library.

Initialise

__init__(*args, **kwargs)

The initialisation of SEDMesh class consists in the declaration of several PETSc vectors.

Public Methods

getHillslope()

This function computes hillslope processes.

getSedFlux()

This function computes sediment flux in cubic metres per year from incoming rivers.

sedChange()

This function is the main entry point to perform both continental and marine river-induced deposition.

Private Methods

_distributeSediment(hl[, stype])

This function finds the continental sediment volumes to distribute downstream (down to the ocean or sinks) for a given iteration.

_getSedVol(stype)

Pick the relevant PETSc array for the specified sediment type.

_hillSlope([smooth])

This function computes hillslope using a linear diffusion law commonly referred to as soil creep:

_moveDownstream(vSed, step)

In cases where river sediment fluxes drain into depressions, they might fill the sink completely and overspill or be deposited in it.

_updateSinks(hl[, stype])

This function updates depressions elevations based on incoming sediment volumes.

Public functions

SEDMesh.getHillslope()[source]

This function computes hillslope processes. The code assumes that gravity is the main driver for transport and states that the flux of sediment is proportional to the gradient of topography.

As a result, we use a linear diffusion law commonly referred to as soil creep:

\[\frac{\partial z}{\partial t}= \kappa_{D} \nabla^2 z\]

in which \(\kappa_{D}\) is the diffusion coefficient and can be defined with different values for the marine and land environments (set with hillslopeKa and hillslopeKm in the YAML input file). It encapsulates, in a simple formulation, processes operating on superficial sedimentary layers. Main controls on variations of \(\kappa_{D}\) include substrate, lithology, soil depth, climate and biological activity.

SEDMesh.getSedFlux()[source]

This function computes sediment flux in cubic metres per year from incoming rivers. Like for the computation of the flow discharge and erosion rates, the sediment flux is solved by an implicit time integration method, the matrix system is the one obtained from the receiver distributions over the unfilled elevation mesh for the flow discharge (fMat).

The PETSc scalable linear equations solvers (KSP) is used here again with an iterative method obtained from PETSc Richardson solver (richardson) with block Jacobian preconditioning (bjacobi).

SEDMesh.sedChange()[source]

This function is the main entry point to perform both continental and marine river-induced deposition. It calls the private function:

  • _distributeSediment

  • _updateSinks

Private functions

SEDMesh._distributeSediment(hl, stype=0)[source]

This function finds the continental sediment volumes to distribute downstream (down to the ocean or sinks) for a given iteration.

SEDMesh._getSedVol(stype)[source]

Pick the relevant PETSc array for the specified sediment type.

SEDMesh._hillSlope(smooth=0)[source]

This function computes hillslope using a linear diffusion law commonly referred to as soil creep:

\[\frac{\partial z}{\partial t}= \kappa_{D} \nabla^2 z\]

in which \(\kappa_{D}\) is the diffusion coefficient and can be defined with different values for the marine and land environments (set with hillslopeKa and hillslopeKm in the YAML input file).

Note

The hillslope processes in gospl are considered to be happening at the same rate for coarse and fine sediment sizes.

Parameters

smooth – integer specifying if the diffusion equation is used for smoothing (1) or for marine deposits (2).

SEDMesh._moveDownstream(vSed, step)[source]

In cases where river sediment fluxes drain into depressions, they might fill the sink completely and overspill or be deposited in it. This function computes the excess of sediment (if any) able to flow dowstream.

Important

The excess sediment volume is then added to the downstream sediment flux (vSed).

Parameters
  • vSed – excess sediment volume array

  • step – downstream distribution step

Returns

excess (boolean set to True is excess sediment fluxes remain to be distributed)

SEDMesh._updateSinks(hl, stype=0)[source]

This function updates depressions elevations based on incoming sediment volumes. The function runs until all inland sediments have reached either a sink which is not completely filled or the open ocean.