A variety of numerical software packages have been developed by the group over the past few years. If you are interested in using any of these packages, please contact David Dritschel or Richard Scott.


Hydra is a suite of codes designed to use a variety of numerical methods to perform simulations of a range of fluid dynamical phenomena. The numerical methods used for the more advanced of these are largely based around contour advection (see CASL, CLAM). Contour advection methods are extremely accurate Lagrangian methods using contours (essentially field iso-levels) to perform advection to high accuracy.

At the moment hydra has codes and modules for studying:

  • Stratified flow in a bounded and semi-periodic domain
  • Steady-state large amplitude internal solitary waves
  • The quasi-geostrophic equations in a doubly-periodic domain
  • Two-layer quasi-geostrophic flow equations in a channel
  • Spherical shallow water flow
  • Spherical barotropic flow
  • Chaotic tracer advection in a doubly-periodic domain
  • Idealised MHD in a doubly-periodic domain
  • Collections of point vortices on a plane or sphere
  • Collections of point masses on a sphere

along with many associated visualisation and post-processing codes. Currently several of these applications are being written up for journal publications.

Hydra is open source, but is not yet on general release. We plan to make the entire software package available on github or bitbucket in the near future. If you are interested in collaborating with us on any of the above topics in the mean time please do get in contact.


CASL (Contour Advective Semi-Lagrangian method) is the name for a numerical scheme based around contour advection (see this paper). The old CASL website is still available but no longer being maintained. We strongly recommend using hydra instead.

Other software links

Below are useful links to software created by others that we make use of:

  • Python org website
  • Numpy – numerical computing in python
  • Scipy – scientific computing in python
  • Matplotlib – mathematical plotting in python
  • OpenMP -shared memory parallelisation in Fortran/C
  • OpenMPI -message passing interface for distributed computation in Fortran/C
  • Stack Overflow – general computing help and discussion