About Gusto
Gusto is a library of finite element methods for geophysical fluid dynamics. In particular, Gusto focuses on using compatible finite element discretisations, in which variables lie in function spaces that preserve the underlying geometric structure of the equations. These compatible finite element methods underpin the Met Office’s next-generation model, LFRic.
Installing
Before installing Gusto you should first install Firedrake using the instructions found here. Once this is done Gusto can then be installed by running:
$ git clone https://github.com/firedrakeproject/gusto.git
$ pip install --editable ./gusto
or equivalently:
$ pip install --src . --editable git+https://github.com/firedrakeproject/gusto.git#egg=gusto
To test your Gusto installation you can run the test suite with:
$ cd gusto
$ make test
Parallel output with netCDF
By default the netCDF4
package installed by Gusto does not support parallel I/O.
This means that, when Gusto is run in parallel, distributed data structures must first be gathered onto rank 0 before they can be output.
This is extremely inefficient at high levels of parallelism.
To avoid this it is possible to build a parallel-aware version of netCDF4
.
The steps to do this for an Ubuntu machine are as follows:
- Uninstall the existing
netCDF4
package:$ pip uninstall netCDF4
- Set necessary environment variables and install the build dependencies:
$ export PETSC_DIR=/path/to/petsc PETSC_ARCH=arch-firedrake-default $ export PATH=$PETSC_DIR/$PETSC_ARCH/bin:$PATH $ pip install Cython
On non-Ubuntu platform additional environment variables like
HDF5_DIR
andNETCDF4_DIR
may need to be set (see here for more information). - Install the parallel version of
netCDF4
:$ pip install --no-binary netCDF4 --no-build-isolation netCDF4
Getting Started
Once you have a working installation, the best way to get started with Gusto is to play with some of the examples in the gusto/examples
directory.
Our documentation can be found here.
Getting in touch
If you’re interested in using Gusto we’d love to hear from you! The best way to get in touch with the Gusto developers is through our Github page or the Gusto channel on the Firedrake project Slack channel. Alternatively you can email Jemma Shipton or Tom Bendall