Geoscientific Model Development (Jul 2021)

icepack: a new glacier flow modeling package in Python, version 1.0

  • D. R. Shapero,
  • J. A. Badgeley,
  • A. O. Hoffman,
  • I. R. Joughin

DOI
https://doi.org/10.5194/gmd-14-4593-2021
Journal volume & issue
Vol. 14
pp. 4593 – 4616

Abstract

Read online

We introduce a new software package called “icepack” for modeling the flow of glaciers and ice sheets. The icepack package is built on the finite element modeling library Firedrake, which uses the Unified Form Language (UFL), a domain-specific language embedded into Python for describing weak forms of partial differential equations. The diagnostic models in icepack are formulated through action principles that are specified in UFL. The components of each action functional can be substituted for different forms of the user's choosing, which makes it easy to experiment with the model physics. The action functional itself can be used to define a solver convergence criterion that is independent of the mesh and requires little tuning on the part of the user. The icepack package includes the 2D shallow ice and shallow stream models. We have also defined a 3D hybrid model based on spectral semi-discretization of the Blatter–Pattyn equations. Finally, icepack includes a Gauss–Newton solver for inverse problems that runs substantially faster than the Broyden–Fletcher–Goldfarb–Shanno (BFGS) method often used in the glaciological literature. The overall design philosophy of icepack is to be as usable as possible for a wide a swath of the glaciological community, including both experts and novices in computational science.