sequence.sediment_flexure module#

Subside a SequenceModelGrid using flexure.

class sequence.sediment_flexure.DynamicFlexure(*args, **kwds)[source]#

Bases: Flexure1D

Calculate non-isostatic flexure.

__init__(grid: SequenceModelGrid, isostasytime: float | None = 7000.0, **kwds: dict[str, Any])[source]#

Inherit from this base class for non-isostatic flexure.

Parameters:
  • grid (SequenceModelGrid) – A Landlab grid.

  • isostasytime (float, optional) – The e-folding time for a deflection to reach equilibrium.

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

calc_dynamic_deflection(isostatic_deflection: ndarray[Any, dtype[floating]], dt: float) ndarray[Any, dtype[floating]][source]#

Calculate the non-isostatic deflection.

Parameters:
  • isostatic_deflection (ndarray of float) – The isostatic deflection.

  • dt (float) – Time step over which to subside.

Returns:

deflection – The deflections over the given time step.

Return type:

ndarray of float

static calc_isostasy_fraction(isostasy_time: float | None, dt: float) float[source]#

Calculate the fraction of isostatic subsidence.

Parameters:
  • isostasy_time (float or None) – The time parameter that represente the e-folding time to isostasy. If None, assume isostasy.

  • dt (float) – Time step.

Returns:

Fraction of isostatic subsidence that occurs over the time step.

Return type:

float

property isostasy_time: float | None#

Return the isostasy time.

static validate_isostasy_time(time: float) float[source]#

Validate an isostasy time value.

Parameters:

time (float) – The isostasy time value to validate.

Returns:

The isostasy time value.

Return type:

float

Raises:

ValueError – Raised if the value is invalid.

class sequence.sediment_flexure.SedimentFlexure(*args, **kwds)[source]#

Bases: DynamicFlexure

Landlab component that deflects a SequenceModelGrid due to sediment loading.

__init__(grid: SequenceModelGrid, sand_density: float = 2650, mud_density: float = 2720.0, isostasytime: float | None = 7000.0, water_density: float = 1030.0, **kwds: dict)[source]#

Subside elevations due to sediment loading.

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

  • sand_density (float, optional) – Grain density of the sediment sand-fraction.

  • mud_density (float, optional) – Grain density of the sediment mud-fraction.

  • water_density (float, optional) – Density of water.

  • isostasytime (float, optional) – Response time of the lithosphere to loading.

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

static calc_bulk_density(grain_density: float | ndarray[Any, dtype[floating]], void_density: float | ndarray[Any, dtype[floating]], porosity: float | ndarray[Any, dtype[floating]]) float | ndarray[Any, dtype[floating]][source]#

Calculate the bulk density of a material with a given porosity.

Parameters:
  • grain_density (float) – Density of grains.

  • void_density (float) – Density of material that fills the void space.

  • porosity (float) – The porosity of the mixture.

Returns:

The bulk density of the material.

Return type:

float

property mud_bulk_density: float | ndarray[Any, dtype[floating]]#

Return the bulk density of mud.

property mud_density: float#

Return the density of mud.

run_one_step(dt: float = 1.0) None[source]#

Update the component by a time step.

Parameters:

dt (float, optional) – The time step over which to update the component.

property sand_bulk_density: float | ndarray[Any, dtype[floating]]#

Return the bulk density of sand.

property sand_density: float#

Return the density of sand.

update() None[source]#

Update the component by a single time step.

static validate_density(density: float) float[source]#

Validate a density value.

Parameters:

density (float) – The density value to validate.

Returns:

The density value.

Return type:

float

Raises:

ValueError – Raised if the value is invalid.

property water_density: float#

Return the density of water.

class sequence.sediment_flexure.WaterFlexure(*args, **kwds)[source]#

Bases: DynamicFlexure

Landlab component that deflects a SequenceModelGrid due to water loading.

__init__(grid: SequenceModelGrid, isostasytime: float | None = 7000.0, **kwds: dict)[source]#

Calculate flexural subsidence due to changes in water loading.

Parameters:
  • grid (SequenceModelGrid) – A Landlab grid.

  • isostasytime (float) – The e-folding time for a deflection to reach equilibrium.

  • water_density (float, optional) – Density of water.

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

calc_flexure_due_to_water(change_in_water_depth: ndarray[Any, dtype[floating]], change_in_sea_level: float) ndarray[Any, dtype[floating]][source]#

Calculate flexure due to water loading.

Parameters:
  • change_in_water_depth (ndarray or float) – The change in water depth along the profile causing the deflection.

  • change_in_sea_level (float) – The change in sea level that adds to the deflection.

Returns:

Deflections along the profile caused by the water loading.

Return type:

ndarray of float

calc_half_plane_deflection(load: float) ndarray[Any, dtype[floating]][source]#

Calculate the deflection due to a half-plane load.

Parameters:

load (float) – The added (or removed) load.

Returns:

The deflections along the grid.

Return type:

ndarray

static calc_water_loading(z: ndarray[Any, dtype[floating]], water_density: float) ndarray[Any, dtype[floating]][source]#

Calculate the water load.

run_one_step(dt: float) None[source]#

Update the component by a time step.

Parameters:

dt (float) – The time step over which to update the component.

update() None[source]#

Update the component by a single time step.