Skip to content
Hilmar Gudmundsson edited this page Aug 3, 2024 · 51 revisions

Úa

A finite-element ice-flow model.

Úa is a finite-element ice-flow model developed at the University of Northumbria, Newcastle, UK, by Hilmar Gudmundsson ([email protected]).

A week-long international user meeting and workshop is held annually. Next meeting is sceduled for 12-15 August, 2025. see: https://www.igsoc.org/event/the-annual-international-ua-user-meeting-2024

DOI

Examples of simulations using this code can be found in our YouTube channel.

Brief model description.

The model is based on a vertically integrated formulation of the momentum equations and can be used to simulate the flow of large ice sheets such as the Antarctic and the Greenland Ice Sheets, ice caps and mountain glaciers.

The ice-flow equations are solved on an unstructured mesh consisting of linear, quadratic or cubic triangular elements. Various meshing options are available, including automated mesh refinement and coarsening. When simulating the flow of marine ice sheets these meshing options allow, for example, the areas around grounding lines to be automatically highly resolved as the grounding-lines migrate through the computational domain. Elements can be activated and deactivated. This enables the computational domain itself to change in the course of a run, for example when simulating the growth and decay of a large group of mountain glaciers.

Inversion for model parameters is done using the adjoint method. Both Bayesian and Tikhonov formulations are supported, and the inversion can be done over either nodes or elements.

Ice-thickness positivity is enforced using the active set-method.

By default torward time integration is done in a fully coupled manner with respect to both velocities and ice thickness, and the resulting non-linear system is solved simultaneously with respect to velocities and ice thickness using the Newton-Raphson method.

A technical manual, the Úa Compendium, provides a description of various mathematical and technical aspects of the model.

Installing Úa

The code is written in Matlab and to run the model you need a Matlab installation. Generally users should also install the following Matlab toolboxes:

  • Statistics and Machine Learning Toolbox
  • Optimization Toolbox
  • Parallel Computing Toolbox

Installing Úa is as simple as copying the source files into a folder and then adding that folder, and its sub-folders, to the Matlab path.

There are many different ways of copying/cloning a repository from GitHub. You can for example download it as zip file.
While not strictly necessary, it is presumably best to have git installed locally. You can install git from:

 https://git-scm.com/downloads

You can the write on the git command line:

 git clone https://github.com/GHilmarG/UaSource.git

To add the Ua source folder to the MATLAB path, from the command line enter:

 addpath(genpath('MyUaSourceFileFolder'))

So for example if you have cloned the source directory from github into a local folder on your own computer with the name:

 C:\Users\Me\Ua\UaSource

then add that folder to the matlab path as:

 addpath(genpath('C:\Users\Me\Ua\UaSource')

You can quickly test if everything is OK by going into the UaSource directory and at the matlab command line do:

Ua [return]

Note: Úa uses the mesh generator 'mesh2d' and no further steps are required if you just want to use that mesh generator.

External mesh generator

If in addition to 'mesh2d' you also want to use the external mesh generator `gmsh' then define the Matlab environmental variable 'GmshHomeDirectory' as:

setenv('GmshHomeDirectory','MyDrive/Ua/Source/gmsh-4.13.1-Windows')

Again, most users do NOT use gmsh, but use mesh2d instead.

Running Úa

You run Úa from the Matlab command line by writing:

Ua [Ret]

All run-specific input files should be in the local directory.

Getting help

You can get help on the use of Úa in the same way as you would get help on various in-build matlab commands by writing

 help Ua  

in the matlab command line, or

doc Ua 

Most m-files that are part of the Ua program have some inbuild help text, for example try

doc Ua2D_DefaultParameters