Many computational science and engineering problems can be expressed as (time-dependent) partial differential equations, which generally have to be computed numerically. The emergence of new computational paradigms (such as shared memory parallel computation, distributed memory parallel computation, general purpose computing on Graphical Processing Units) often results in the development of new codes to solve the same science problem on the new hardware.
In this project, we aim to develop a simulation software generation framework in which the partial differential equations (PDEs) can be specified symbolically, and (compilable) code will be autogenerated to solve the equations. By developing multiple code generating modules, we can translate the symbolic equations into fast code for multiple computational target platforms, such as shared memory machines using OpenMP, supercomputers such as the UK’s high performance computing resource Archer using MPI and appropriate tools for GPU. A simplified schematic view of this tool chain is shown in the figure.
We will restrict ourselves to finite difference discretisation themes, and use Python as the top-level language in which the user (a scientist or engineer) can specify their PDE using symbolic tools, for example the symbolic Python package sympy. While we aim for a general purpose tool that can create simulation codes for many different PDEs, we will follow an agile approach with the initial aim of providing automatic code generation for the micromagnetic problem. Southampton has a long track record in in this field , and there are micromagnetic finite difference codes for CPUs [2, 3] and GPUs  available that will be used for validation and performance comparison. The resulting tool will be open and free, developed using test-driven approaches, and hosted on Github. We will closely work with users of micromagnetic simulation software and test drive the tool on systems of current interest, including Skyrmions and biomagnetic technology to support diagnosis and treatment in the health sector. We may apply the tool to other computational problems.
For this project, we are looking for a computer scientist with interest in science and computational science, or a mathematician/physicist/engineer/… with interest in programing and software engineering to pursue this project, embedded in a larger team. We appreciate that this project requires multiple skill sets and no single applicant will have them all. Training will be provided to fill the gaps.
 Nmag, http://nmag.soton.ac.uk
 OOMMF, http://math.nist.gov/oommf/
 Fidimag, https://github.com/fangohr/fidimag
 Mumax, http://mumax.github.io
If you wish to discuss any details of the project informally, please contact Hans Fangohr, Email: [email protected]
, Tel: +44 (0) 2380 598345
This project is run through participation in the EPSRC Centre for Doctoral Training in Next Generation Computational Modelling (http://ngcm.soton.ac.uk). For details of our 4 Year PhD programme, please see http://www.findaphd.com/search/PhDDetails.aspx?CAID=331&LID=2652
For a details of available projects click here http://www.ngcm.soton.ac.uk/projects/index.html
Visit our Postgraduate Research Opportunities Afternoon to find out more about Postgraduate Research study within the Faculty of Engineering and the Environment: http://www.southampton.ac.uk/engineering/news/events/2016/02/03-discover-your-future.page