This repository contains code used to investigate how glacier surges alter glacier thermal structure.
In pursuit of our research objectives, we've employed a thermomechanically coupled numerical ice-flow model, Elmer/Ice
in a 2D (
B_0.00031623_SP_2_QP_28_2--3ka_bitrate_3000_001.mp4
The repository structure is as follows:
├── Makefile # Global makefile used to compile code throughout the repository
├── README.md
├── bin # Folder to hold the compiled code (mainly Elmer user functions)
├── config # Repository wide configuration files
├── expr # Various experiments we conducted using `Elmer/Ice`
├── include # External code used in our analysis
├── input_data # Surface mass balance and topography data need to run `Elmer` simulations
├── notebooks # Collection of jupyter notebooks doing data pre-processing and analysis
├── src # source code folder, containing `Elmer` boundary condition code and more
└── study
To get started first clone the repository by running,
$ git clone [email protected]:andrewdnolan/thermal-structure.git
Then, navigate into the top directory (i.e. cd thermal-strucure
) and compile/install the code by running
$ make
which will execute the global Makefile that compiles external FORTRAN
code from the include
folder, compiles the Elmer
user functions (USF
s) from the src/elmer_src
folder, and builds the legacy NetCDF
post-processing FORTRAN
program contained in the src/elmer2nc
folder.
Finally, you'll also need to run
pip install --editable src/thermal/
which will create a locally editable copy of the python
post-processing library thermal
. thermal
is built around xarray
and dask
to enable efficient, out of memory, and parallel postprocessing of the terabytes of data produced in the various experiments.
If working from a Linux machine, follow the compilation instructions from the Elmer/Ice
documentation. Compiling Elmer/Ice
on non-Linux machines (e.g. OSX
and Windows) is notoriously challenging. To circumvent this problem, I have written a Docker
container. Instructions on how to install the Docker
can be found in the associated readme
. All within code/files in this repository assume the Elmer executables (e.g. ElmerSolver
, ElmerGird
) are available.
Given the computational cost of thermomechanically coupled numerical modeling, most of the model execution has been done on high performance computing (HPC) resources (e.g. Compute Canada's cedar
cluster). Therefore, many of the files various expr
directories are not meant to be run on a local laptop/workstation. That being said, command line scripts to run one-off simulations, which still could take < 24 hours, are available in each of the expr
directories.