pyissm.tools.geometry
Geometry-related functions for ISSM
This module contains functions to compute geometric properties on ISSM model meshes.
Functions
|
Calculate the effective basal pressure N from md.geometry and the effective pressure coupling rule in md.friction. |
Create a theoretical ice profile at the transition zone based on Sophie Nowicki's thesis. |
|
|
Compute the slope of a given field over the mesh elements. |
- pyissm.tools.geometry.effectivepressure(md, head=None)
Calculate the effective basal pressure N from md.geometry and the effective pressure coupling rule in md.friction.
- Parameters:
md (object) – ISSM model object.
head (array-like, optional) – Hydraulic head at mesh vertices (m). Only used when
md.friction.coupling == 4.
- Returns:
N – Effective pressure at the base (Pa).
- Return type:
ndarray
- Raises:
ValueError – If
coupling == 4andmd.hydrologyis not ahydrologyprescribeinstance and noheadis provided.ValueError – If an unsupported coupling value is given.
Notes
Coupling modes:
0 — Uniform sheet; negative water pressure permitted (default).
1 — Effective pressure equals overburden pressure.
2 — Uniform sheet; water pressure clamped to >= 0.
3 — Prescribed effective pressure from
md.friction.effective_pressure.- 4 — Dynamically coupled to the hydrology model (
md.hydrology.head or a supplied
headarray).
- 4 — Dynamically coupled to the hydrology model (
See also
basalstress
- pyissm.tools.geometry.nowicki_profile(x)
Create a theoretical ice profile at the transition zone based on Sophie Nowicki’s thesis.
- Parameters:
x (array_like) – Along-flow coordinate
- Returns:
b (ndarray) – Ice base
h (ndarray) – Ice thickness
sea (float) – Sea level
- pyissm.tools.geometry.slope(md, field=None)
Compute the slope of a given field over the mesh elements.
- Parameters:
md (object) – Model object containing mesh and geometry information.
field (array-like, optional) – Field values at mesh nodes. If not provided, uses the surface elevation from md.geometry.surface. Default is None.
- Returns:
sx (ndarray) – Slope component in the x-direction at element centers.
sy (ndarray) – Slope component in the y-direction at element centers.
s (ndarray) – Magnitude of the slope at element centers.
- Raises:
NotImplementedError – If the mesh dimension is 3D, as 3D meshes are not yet supported.
Notes
The slope is computed using nodal basis functions N(x, y) = alpha*x + beta*y + gamma. For 2D meshes, elements and coordinates are taken directly from the mesh. For 3D meshes, 2D elements and coordinates are used instead.
Examples
>>> sx, sy, s = slope(md) >>> sx, sy, s = slope(md, field=md.geometry.bed)