Parameters

Here important parameter choices pertinent to running Yelmo will be documented. Each section will outline a specific parameter or set of related parameters. The author of each section and the date last updated will apear in the heading, to maintain traceability in the documentation (since code usually changes over time).

This is a work in progress!

Basal friction

Yelmo includes the representation of several friction laws that all take the form:

where $\beta$ is composed of a coefficient $c_b$ and potentially another contribution that depends on $u_b$ too:

In Yelmo, the field $c_b$ is defined by the variable c_bed and has units of Pa. The term $f(u_b)$ is not output in the model, but it contributes with units of yr m$^{-1}$, so $\beta$ finally has units of Pa yr m$^{-1}$. When multiplied with $u_b$, we arrive at $\tau_b$ with units of Pa.

Yelmo calculates $c_b$ (c_bed) internally as either:

or

This is controlled by the user option ytill.is_angle. If ytill.is_angle=True, then $c_{\rm b,ref}$ (variable cb_ref in the code) is considered as an angle and the latter formulation above is used, following e.g., Bueler and van Pelt (2015). If ytill.is_angle=False, then cb_ref is used as a scalar field directly. In both cases, this field represents the till or basal properties (roughness, etc.) that are rather independent from how the effective pressure $N_{\rm eff}$ (variable N_eff) may be defined.

With the variables formulated as above, it is possible to consider cb_ref as a tunable field that can be adjusted to improve model performance on a given domain. This can be achieved, for example, by performing optimization via the ice_optimization module, which adjusts cb_ref as a function of the mismatch of the simulated ice thickness with a target field. Also, cb_ref can either be optimized as a scalar field itself, or as an angle that is input to ${\rm tan}(c_{\rm b,ref})$ above.

Another possibility is to tune cb_ref as a function of other model or boundary variables. The most common approach is to tune it as as function of the bedrock elevation relative to present-day sea level (e.g., Winkelmann et al., 2011). In Yelmo, this is controlled by the parameter choices in the ytill section, and in particular the parameter ytill.scale=['none','lin','exp']. When ytill.scale='none', no scaling function is applied and then cb_ref=ytill.cf_ref everywhere. When ytill.scale='lin', a linear scaling is applied so that cb_ref goes from ytill.cf_min to ytill.cb_ref for bedrock elevations between ytill.z0 and ytill.z1 (saturating otherwise). Finally, if ytill.scale='exp', an exponential decay function is applied, such that cb_ref=ytill.cf_ref for z_bed >= ytill.z1, and decays following a curve that reaches ~30% of its value at z_bed=ytill.z0. Finally, all values are limited to a minimum value of ytill.cf_min.

Effective pressure

Effective pressure (N_eff, $N_{\rm eff}$) in Yelmo is currently only used in the basal friction formulation as shown above. It provides a mechanism to alter the basal friction as a function of the state of the ice sheet, which is separate from $c_{\rm b,ref}$ (cb_ref), which represents the properties of the bed beneath the ice sheet. The calculation of N_eff can be done with several methods:

yneff.method = [-1,0,1,2,3] -1: Set N_eff external to Yelmo, do not modify it internally. 0: Impose a constant value, N_eff = yneff.const 1: Impose the overburden pressure, N_eff = rho_ice*g*H_ice 2: Calculate N_eff following the Leguy formulation 3: Calculate N_eff as till pressure following Bueler and van Pelt (2015). 4: Calculate N_eff as a 'two-valued' function scaled by f_pmp using yneff.delta.