sequence.submarine module#

Diffuse sediment along a profile.

class sequence.submarine.SubmarineDiffuser(*args, **kwds)[source]#

Bases: LinearDiffuser

Model sea-floor evolution on a SequenceModelGrid as diffusion.

__init__(grid: SequenceModelGrid, sea_level: float = 0.0, plain_slope: float = 0.0008, wave_base: float = 60.0, shoreface_height: float = 15.0, alpha: float = 0.0005, shelf_slope: float = 0.001, sediment_load: float = 3.0, load_sealevel: float = 0.0, basin_width: float = 500000.0, **kwds: Any)[source]#

Diffuse the ocean bottom.

Parameters:
  • grid (RasterModelGrid) – A landlab grid.

  • sea_level (float, optional) – The current sea level (m).

  • plain_slope (float, optional) – Slope of the delta plain (m / m).

  • wave_base (float, optional) – Wave base (m).

  • shoreface_height (float, optional) – Water depth of the shelf/slope break (m).

  • alpha (float, optional) – Coefficient used to calculate the diffusion coefficient (1 / m).

  • shelf_slope (float, optional) – Slope of the shelf (m / m).

  • sediment_load (float, optional) – Sediment load entering the profile (m2 / y).

  • load_sealevel (float, optional) – Fractional variation of sediment load with sea level (m2/y/m_sl). i.e., .003 =0.3% increase/decrease with sea level rise/fall (30% with 100m)

  • basin_width (float, optional) – Length of drainage basin upstream of model. Creates increase in diffusivity downstream by (basin_width + x) / basin_width from increase river flow (m).

  • **kwds (dict, optional) – Additional keyword arguments that are passed along to LinearDiffuser.

property alpha: float#

Return the alpha parameter.

calc_diffusion_coef(x_of_shore: ndarray[Any, dtype[floating]] | float) ndarray[Any, dtype[floating]][source]#

Calculate and store diffusion coefficient values.

Parameters:

x_of_shore (float) – The x-position of the shoreline.

Examples

The example below tests the result with 3 of the middle-row nodes above sea level and three below, two of which are in deep water (below the default 60 m wave base).

>>> from sequence.grid import SequenceModelGrid
>>> import numpy as np
>>> grid = SequenceModelGrid((1, 6), spacing=(1.0, 200.0))
>>> z = grid.add_zeros("topographic__elevation", at="node")
>>> z[6:12] = np.array([3., 3., 1., -1., -85., -85.])
>>> z.reshape((3, 6))
array([[  0.,   0.,   0.,   0.,   0.,   0.],
       [  3.,   3.,   1.,  -1., -85., -85.],
       [  0.,   0.,   0.,   0.,   0.,   0.]])
>>> submarine_diffuser = SubmarineDiffuser(grid, basin_width=0.0)
>>> diffusion_coef = submarine_diffuser.calc_diffusion_coef(x_of_shore=500.0)
>>> np.round(diffusion_coef.reshape((3, 6))[1])
array([ 3750.,  3750.,  3750.,   333.,    11.,    16.])

The calculated diffusion coefficient is also saved as an at-node field.

>>> diffusion_coef is grid.at_node["kd"]
True
property k_land: float#

Return the diffusion coefficient use for land.

property load0: float#

Return the sediment load entering the profile.

property plain_slope: float#

Return the gradient of the delta plain.

run_one_step(dt: float) None[source]#

Advance component one time step.

Parameters:

dt (float) – Time step to advance component by.

property sea_level: float#

Return sea level elevation.

property sediment_load: float#

Return the sediment load entering the profile.

property shelf_slope: float#

Return the slope of the shelf.

property shoreface_height: float#

Return the height of the shoreface.

property time: float#

Return the component’s current time.

property wave_base: float#

Return the depth of the wave base.