As computational scientists a significant part of our time is spent writing code, compiling code, monitoring our calculations, or supporting others to do the same. Some of our code is written to submit and manage calculations which run on various supercomputers (primarily Archer2, the UK national supercomputer), and some is ran locally to analyse and extract meaning from the output of these calculations (numbers –> physics).
Most scientists are largely self-taught programmers and usually have little in the way of formal training. However there are some effective strategies for learning, such as teaching basic programming skills (Software Carpentry), or following the Journal of Open Source Software guidance to develop code that can be re-used and cited by other researchers.
For researchers who would like to shift their focus more firmly towards software, hardware, compute infrastructure or data, there are emerging career paths with a variety of names: Research Software Engineer, Research Data Engineer, Research Infrastructure Engineer, or (more broadly) Digital Research Technical Professional. We have established the UKRI-funded SCALE-UP Network to support development of this people pipeline.
Research software and scripts
ThermoPot: An ab-initio thermodynamic modelling packageRepository
CarrierCapture.jl: Anharmonic carrier captureRepository | Paper
Effmass: An effective mass packageRepository | Paper
Vesta_vectors: Visualise atomic displacementRepository
Scripts for job submissions, analysis and publicationsRepository
Teaching software
ChooChoo the Checklist ToolRepository
Other software
Dotspace command lineRepository | Info
Dotspace web app (aka Grain Generator) - unmaintainedRepository | Info
Singing Materials)Repository