Research Associate, Department of Civil and Environmental Engineering, Imperial College London
My research focuses on multi-scale modelling, which aims to link continuum based computational fluid dynamics (CFD) and discrete molecular dynamics (MD). Software development is central to this problem and I am a strong supported of open-source software, with CPL Library freely available.
As a mechanical engineer, I learnt to code during my PhD, writing a new molecular dynamics code and open-source software to couple MD to continuum CFD. Coupled simulation aims to incorporate complex molecular detail into engineering fluid flow simulation, expanding the simulation limits of both paradigms.
My programming experience started in FORTRAN, heavily optimised and highly parallelised for high performance computers (HPC). With new users and developers, the lack of software sustainability became painfully clear. To address this; I started using a code repository, refactored to make the code modular, added continuous integration testing and developed a python framework to run and snapshot code for reproducibility.
I believe research is held back by unreliable software; where packages, which should just work, end up costing researchers time to understand due to bad design or insufficient testing. Worse still, poor software can mean the output of numerical simulations are unreliable. This is very true in my research which requires the linking of separate codes compounding errors and making then very tricky to isolate. To facilitate coupled simulation, the two codes should have minimal learning curves and be tested both separately and together. This will allow researchers to focus on new science instead of software development problems.
I learnt the hard way the importance of sustainable software and I hope to prevent new students in engineering and science from going through the same cycle. I aim to teach modern computing practices to students, in order to create a new generation who understand the importance of sustainable software. This change in teaching will be instrumental in establishing a new standard in research, which will not just incentivise, but make it unacceptable not to write reproducible, open-source software with every numerical simulation published.
Follow me @edwardsmith999