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 example 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.

2DChebClass was jointly developed with Andreas Nold (Max Plank Institute for Brain Research) and Serafim Kalliadasis (Imperial College London, Chem. Eng.). It is freely available through Edinburgh DataShare and GitHub.

Superadiabatic quantum molecular dynamics

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.

NaI transitions In the above paper, 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.

The Matlab code and data for NaI is available through Edinburgh DataShare.

UMLgui

UMLgui diagram 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.

The Matlab code is available from the Mathworks File Exchange.