TPLS 2.0 goes live
Posted: 25 May 2015 | 11:52
Last week I took part in a Mini-Symposium at the University's School of Engineering to mark the 2.0 release of TPLS, a high-resolution 3D Direct Numerical Simulation code for two-phase flows that we have developed in collaboration with Dr Prash Valluri and Dr. Lennon Ó Náraigh.
The keynote speaker, Prof. Christian Ruyer-Quil from Université de Savoie-Chambéry showed several applications of the two-phase flows that TPLS can model. For example, in the food industry the process for concentrating milk involves running thin films of milk down heated 'evaporator tubes', and the efficiency of the process is controlled by the precise details of waves forming in the milk (see image above)! Similar mechanisms are used in carbon-capture towers to increase the rate at which CO2 can be absorbed from industrial exhaust gases, and in catalytic chemical processing.
Other speakers also showed droplet evaporation (for phase-change cooling applications) and two-phase gas/slurry flows which occur in oil pipelines. TPLS has recently been trialled by Shell's R&D department, so there is certainly a great deal of interest in the code!
Since the first release in 2013, we have added several new features to TPLS:
- Parallel I/O using NetCDF - giving over 100x speedups compared to the old master-only I/O scheme, and 7x reduction in file size.
- Choice of Diffuse Interface Method (DIM) as well as the existing Level Set method for capturing the interface.
- TPLS is now fully configurable via input files, so no recompilation of the code is necessary. Thus we are able to offer a preinstalled binary package on ARCHER.
- Automatic 2D domain decomposition for parallel execution.
- User documentation including installation guide, input file manual, and an FAQ.
- Refactored code and unit tests to make future developments easier.
Everything listed above is now available from the TPLS Sourceforge page, and we are currently working on additional performance improvements via the use of the PETSc library for some of the most expensive parts of the solver.
We have been able to include improved performance and new features, as well as improvements to code quality thanks to the combination of EPSRC research grant funding, an ARCHER eCSE project, and support from the Software Sustainability Institute's Open Call.
Developing software with several people from different backgrounds has been very productive, but the next main challenge for TPLS is to embed the software development best practices that we used for the released version of the TPLS code within the research groups that use and develop it. As Prash said:
"It adds development time, doing things right, but it's worth it. Our code is miles away from where it was".
At the mini-symposium, several student sand postdocs showed their plans for new features, physics and problem geometries that are under development. At present these are first developed as standalone codes, with the ultimate aim of merging them into the main released version so they can take advantage of the better performance from PETSc and NetCDF. As a first step, we have begun collating these in SVN branches so we can identify commonality and facilitate the merge. However, that final step remains an open challenge!