By Gillian Law, TechLiterate, talking with Lee Margetts, University of Manchester.
This article is part of our series: Breaking Software Barriers, in which Gillian Law investigates how our Research Software Group has helped projects improve their research software. If you would like help with your software, let us know.
Software development for research into solid mechanics, particularly in High Performance Computing, has fallen behind other research areas such as fluid dynamics and chemistry, argues Lee Margetts, head of Synthetic Environments and Systems Simulation at the University of Manchester Aerospace Research Institute. It's time for some collaborative development to create some quality, shared code, he says.
"There's a lot of duplication of effort, and I think the field is held back by that. If you look at fields like computational chemistry, people are winning Nobel prizes! Lots of scientific disciplines where people share software are advancing better than solid mechanics, in my view."
In part, he admits this is due to differences in funding, as both computational chemistry and computational fluid dynamics have received funding specifically for software research since the early 80s, "and that has continued for 30 years." Yet that's no reason not to start work, Margetts stresses: "I'm sure in the early 80s those fields were just as we are now."
The need for a software community
Margetts is now attempting to create a community to work on open source software, called ParaFEM, for HPC research in solid mechanics. After setting up the basics on his own, he contacted the Software Sustainability Institute for help in getting this off the ground.
Margetts' work is based on code that was originally developed by Ian Smith and Vaughan Griffiths — co-authors of engineering textbook Programming the Finite Element Method — back in the 1980s, and has been continually updated ever since.
Supercomputing code that developed from this work has forked in countless directions as it has been used by students, colleagues and collaborators alike over the years, Margetts says, and there has been no real attempt to pull it together.
"So a while ago I decided, right, I'll put everything into an open source platform on the web. Since then, things have gone along a bit better, but it reached a point where I needed help. That's why I got in touch with the Software Sustainability Institute."
An independent perspective
Margetts says he had three reasons for contacting the Institute.
"The first was political, and to do with the visibility of the project. A lot of the funding bodies suggest that you talk to the Software Sustainability Institute — so I did!
"The second was that I wanted a review and assessment, and set of pointers, from someone I could trust — an independent, third party to have a look and say what I was doing badly, and what I was doing well.
"And finally, I needed additional software effort to get things moving."
All three have paid off, he says. Awareness of his work now appears to be higher, with people keen to collaborate who may not have been in the past.
In terms of advice, the Institute was a great help — identifying plenty of issues, many of which Margetts knew about but hadn't got round to tackling. For example, the need for regular releases of the code, and improvements to the website with better explanations of what the project is about and how people can contribute.
"We've got an issue register on the website now of things we need to do, including all the recommendations from the Software Sustainability Institute. We haven't done them yet, but we have a list!"
Margetts now has a larger team of around ten people contributing to the code, so he is confident that this list will start to shrink.
The Software Sustainability Institute feedback included some positives, too. "They liked the structure of the software, and the documentation. There's the textbook, which has a new edition out this year [Programming the Finite Element Method, Wiley, 2014], and generally they thought it was in a very good state compared to a lot of projects."
On the coding side, the Institute created two particularly useful tools, he says.
"They've produced a self-testing layer of software that does automatic testing. As we add more developers, automated testing is really important to check nothing is broken.
"And also, they've put together a demonstrator that you can use on a PC, just to show the capabilities of the software and the simulations that you can carry out. The rationale behind that is that, well, this software runs on a supercomputer, but I wanted to give people confidence that it's worthwhile downloading and installing it. That's because people make a decision as to whether to adopt your code in about 30 seconds, as they're surfing the web looking for software."
Improve interoperability through community engagement
As the project grows, Margetts hopes to continue to work closely with the Institute.
"As the number of people involved grows, the code will need to be managed in a different way, structured in a different way, and better modularised and supervised. I would definitely work with the Institute again as that starts to be needed."
Indeed, Margetts is already involved in a second project with the Software Sustainability Institute.
"We're collaborating on a White Paper looking at all of the solid mechanics code available in the UK, and making recommendations about interoperability. It's difficult to persuade people to stop using their own code and switch to something else, but I think it might be possible to bring the community together by agreeing a set of file formats or standards for modules of codes.
"The Software Sustainability Institute will do the writing – I've just given some pointers as to the sorts of thing to look at. It's going to be really useful, and will help us move the field forward."
Lee Margetts and the ParaFEM project can be followed on Twitter via @leemargetts and @parafem respectively.
If you'd like free help to assess or improve your software, why not submit an application into the Institute's Open Call?