I have been involved in the development and modification of several significant pieces of software. These include:

MSAT - The MATLAB Seismic Anisotropy Toolkit

MSAT provides a set of Matlab functions for handling, analysing and visualising elastic tensors. This software currently has alpha release status and is freely redistributable for both commercial and non-commercial use. Source, documentation and further information is available from www1.gly.bris.ac.uk/MSAT.

MSAT example

Example of MSAT output. Predicted shear wave splitting through post-perovskite to perovskite phase transition (see Dobson et al. 2013, Nature Geoscience [ePrint] for details). Red regions show directions in which splitting is smallest, and blue largest. The black ticks show the orientation of the fast shear wave, S1.

A Fortran library for XML

FoX is an XML library written in Fortran 95. It allows software developers to read, write and modify XML documents from Fortran applications without the complications of dealing with multi-language development. FoX can be freely redistributed as part of open source and commercial software packages.

SpecFEM 3D globe dCSE project

I am involved in a project (with Andy Nowaki and James Wookey) to improve our ability to simulate seismic wave propagation through generally anisotropic and heterogeneous models of the Earth taking advantage of the tremendous capability of the HECToR supercomputer facility. This work is being undertaken as part of the dCSE support program. We intend that out improvements will be merged back into the main SpecFEM code base so that others can take advantage of them. Further information, updates, and contact information can be found here.

Waves travelling away from an event, as calculated using SPECFEM3D_GLOBE.

Calculating elastic constants from the atomic scale

Building on the work of Dan Wilson and the Materials Grid project, I have created a pair of Python applications that can be used to calculate elastic constants using the CASTEP code. Results for monoclinic jadeite and diopside have been published (doi:10.1016/j.pepi.2011.10.002) and the code can be obtained online from my gitHub repository.

Note that, at present, the code is not well tested for all symmetries nor is it well documented. It should be relatively easy to extend the approach to work with any atomic scale simulation code that will allow the calculation of the stress tensor of a strained unit cell and my plan is to do this with GULP to enable comprehensive rapid testing. Since version 8.0 a version of this code has been distributed with CASTEP. An excercise using this software can be found on the CASTEP website. Please email me if you would like further infomation in the interim.

Atomic scale simulation codes

Much of my research involves the use of large applications that allow the simulation of minerals at the atomic scale. Sometimes I've had to modify these applications, for example by porting DL_Poly_3 to the Cray X2 machine, updating the way that GULP creates CML output and fixing MPI bugs in Siesta. All these changes have now been transmitted back to the application developers. Links to future patches will be posted here.

Atomic scale simulations of dislocations

One of the major aspects of my research has been the development of methods to model the core of dislocations in mantle minerals at the atomic scale. To allow this I have developed various pieces of software which can be used to set up models to be used as GULP input and perform analysis of the results. These have now been made generally avalabe (licenced under the GPL). This software can be downloded from my GitHub repository. Currently, this is written in perl. Work to rewrite these tools in a language more sutible for computational science is planned.

Screw dislocation

Model of a [100] screw dislocation in MgO. Atoms represented by large spheres are relaxed to an energy minimum using interatomic potentials, while those represented by small spheres are embedded in an elastic representation of the extended crystal. See Walker et al. 2005a and 2005b for details.

Other code

Collaborators at Bristol can view other code fragments online using the group's Git Web instance.