swiift.lib.att

We model forcing waves as the superposition of damped sine functions, which can be written

\[\eta(x) = \Im\Big[\sum_j \hat{a}_j \exp\big(\hat{k}_jx\big)\Big],\]

with \(\hat{a}_j,\ \hat{k}_j\) respectively the complex amplitude and wavenumber associated with wavemode \(j\). The non-negative imaginary parts of these wavenumbers, \(\alpha_j := \Im \hat{k}_j\), correspond to spatial attenuation rates.

This module exposes parametrisations of the attenuation rates, which are functions implementing existing attenuation schemes. Alternatively, it exposes an interface for users to define attenuation specifications in order to express their own schemes.

Parametrisations

no_attenuation() – No attenuation.

parameterisation_01() – Derived from Sutherland et al. [2019].

parameterisation_yu2022() – Implements Yu et al. [2022].

Specification

TODO

Bibliography

[SRCJ19] (1,2)

Graig Sutherland, Jean Rabault, Kai H Christensen, and Atle Jensen. A two layer model for wave dissipation in sea ice. Applied Ocean Research, 88:111–118, 2019. doi:10.1016/j.apor.2019.03.023.

[YRW22] (1,2,3)

Jie Yu, William Erick Rogers, and David W. Wang. A new method for parameterization of wave dissipation by sea ice. Cold Regions Science and Technology, 199:103582, 2022. doi:10.1016/j.coldregions.2022.103582.

Classes

AttenuationParameterisation

Unique IDs for attenuation parametrisations.

Functions

no_attenuation()

No attenuation.

parameterisation_01(thickness, wavenumbers)

Parametrised attenuation for individual wave modes.

parameterisation_yu2022(thickness, gravity, ...)

Parametrised attenuation for individual wave modes.

Module Contents

swiift.lib.att.no_attenuation()

No attenuation.

Waves propagate indifinitely, as if the ice cover is perfectly elastic and the fluid perfectly inviscid.

Returns:

Amplitude attenuation, in m^-1

Return type:

Literal[0]

Notes

The attenuation is defined as:

\[\alpha_j = 0 \forall j.\]
swiift.lib.att.parameterisation_01(thickness, wavenumbers)

Parametrised attenuation for individual wave modes.

This parametrisation is a simplified form of that of Sutherland et al. [2019].

Parameters:
  • thickness (float) – Ice thickness, in m

  • wavenumbers (np.ndarray) – Propagating wavenumbers, in rad m^-1.

Returns:

Amplitude attenuation, in m^-1.

Return type:

np.ndarray

Notes

The attenuation is defined as:

\[\alpha_j = \frac{1}{4} {k_j}^2 h.\]
swiift.lib.att.parameterisation_yu2022(thickness, gravity, angular_frequencies)

Parametrised attenuation for individual wave modes.

This parametrisation is issued from Yu et al. [2022].

Parameters:
  • thickness (float) – Ice thickness, in m.

  • gravity (float) – Acceleration of gravity, in m s^-2.

  • angular_frequencies (np.ndarray) – Angular frequencies, in rad s^-1.

Returns:

Amplitude attenuation rates, in m^-1.

Return type:

np.ndarray

Notes

The attenuation is defined as:

\[\alpha_j = 0.108 \frac{1}{h}\Bigg(\omega\sqrt{\frac{h}{g}}\Bigg)^{4.46}\]

where the prefactor and exponents were obtained by a best fit to available data [Yu et al., 2022].

Added in version 0.16.0.

class swiift.lib.att.AttenuationParameterisation(*args, **kwds)

Bases: enum.Enum

Unique IDs for attenuation parametrisations.

NO
Type:

defer to no_attenuation.

PARAM_01
Type:

defer to parameterisation_01.

PARAM_YU_2022
Type:

defer to parameterisation_yu2022.