pyissm.tools.materials

Material property functions for ISSM

This module contains functions to compute ice material properties.

Functions

cuffey(temperature)

Compute ice rigidity using the Cuffey parameterization.

nye(temperature, ice_type)

Compute ice rigidity using Nye's flow law.

paterson(temperature)

Compute ice rigidity using the Paterson parameterization.

pyissm.tools.materials.cuffey(temperature)

Compute ice rigidity using the Cuffey parameterization.

Parameters:

temperature (array_like) – Temperature value(s) in Kelvin. Must be non-negative. Scalar or array-like inputs are accepted and will be converted to a NumPy array.

Returns:

rigidity – Array of computed rigidity values with the same shape as temperature. The return dtype is float. Values that are computed as negative are replaced by a floor value of 1e6.

Return type:

ndarray

Raises:

RuntimeError – If any element of temperature is negative (temperatures must be given in Kelvin).

Notes

The implementation converts input temperatures from Kelvin to Celsius and then evaluates a piecewise cubic polynomial fit over several temperature intervals. A temperature-dependent shift is applied within each interval before polynomial evaluation. A global scale factor (1e8) is multiplied by the polynomial result. To ensure physical plausibility, any negative computed rigidity values are replaced with 1e6.

The function preserves the shape of the input (broadcasting rules of NumPy apply) and returns an array of the same shape.

pyissm.tools.materials.nye(temperature, ice_type)

Compute ice rigidity using Nye’s flow law.

Rigidity (s^(1/n) Pa) is the flow-law parameter B in:

sigma = B * epsilon^(1/n)

Parameters:
  • temperature (float or array-like) – Ice temperature in Kelvin.

  • ice_type (int) – 1 = CO2 ice 2 = H2O ice

Returns:

rigidity – Ice rigidity with same shape as temperature.

Return type:

ndarray

pyissm.tools.materials.paterson(temperature)

Compute ice rigidity using the Paterson parameterization.

Parameters:

temperature (array_like) – Temperature value(s) in Kelvin. Must be non-negative. Scalar or array-like inputs are accepted and will be converted to a NumPy array.

Returns:

rigidity – Array of computed rigidity values with the same shape as temperature. The return dtype is float. Values that are computed as negative are replaced by a floor value of 1e6.

Return type:

ndarray

Raises:

RuntimeError – If any element of temperature is negative (temperatures must be given in Kelvin).

Notes

The implementation converts input temperatures from Kelvin to Celsius and then evaluates a piecewise cubic polynomial fit over several temperature intervals. A temperature-dependent shift is applied within each interval before polynomial evaluation. A global scale factor (1e8) is multiplied by the polynomial result. To ensure physical plausibility, any negative computed rigidity values are replaced with 1e6.

The function preserves the shape of the input (broadcasting rules of NumPy apply) and returns an array of the same shape.

Warning

DeprecationWarning

This function is outdated. Use cuffey() instead.