Module thk
This IGM module solves the mass conservation equation for ice to update the thickness based on ice flow (computed by the iceflow module) and surface mass balance (provided by any module that updates smb). The equation is solved using an explicit first-order upwind finite-volume scheme on the 2D working grid. This scheme allows ice mass to move between cells (where thickness and velocities are defined) using edge-defined fluxes (calculated from depth-averaged velocities and ice thickness in the upwind direction).
The scheme is mass-conservative and parallelizable due to its fully explicit nature. However, it is subject to a CFL condition, meaning the time step (defined in the time module) is constrained by the parameter processes.time.cfl. This parameter represents the maximum number of cells crossed in one iteration and cannot exceed one. For more details, refer to the documentation of the time module. Additional information about the scheme can be found in the following paper: (Jouvet et al., 2021)1.
Contributors: Guillaume Cordonnier, Guillaume Jouvet.
Parameters
Default configuration file (thk.yaml):
thk:
slope_type: superbee # limiter used in stock mode (calving_front: false)
ratio_density: 0.910 # rho_ice / rho_water for flotation
calving_front: false # true -> enable method below; false -> plain thk
method: sub_grid # sub_grid (Albrecht/PISM) | level_set
front_slope_type: godunov # limiter at the front band; godunov avoids pile-up
interior_slope_type: superbee # limiter in deep bulk; equal to front disables hybrid
only_marine: true # restrict calving to cells with topg < water_level
extend_halo: 2 # iceflow-facing thk padding width; 0 = partial cells only
extend_thresh: 0.95 # halo cells below interior_mean*thresh get padded
sub_grid:
href_cap_factor: 2.0 # Href cap = factor * H_threshold (kills cold-start bursts)
promote_iters: 5 # passes of partial-cell -> full promotion per outer step
calve_cliff: true # drain thk at front full cells -> actual retreat mechanism
level_set: # Bondzio 2016 / ISSM
only_near_front: false # Gaussian-damp calving forcing away from psi=0
band_cells: 3 # width of that Gaussian, in cells
reinit_freq: 5 # Sussman reinit every N outer steps (0 = never)
reinit_iter: 5 # pseudo-time iterations per reinit
reinit_iter_initial: 50 # iterations for the initial psi build from +/-dx mask
phi_eps: 1.0e-3 # floor on phi when recovering thk = M / phi
cap_partial: false # clip partial-cell thk to interior mean (lossy)
Description of the parameters:
| Name | Description | Default value | Units |
|---|---|---|---|
slope_type
|
Type of slope limiter for the ice thickness equation (godunov or superbee). Used in stock mode (`calving_front: false`). | superbee | — |
ratio_density
|
Density of ice divided by density of water (used by the flotation term). | 0.91 | — |
calving_front
|
False | ||
method
|
sub_grid | ||
front_slope_type
|
godunov | ||
interior_slope_type
|
superbee | ||
only_marine
|
True | ||
extend_halo
|
2 | ||
extend_thresh
|
0.95 |
sub_grid
| Name | Description | Default value | Units |
|---|---|---|---|
sub_grid.href_cap_factor
|
2.0 | ||
sub_grid.promote_iters
|
5 | ||
sub_grid.calve_cliff
|
True |
level_set
| Name | Description | Default value | Units |
|---|---|---|---|
level_set.only_near_front
|
False | ||
level_set.band_cells
|
3 | ||
level_set.reinit_freq
|
5 | ||
level_set.reinit_iter
|
5 | ||
level_set.reinit_iter_initial
|
50 | ||
level_set.phi_eps
|
0.001 | ||
level_set.cap_partial
|
False |
-
Jouvet, G., Cordonnier, G., Kim, B., Lüthi, M., Vieli, A., & Aschwanden, A. (2021). Deep learning speeds up ice flow modelling by several orders of magnitude. Journal of Glaciology, 68(270), 651--664. https://doi.org/10.1017/jog.2021.120 ↩