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
.
- 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