Skip to content

EdiGlacUQ/fenics_ice

Repository files navigation

FEniCS_ice

FEniCS_ice is a finite element model framework, that quantifies the initialization uncertainty for time-dependent ice sheet models.

FEniCS_ice is a Python code intended for Bayesian quantification of uncertainty of large-scale parameter sets within an ice-sheet flow model. The implementation consist of a combination of data assimilation and bayesian inference. This involves 1) inferring unobserved model parameters from data; 2) determining the uncertainty of the inferred model parameters; 3) running the forward model to make a prediction about a quantity of interest (e.g. ice mass loss); 4) Propagating the uncertainty in the inferred parameters to the model prediction.

The code contains a dynamic solver for ice-sheet flow which implements the Shallow-Shelf Approximation (MacAyeal et al, 1989.) and approximates parameter covariance using a low-rank approximation to the inverse of the cost-function Hessian. The code uses Algorithmic Differentiation to find sensitivity of time-evolving Quantities of Interest to parameter sets, allowing projections of parameter uncertainty forward in time.

Installation, documentation

The documentation website is currently in construction, but there is a User guide and a basic installation info below.

Conda installation:

  1. Clone the repository:

    git clone https://github.com/EdiGlacUQ/fenics_ice.git
    

2. To install via Conda use install.sh, this script will install and test FEniCS_ice. Be sure to set CONDA_HOME before installing, and add the line below to your .bashrc:

export FENICS_ICE_BASE_DIR="/path/to/fenics_ice/repo"
  1. Run install.sh.

  2. Run all serial tests:

    pytest -v --order-scope=module --color=yes
    
  3. Run all parallel tests:

    mpirun -n 2 pytest -v --order-scope=module --color=yes
    

Install via Mamba:

  1. Clone the repository and create Mamba environment:

    cd fenics_ice
    mamba env create -f environment.yml
    pip install -e .
    

Make sure the environment "fenics_ice" is activated.

  1. Install tlm_adjoint:

    git clone https://github.com/EdiGlacUQ/tlm_adjoint.git
    cd tlm_adjoint
    pip install -e .
    
  2. Run all serial tests:

    pytest -v --order-scope=module --color=yes
    
  3. Run all parallel tests:

    mpirun -n 2 pytest -v --order-scope=module --color=yes
    

Code source

About

Version:Pypi version
Citation:GMD Paper Zenodo
Tests:Linux build status
License:GNU LGPL version 3
Authors:

See the link for a list of all contributors.

About

No description, website, or topics provided.

Resources

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING

Stars

Watchers

Forks

Packages

No packages published