landlab.components.flexure.funcs

get_flexure_parameter(eet, youngs, n_dim, gamma_mantle=33000.0)[source]

Calculate the flexure parameter based on some physical constants.

Parameters:
  • eet (float) – Effective elastic thickness of Earth’s crust [m].

  • youngs (float) – Young’s modulus.

  • n_dim (int) – Number of spatial dimensions (1 or 2).

  • gamma_mantle (float) – Speific weight of the mantle [N/m^3].

Returns:

The flexure parameter.

Return type:

float

Examples

>>> from landlab.components.flexure import get_flexure_parameter
>>> eet = 65000.0
>>> youngs = 7e10
>>> alpha = get_flexure_parameter(eet, youngs, 1)
>>> print("%.3f" % round(alpha, 3))
119965.926
>>> alpha = get_flexure_parameter(eet, youngs, 2)
>>> print("%.2f" % alpha)
84828.72
subside_point_load(load, loc, coords, params=None, out=None)[source]

Calculate deflection at points due a point load.

Calculate deflections on a grid, defined by the points in the coords tuple, due to a point load of magnitude load applied at loc.

x and y are the x and y coordinates of each node of the solution grid (in meters). The scalars eet and youngs define the crustal properties.

Parameters:
  • load (float) – Magnitude of the point load.

  • loc (float or tuple) – Location of the load as either a scalar or as (x, y)

  • coords (ndarray) – Array of points to calculate deflections at

  • params (dict-like) – Physical parameters used for deflection calculation. Valid keys are - eet: Effective elastic thickness - youngs: Young’s modulus

  • out (ndarray, optional) – Array to put deflections into.

Returns:

out – Array of deflections.

Return type:

ndarray

Examples

>>> from landlab.components.flexure import subside_point_load
>>> params = dict(eet=65000.0, youngs=7e10)
>>> load = 1e9

Define a unifrom rectilinear grid.

>>> x = np.arange(0, 10000, 100.0)
>>> y = np.arange(0, 5000, 100.0)
>>> (x, y) = np.meshgrid(x, y)
>>> x.shape = (x.size,)
>>> y.shape = (y.size,)

Calculate deflections due to a load applied at position (5000., 2500.).

>>> x = np.arange(0, 10000, 1000.0)
>>> y = np.arange(0, 5000, 1000.0)
>>> (x, y) = np.meshgrid(x, y)
>>> x.shape = (x.size,)
>>> y.shape = (y.size,)
>>> dz = subside_point_load(load, (5000.0, 2500.0), (x, y), params=params)
>>> print("%.5g" % round(dz.sum(), 9))
2.6267e-05
>>> print(round(dz.min(), 9))
5.24e-07
>>> print(round(dz.max(), 9))
5.26e-07
>>> dz = subside_point_load(
...     (1e9, 1e9), ((5000.0, 5000.0), (2500.0, 2500.0)), (x, y), params=params
... )
>>> print(round(dz.min(), 9) / 2.0)
5.235e-07
>>> print(round(dz.max(), 9) / 2.0)
5.265e-07