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.
The documentation website is currently in construction, but there is a User guide and a basic installation info below.
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"
Run install.sh.
Run all serial tests:
pytest -v --order-scope=module --color=yes
Run all parallel tests:
mpirun -n 2 pytest -v --order-scope=module --color=yes
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.
Install tlm_adjoint:
git clone https://github.com/EdiGlacUQ/tlm_adjoint.git cd tlm_adjoint pip install -e .
Run all serial tests:
pytest -v --order-scope=module --color=yes
Run all parallel tests:
mpirun -n 2 pytest -v --order-scope=module --color=yes
- View the source code on GitHub.
- Report bugs or share your ideas on the issue tracker.
- Improve the model by submitting a pull request.
Version: | |
---|---|
Citation: | |
Tests: | |
License: | |
Authors: | See the link for a list of all contributors. |