Inelastic neutron scattering is used to measure the motions of atoms and atomic magnetic moments in materials, which gives information about the underlying forces between the atoms, and knowledge of these forces helps explain why a certain material has the properties that it does. However, to gain these insights into material properties requires modelling of the measured inelastic neutron scattering spectra to extract the interatomic forces. SpinW (https://spinw.org) and McPhase (http://mcphase.de) are open-source programs which can model the magnetic spectrum measured by neutron scattering and form a fundamental component in the analysis of these data.
These codes have become de facto standards in the community, but up to now have been developed by individual scientists. This project is to professionalise the code for sustainability and ease of further development, develop Python interfaces and parallelise to benefit from modern hardware.
You will undertake the following activities:
* Professionalise the codebases, including unit and systems tests, continuous integration etc.
* Parallelise key computation tasks in the code (MPI or OpenMP as appropriate)
* Refactoring core computation routines into C++11
* Package SpinW and McPhase as Python modules
* Work with the PACE project (https://www.isis.stfc.ac.uk/Pages/Proper-analysis-of-coherent-excitations.aspx) to interface SpinW and McPhase with PACE.
* In the longer term, provide user support and lead continued maintenance and development effort of the software
You will be working closely with members of the ISIS Excitations science group; the project is also a collaboration with the European Spallation Source. Project development is hosted on github: https://github.com/spinw/spinw4 and https://github.com/mducle/libmcphase. For more information about this project, please contact duc.le@stfc.ac.uk