ListricKinematicExtender: Simulate Extensional Tectonic Motion on a Listric Fault Plane#

Apply tectonic extension and subsidence kinematically.

Landlab component that simulates development of an asymmetric rift on a listric fault plane.

See notebook tutorial for complete examples.

@author: gtucker

class ListricKinematicExtender(*args, **kwds)[source]#

Bases: Component

Apply tectonic extension and subsidence kinematically to a raster or hex grid.

Extension is east-west, with a north-south fault in the case of a raster grid, and a N30E fault in the case of a hex grid (obique extension).

Examples

>>> from landlab import RasterModelGrid
>>> from landlab.components import ListricKinematicExtender
>>> grid = RasterModelGrid((3, 7), xy_spacing=2500.0)
>>> topo = grid.add_zeros('topographic__elevation', at='node')
>>> lke = ListricKinematicExtender(grid, fault_location=2500.0)
>>> lke.update_subsidence_rate()
>>> np.round(grid.at_node["subsidence_rate"][8:13], 6)
array([ 0.      ,  0.001123,  0.000729,  0.000472,  0.000306])

Deform vertically and horizontally to represent tectonic extension.

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

  • extension_rate (float, optional) – Rate of horizontal motion of hangingwall relative to footwall (m / y), default 1 mm/y.

  • fault_dip (float, optional) – Dip of the fault, degrees (default 45).

  • fault_location (float, optional) – Distance of fault trace from x=0 (m) (default = grid width / 2).

  • detachment_depth (float, optional) – Depth to horizontal detachment (m), default 10 km.

  • track_crustal_thickness (bool, optional) – Option to keep track of changes in crustal thickness (default False)

  • fields_to_shift (list of str, optional) – List of names of fields, in addition to ‘topographic__elevation’ and (if track_crustal_thickness==True) ‘upper_crust_thickness’, that should be shifted horizontally whenever cumulative extension exceeds one cell width. Default empty.

__init__(grid, extension_rate=0.001, fault_dip=60.0, fault_location=None, detachment_depth=10000.0, track_crustal_thickness=False, fields_to_shift=None)[source]#

Deform vertically and horizontally to represent tectonic extension.

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

  • extension_rate (float, optional) – Rate of horizontal motion of hangingwall relative to footwall (m / y), default 1 mm/y.

  • fault_dip (float, optional) – Dip of the fault, degrees (default 45).

  • fault_location (float, optional) – Distance of fault trace from x=0 (m) (default = grid width / 2).

  • detachment_depth (float, optional) – Depth to horizontal detachment (m), default 10 km.

  • track_crustal_thickness (bool, optional) – Option to keep track of changes in crustal thickness (default False)

  • fields_to_shift (list of str, optional) – List of names of fields, in addition to ‘topographic__elevation’ and (if track_crustal_thickness==True) ‘upper_crust_thickness’, that should be shifted horizontally whenever cumulative extension exceeds one cell width. Default empty.

fault_plane_elev(dist_from_fault_trace)[source]#

Return elevation of fault plane at given distance from fault trace.

Examples

>>> from landlab import RasterModelGrid
>>> from landlab.components import ListricKinematicExtender
>>> grid = RasterModelGrid((3, 7), xy_spacing=5000.0)
>>> topo = grid.add_zeros('topographic__elevation', at='node')
>>> lke = ListricKinematicExtender(grid, fault_location=10000.0)
>>> np.round(lke.fault_plane_elev(np.array([0.0, 5000.0, 10000.0])))
array([   -0., -5794., -8231.])
run_one_step(dt)[source]#

Apply extensional motion to grid for one time step.

update_subsidence_rate()[source]#

Update subsidence rate array.