Software

Below you can find some information on, and links to, scientific software that I have been involved in developing. They are primarily written in Matlab.

2DChebClass

2DChebClass is a Matlab implementation of a novel, efficient pseudo-spectral collocation scheme for the solution of stiff, non-local, non-linear PDEs in one and two spatial dimensions. In particular, we compute the non-local terms in real space with the help of a specialised Gauss quadrature. Due to the exponential accuracy of the quadrature and a convenient choice of collocation points near interfaces, we can use grids with a significantly lower number of nodes than most other reported methods. We have demonstrated the capabilities of our numerical methodology by applying it to (Dynamical) Density Functional Theory problems, studying equilibrium and dynamic two-dimensional test cases with single-and multispecies hard-sphere and hard-disc particles modelled with fundamental measure theory, with and without van der Waals attractive forces, in bounded and unbounded physical domains. We have shown that our results satisfy statistical mechanical sum rules. See the associated paper for details. There are extended versions for Opinion Dynamics and PDE-Constrained Optimisation.

2DChebClass is developed with Andreas Nold (Max Plank Institute for Brain Research) and Serafim Kalliadasis (Imperial College London, Chemical Engineering) and is available open source from Edinburgh DataShare.

MultiShape

MultiShape builds on 2DChebClass to provide a spectral element method, providing a straightforward interface to set up complicated geometries (formed from quadrilaterals and other basic shapes). This allows the solution of many numerical problems including time-dependent and time-independent PDEs, optimization problems, and cases in which the solution or part of the problem are not smooth, or even singular.

MultiShape is available open source from Bitbucket.

Superadiabatic QMD

Matlab code for computation of transitions through avoided crossings using superadiabatic representations. See e.g. ‘Wave packet dynamics in the optimal superadiabatic approximation’ V. Betz, B. D. Goddard, and U. Manthe, The Journal of Chemical Physics 144, 224109 (2016). Open access pdf.
Here we explain the concept of superadiabatic representations and show how in the context of electronically non-adiabatic transitions they lead to an explicit formula that can be used to predict transitions at avoided crossings. Based on this formula, we present a simple method for computing wave packet dynamics across avoided crossings. Only knowledge of the adiabatic potential energy surfaces near the avoided crossing is required for the computation. In particular, this means that no diabatization procedure is necessary, the adiabatic electronic energies can be computed on the fly, and they only need to be computed to higher accuracy when an avoided crossing is detected. We test the quality of our method on the paradigmatic example of photo-dissociation of NaI, finding very good agreement with results of exact wave packet calculations.

Superadiabatic QMD is developed with Volker Betz (TU Darmstadt, Maths) and Tim Hurst (one of my PhD students) and is available open source from Edinburgh DataShare.

UMLgui

UMLgui allows the automatic creation of UML class diagrams. Running UMLgui opens the gui. You can then use the four buttons under the main panel to add directories, or directories and their (recursive) subdirectories, as well as deleting selected directories, or clearing the whole list. Various view options are available, the most significant being the Tree Layout, which is either ‘Aesthetic’, producing a branching tree structure, or ‘Compact’, which produces a much more compact but less visually appealing tree.

UMLgui is available open source from Mathworks File Exchange.