Skip to content
Hilmar Gudmundsson edited this page May 23, 2024 · 48 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 (hilmar.gudmundsson@northumbria.ac.uk).

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. No special toolboxes are required, however, some optional features can only be used with toolboxes such as the Optimisation and the Machine Learning toolboxes.

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.

You can, for example, do this from the Matlab command line as:

 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\Hilmar\Ua\UaSource

then add that folder to the matlab path as:

 addpath(genpath('C:\Users\Hilmar\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.

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

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.11.1-Windows')

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