pyissm.model.classes.friction

Friction classes for ISSM.

Classes

coulomb([other])

Coulomb friction class for ISSM.

coulomb2([other])

Coulomb2 friction class for ISSM.

default([other])

Default friction class for ISSM.

hydro([other])

Hydro friction class for ISSM.

josh([other])

Josh friction class for ISSM.

pism([other])

PISM friction class for ISSM.

regcoulomb([other])

Regularized Coulomb friction class for ISSM.

regcoulomb2([other])

Regularized Coulomb 2 friction class for ISSM.

schoof([other])

Schoof friction class for ISSM.

shakti([other])

Shakti friction class for ISSM.

waterlayer([other])

Waterlayer friction class for ISSM.

weertman([other])

Weertman friction class for ISSM.

class pyissm.model.classes.friction.coulomb(other=None)

Bases: manage_state

Coulomb friction class for ISSM.

This class contains the parameters for the Coulomb friction law in the ISSM framework. It defines the main friction-related parameters specific to the Coulomb law.

Parameters:

other (any, optional) – Any other class object that contains common fields to inherit from. If values in other differ from default values, they will override the default values.

coefficient

Power law (Weertman) friction coefficient [SI].

Type:

numpy.ndarray, default=np.nan

coefficientcoulomb

Coulomb friction coefficient [SI].

Type:

numpy.ndarray, default=np.nan

p

p exponent.

Type:

numpy.ndarray, default=np.nan

q

q exponent.

Type:

numpy.ndarray, default=np.nan

coupling

Coupling flag: 0 for default, 1 for forcing (provide md.friction.effective_pressure), 2 for coupled (not implemented yet).

Type:

int, default=0

effective_pressure

Effective Pressure for the forcing if not coupled [Pa].

Type:

numpy.ndarray, default=np.nan

effective_pressure_limit

Neff do not allow to fall below a certain limit: effective_pressure_limit * rho_ice * g * thickness (default 0).

Type:

numpy.ndarray, default=0

Examples

>>> md.friction = pyissm.model.classes.friction.coulomb()
check_consistency(md, solution, analyses)

Check consistency of the [friction.coulomb] parameters.

Parameters:
  • md (pyissm.model.Model) – The model object to check.

  • solution (str) – The solution name to check.

  • analyses (list of str) – List of analyses to check consistency for.

Returns:

md – The model object with any consistency errors noted.

Return type:

pyissm.model.Model

marshall_class(fid, prefix, md=None)

Marshall [friction.coulomb] parameters to a binary file.

Parameters:
  • fid (file object) – The file object to write the binary data to.

  • prefix (str) – Prefix string used for data identification in the binary file.

  • md (pyissm.model.Model, optional) – ISSM model object needed in some cases.

Return type:

None

class pyissm.model.classes.friction.coulomb2(other=None)

Bases: manage_state

Coulomb2 friction class for ISSM.

This class contains the parameters for the Coulomb2 friction law in the ISSM framework. It defines the main friction-related parameters specific to the Coulomb2 law.

Parameters:

other (any, optional) – Any other class object that contains common fields to inherit from. If values in other differ from default values, they will override the default values.

coefficient

Power law (Weertman) friction coefficient [SI].

Type:

numpy.ndarray, default=np.nan

coefficientcoulomb

Coulomb friction coefficient [SI].

Type:

numpy.ndarray, default=np.nan

p

p exponent.

Type:

numpy.ndarray, default=np.nan

q

q exponent.

Type:

numpy.ndarray, default=np.nan

coupling

Coupling flag: 0 for default, 1 for forcing (provide md.friction.effective_pressure), 2 for coupled (not implemented yet).

Type:

int, default=0

effective_pressure

Effective Pressure for the forcing if not coupled [Pa].

Type:

numpy.ndarray, default=np.nan

effective_pressure_limit

Neff do not allow to fall below a certain limit: effective_pressure_limit * rho_ice * g * thickness (default 0).

Type:

numpy.ndarray, default=0

Examples

>>> md.friction = pyissm.model.classes.friction.coulomb2()
check_consistency(md, solution, analyses)

Check consistency of the [friction.coulomb2] parameters.

Parameters:
  • md (pyissm.model.Model) – The model object to check.

  • solution (str) – The solution name to check.

  • analyses (list of str) – List of analyses to check consistency for.

Returns:

md – The model object with any consistency errors noted.

Return type:

pyissm.model.Model

marshall_class(fid, prefix, md=None)

Marshall [friction.coulomb2] parameters to a binary file.

Parameters:
  • fid (file object) – The file object to write the binary data to.

  • prefix (str) – Prefix string used for data identification in the binary file.

  • md (pyissm.model.Model, optional) – ISSM model object needed in some cases.

Return type:

None

class pyissm.model.classes.friction.default(other=None)

Bases: manage_state

Default friction class for ISSM.

This class contains the parameters for the default (Budd) friction law in the ISSM framework. It defines the main friction-related parameters specific to the Budd law.

Parameters:

other (any, optional) – Any other class object that contains common fields to inherit from. If values in other differ from default values, they will override the default values.

coefficient

Friction coefficient [SI].

Type:

nump.ndarray, default=np.nan

p

p exponent.

Type:

nump.ndarray, default=np.nan

q

q exponent.

Type:

nump.ndarray, default=np.nan

coupling

Coupling flag 0: uniform sheet (negative pressure ok, default), 1: ice pressure only, 2: water pressure assuming uniform sheet (no negative pressure), 3: use provided effective_pressure, 4: used coupled model (not implemented yet).

Type:

int, default=0

linearize

0: not linearized, 1: interpolated linearly, 2: constant per element (default is 0).

Type:

int, default=0

effective_pressure

Effective Pressure for the forcing if not coupled [Pa].

Type:

nump.ndarray, default=np.nan

effective_pressure_limit

Neff do not allow to fall below a certain limit: effective_pressure_limit * rho_ice * g * thickness (default 0).

Type:

nump.ndarray, default=0

Examples

>>> md.friction = pyissm.model.classes.friction.default()
check_consistency(md, solution, analyses)

Check consistency of the [friction.default] parameters.

Parameters:
  • md (pyissm.model.Model) – The model object to check.

  • solution (str) – The solution name to check.

  • analyses (list of str) – List of analyses to check consistency for.

Returns:

md – The model object with any consistency errors noted.

Return type:

pyissm.model.Model

marshall_class(fid, prefix, md=None)

Marshall [friction.default] parameters to a binary file.

Parameters:
  • fid (file object) – The file object to write the binary data to.

  • prefix (str) – Prefix string used for data identification in the binary file.

  • md (pyissm.model.Model, optional) – ISSM model object needed in some cases.

Return type:

None

class pyissm.model.classes.friction.hydro(other=None)

Bases: manage_state

Hydro friction class for ISSM.

This class contains the parameters for the hydro (Gagliardini 2007) friction law in the ISSM framework. It defines the main friction-related parameters specific to the hydro law.

Parameters:

other (any, optional) – Any other class object that contains common fields to inherit from. If values in other differ from default values, they will override the default values.

coupling

Coupling flag 0: uniform sheet (negative pressure ok, default), 1: ice pressure only, 2: water pressure assuming uniform sheet (no negative pressure), 3: use provided effective_pressure, 4: use coupled model (not implemented yet).

Type:

int, default=0

q

Friction law exponent q >= 1.

Type:

numpy.ndarray, default=np.nan

C

Friction law max value (Iken bound).

Type:

numpy.ndarray, default=np.nan

As

Sliding parameter without cavitation [m Pa^-n s^-1].

Type:

numpy.ndarray, default=np.nan

effective_pressure

Effective Pressure for the forcing if not coupled [Pa].

Type:

numpy.ndarray, default=np.nan

effective_pressure_limit

Neff do not allow to fall below a certain limit: effective_pressure_limit * rho_ice * g * thickness (default 0).

Type:

numpy.ndarray, default=0

Examples

>>> md.friction = pyissm.model.classes.friction.hydro()
check_consistency(md, solution, analyses)

Check consistency of the [friction.hydro] parameters.

Parameters:
  • md (pyissm.model.Model) – The model object to check.

  • solution (str) – The solution name to check.

  • analyses (list of str) – List of analyses to check consistency for.

Returns:

md – The model object with any consistency errors noted.

Return type:

pyissm.model.Model

marshall_class(fid, prefix, md=None)

Marshall [friction.hydro] parameters to a binary file.

Parameters:
  • fid (file object) – The file object to write the binary data to.

  • prefix (str) – Prefix string used for data identification in the binary file.

  • md (pyissm.model.Model, optional) – ISSM model object needed in some cases.

Return type:

None

class pyissm.model.classes.friction.josh(other=None)

Bases: manage_state

Josh friction class for ISSM.

This class contains the parameters for the Josh friction law in the ISSM framework. It defines the main friction-related parameters specific to the Josh law.

Parameters:

other (any, optional) – Any other class object that contains common fields to inherit from. If values in other differ from default values, they will override the default values.

coefficient

Friction coefficient [SI].

Type:

numpy.ndarray, default=np.nan

pressure_adjusted_temperature

Friction pressure_adjusted_temperature (T - Tpmp) [K].

Type:

numpy.ndarray, default=np.nan

gamma

(T - Tpmp)/gamma [K].

Type:

numpy.ndarray, default=1.

effective_pressure_limit

Neff do not allow to fall below a certain limit: effective_pressure_limit * rho_ice * g * thickness (default 0).

Type:

numpy.ndarray, default=0

coefficient_max

effective friction C = min(coefficient_max, sqrt(exp(T_b(modern) - T_b(t))/gamma) * coefficient)

Type:

float, default=300.

Examples

>>> md.friction = pyissm.model.classes.friction.josh()
check_consistency(md, solution, analyses)

Check consistency of the [friction.josh] parameters.

Parameters:
  • md (pyissm.model.Model) – The model object to check.

  • solution (str) – The solution name to check.

  • analyses (list of str) – List of analyses to check consistency for.

Returns:

md – The model object with any consistency errors noted.

Return type:

pyissm.model.Model

marshall_class(fid, prefix, md=None)

Marshall [friction.josh] parameters to a binary file.

Parameters:
  • fid (file object) – The file object to write the binary data to.

  • prefix (str) – Prefix string used for data identification in the binary file.

  • md (pyissm.model.Model, optional) – ISSM model object needed in some cases.

Return type:

None

class pyissm.model.classes.friction.pism(other=None)

Bases: manage_state

PISM friction class for ISSM.

This class contains the parameters for the PISM friction law in the ISSM framework. It defines the main friction-related parameters specific to the PISM law.

Parameters:

other (any, optional) – Any other class object that contains common fields to inherit from. If values in other differ from default values, they will override the default values.

pseudoplasticity_exponent

Pseudoplasticity exponent [dimensionless].

Type:

float, default=0.6

threshold_speed

Threshold speed [m/yr].

Type:

float, default=100.

delta

Lower limit of the effective pressure, expressed as a fraction of overburden pressure [dimensionless].

Type:

float, default=0.02

void_ratio

Void ratio at a reference effective pressure [dimensionless].

Type:

float, default=0.69

till_friction_angle

Till friction angle [deg], recommended default: 30 deg.

Type:

float, default=np.nan

sediment_compressibility_coefficient

Coefficient of compressibility of the sediment [dimensionless], recommended default: 0.12.

Type:

float, default=np.nan

Examples

>>> md.friction = pyissm.model.classes.friction.pism()
check_consistency(md, solution, analyses)

Check consistency of the [friction.pism] parameters.

Parameters:
  • md (pyissm.model.Model) – The model object to check.

  • solution (str) – The solution name to check.

  • analyses (list of str) – List of analyses to check consistency for.

Returns:

md – The model object with any consistency errors noted.

Return type:

pyissm.model.Model

marshall_class(fid, prefix, md=None)

Marshall [friction.pism] parameters to a binary file.

Parameters:
  • fid (file object) – The file object to write the binary data to.

  • prefix (str) – Prefix string used for data identification in the binary file.

  • md (pyissm.model.Model, optional) – ISSM model object needed in some cases.

Return type:

None

class pyissm.model.classes.friction.regcoulomb(other=None)

Bases: manage_state

Regularized Coulomb friction class for ISSM.

This class contains the parameters for the regularized Coulomb friction law (Joughin et al., 2019) in the ISSM framework. It defines the main friction-related parameters specific to the regularized Coulomb law.

Parameters:

other (any, optional) – Any other class object that contains common fields to inherit from. If values in other differ from default values, they will override the default values.

C

Friction coefficient [SI].

Type:

float or numpy.ndarray, default=np.nan

u0

Velocity controlling plastic limit.

Type:

float or numpy.ndarray, default=1000

m

m exponent (set to m = 3 in original paper).

Type:

float or numpy.ndarray, default=np.nan

Examples

>>> md.friction = pyissm.model.classes.friction.regcoulomb()
check_consistency(md, solution, analyses)

Check consistency of the [friction.regcoulomb] parameters.

Parameters:
  • md (pyissm.model.Model) – The model object to check.

  • solution (str) – The solution name to check.

  • analyses (list of str) – List of analyses to check consistency for.

Returns:

md – The model object with any consistency errors noted.

Return type:

pyissm.model.Model

marshall_class(fid, prefix, md=None)

Marshall [friction.regcoulomb] parameters to a binary file.

Parameters:
  • fid (file object) – The file object to write the binary data to.

  • prefix (str) – Prefix string used for data identification in the binary file.

  • md (pyissm.model.Model, optional) – ISSM model object needed in some cases.

Return type:

None

class pyissm.model.classes.friction.regcoulomb2(other=None)

Bases: manage_state

Regularized Coulomb 2 friction class for ISSM.

This class contains the parameters for the regularized Coulomb 2 friction law (see Zoet and Iverson 2020 or Choi et al., 2022) in the ISSM framework. It defines the main friction-related parameters specific to the regularized Coulomb 2 law.

Parameters:

other (any, optional) – Any other class object that contains common fields to inherit from. If values in other differ from default values, they will override the default values.

C

Friction coefficient [SI].

Type:

numpy.ndarray, default=np.nan

K

K parameter for velocity controlling plastic limit.

Type:

numpy.ndarray, default=np.nan

m

m exponent.

Type:

numpy.ndarray, default=np.nan

effective_pressure_limit

Neff do not allow to fall below a certain limit: effective_pressure_limit * rho_ice * g * thickness (default 0).

Type:

float, default=0

Examples

>>> md.friction = pyissm.model.classes.friction.regcoulomb2()
check_consistency(md, solution, analyses)

Check consistency of the [friction.regcoulomb2] parameters.

Parameters:
  • md (pyissm.model.Model) – The model object to check.

  • solution (str) – The solution name to check.

  • analyses (list of str) – List of analyses to check consistency for.

Returns:

md – The model object with any consistency errors noted.

Return type:

pyissm.model.Model

marshall_class(fid, prefix, md=None)

Marshall [friction.regcoulomb2] parameters to a binary file.

Parameters:
  • fid (file object) – The file object to write the binary data to.

  • prefix (str) – Prefix string used for data identification in the binary file.

  • md (pyissm.model.Model, optional) – ISSM model object needed in some cases.

Return type:

None

class pyissm.model.classes.friction.schoof(other=None)

Bases: manage_state

Schoof friction class for ISSM.

This class contains the parameters for the Schoof sliding law in the ISSM framework. It defines the main friction-related parameters specific to the Schoof law.

Parameters:

other (any, optional) – Any other class object that contains common fields to inherit from. If values in other differ from default values, they will override the default values.

C

Friction coefficient [SI].

Type:

numpy.ndarray, default=np.nan

Cmax

Iken’s bound (typically between 0.17 and 0.84) [SI].

Type:

numpy.ndarray, default=np.nan

m

m exponent (generally taken as m = 1/n = 1/3).

Type:

numpy.ndarray, default=np.nan

coupling

Coupling flag 0: uniform sheet (negative pressure ok, default), 1: ice pressure only, 2: water pressure assuming uniform sheet (no negative pressure), 3: use provided effective_pressure, 4: used coupled model (not implemented yet).

Type:

int, default=0

effective_pressure

Effective Pressure for the forcing if not coupled [Pa].

Type:

numpy.ndarray, default=np.nan

effective_pressure_limit

Neff do not allow to fall below a certain limit: effective_pressure_limit * rho_ice * g * thickness (default 0).

Type:

float, default=0

Examples

>>> md.friction = pyissm.model.classes.friction.schoof()
check_consistency(md, solution, analyses)

Check consistency of the [friction.schoof] parameters.

Parameters:
  • md (pyissm.model.Model) – The model object to check.

  • solution (str) – The solution name to check.

  • analyses (list of str) – List of analyses to check consistency for.

Returns:

md – The model object with any consistency errors noted.

Return type:

pyissm.model.Model

marshall_class(fid, prefix, md=None)

Marshall [friction.schoof] parameters to a binary file.

Parameters:
  • fid (file object) – The file object to write the binary data to.

  • prefix (str) – Prefix string used for data identification in the binary file.

  • md (pyissm.model.Model, optional) – ISSM model object needed in some cases.

Return type:

None

class pyissm.model.classes.friction.shakti(other=None)

Bases: manage_state

Shakti friction class for ISSM.

This class contains the parameters for the Shakti friction law in the ISSM framework. It defines the main friction-related parameters specific to the Shakti law.

Parameters:

other (any, optional) – Any other class object that contains common fields to inherit from. If values in other differ from default values, they will override the default values.

coefficient

Friction coefficient [SI].

Type:

numpy.ndarray, default=np.nan

Examples

>>> md.friction = pyissm.model.classes.friction.shakti()
check_consistency(md, solution, analyses)

Check consistency of the [friction.shakti] parameters.

Parameters:
  • md (pyissm.model.Model) – The model object to check.

  • solution (str) – The solution name to check.

  • analyses (list of str) – List of analyses to check consistency for.

Returns:

md – The model object with any consistency errors noted.

Return type:

pyissm.model.Model

marshall_class(fid, prefix, md=None)

Marshall [friction.shakti] parameters to a binary file.

Parameters:
  • fid (file object) – The file object to write the binary data to.

  • prefix (str) – Prefix string used for data identification in the binary file.

  • md (pyissm.model.Model, optional) – ISSM model object needed in some cases.

Return type:

None

class pyissm.model.classes.friction.waterlayer(other=None)

Bases: manage_state

Waterlayer friction class for ISSM.

This class contains the parameters for the waterlayer friction law in the ISSM framework. It defines the main friction-related parameters specific to the waterlayer law.

Parameters:

other (any, optional) – Any other class object that contains common fields to inherit from. If values in other differ from default values, they will override the default values.

coefficient

Friction coefficient [SI].

Type:

numpy.ndarray, default=np.nan

f

f variable for effective pressure.

Type:

numpy.ndarray, default=np.nan

p

p exponent.

Type:

numpy.ndarray, default=np.nan

q

q exponent.

Type:

numpy.ndarray, default=np.nan

water_layer

Water thickness at the base of the ice (m).

Type:

numpy.ndarray, default=np.nan

Examples

>>> md.friction = pyissm.model.classes.friction.waterlayer()
check_consistency(md, solution, analyses)

Check consistency of the [friction.waterlayer] parameters.

Parameters:
  • md (pyissm.model.Model) – The model object to check.

  • solution (str) – The solution name to check.

  • analyses (list of str) – List of analyses to check consistency for.

Returns:

md – The model object with any consistency errors noted.

Return type:

pyissm.model.Model

marshall_class(fid, prefix, md=None)

Marshall [friction.waterlayer] parameters to a binary file.

Parameters:
  • fid (file object) – The file object to write the binary data to.

  • prefix (str) – Prefix string used for data identification in the binary file.

  • md (pyissm.model.Model, optional) – ISSM model object needed in some cases.

Return type:

None

class pyissm.model.classes.friction.weertman(other=None)

Bases: manage_state

Weertman friction class for ISSM.

This class contains the parameters for the Weertman sliding law in the ISSM framework. It defines the main friction-related parameters specific to the Weertman law.

Parameters:

other (any, optional) – Any other class object that contains common fields to inherit from. If values in other differ from default values, they will override the default values.

C

Friction coefficient [SI].

Type:

numpy.ndarray, default=np.nan

m

m exponent.

Type:

numpy.ndarray, default=np.nan

linearize

0: not linearized, 1: interpolated linearly, 2: constant per element (default is 0).

Type:

int, default=0

Examples

>>> md.friction = pyissm.model.classes.friction.weertman()
check_consistency(md, solution, analyses)

Check consistency of the [friction.weertman] parameters.

Parameters:
  • md (pyissm.model.Model) – The model object to check.

  • solution (str) – The solution name to check.

  • analyses (list of str) – List of analyses to check consistency for.

Returns:

md – The model object with any consistency errors noted.

Return type:

pyissm.model.Model

marshall_class(fid, prefix, md=None)

Marshall [friction.weertman] parameters to a binary file.

Parameters:
  • fid (file object) – The file object to write the binary data to.

  • prefix (str) – Prefix string used for data identification in the binary file.

  • md (pyissm.model.Model, optional) – ISSM model object needed in some cases.

Return type:

None