Icepack is a Python library for modeling the flow of glaciers and ice sheets. The main functionality it provides is a set of routines for solving certain nonlinear partial differential equations that describe the ice thickness, velocity, temperature, and other fields. To implement these solvers, icepack uses the finite element analysis package firedrake.

To use icepack, you’ll need to have some familiarity with Python. If you’ve never used Python, this wikibook is a good resource. If you’re mainly familiar with Matlab, this guide will help you get acquainted with NumPy.

We do not expect that most users are already familiar with firedrake, which icepack is built on. See the firedrake documentation and especially the tutorial notebooks for an introduction. Firedrake makes it very easy to do computational physics, even if you’re not an expert in numerical methods.

See the installation page for how to build icepack on your computer. From there you can read and run our tutorials to see all the things icepack can do. The tutorials are interactive jupyter notebooks. The code samples on this website are taken directly from the demos in the icepack source directory, so you can run them interactively on your own machine too. Some of the tutorials use real data, for which you’ll need an account with NASA EarthData.