Custom software for CFD, combustion analysis and thermal management
Some engineering questions come back every week, and no commercial package answers them the way your team needs. I design and build the tool: the numerical core, the data handling and a user interface that engineers can use on the first day.
What I build
Complete programs or single components, delivered with source code, tests and documentation.
Simulation codes
Finite-volume flow solvers, 0-D and 1-D reactor and flame models, quasi-dimensional engine models, lumped-parameter thermal networks.
Models for your existing code
Chemistry solvers, spray, flame and heat transfer models wired into your in-house or commercial CFD code as a user-defined function (UDF), a DLL or shared library, or directly in the source.
Combustion analysis tools
Heat release and pressure trace analysis, ignition delay and flame speed tables, fuel surrogate formulation, automated reports from simulation results.
Desktop user interfaces
Native desktop programs with project management, input checking, 2-D plots and 3-D views, so a case is set up by clicking and not by editing text files.
Meshing and automation
Automated mesh generation for engine geometries, parametric studies, optimisation loops and batch runs on workstations and clusters.
Faster, parallel codes
Profiling and rewriting of slow numerical code, sparse linear algebra, MPI parallelisation and load balancing, modernisation of legacy Fortran.
What a custom interface looks like
Views from FRESCOwarehouse, the desktop program I wrote for FRESCO and SpeedCHEM. The same building blocks are used for custom dashboards and engineering tools.




Written by someone who uses it
A simulation tool fails when the programmer does not understand the physics, or when the physicist does not care about the software. I have been doing both for more than fifteen years.
- SpeedCHEM, my chemical kinetics library, runs detailed combustion chemistry up to three orders of magnitude faster than earlier reference codes, thanks to sparse algebra and analytical Jacobians.
- FRESCO, my engine CFD code, is a complete parallel solver with its own desktop program, installer, documentation and automated test suite.
- I contribute to the Fortran Standard Library, where I wrote the modern linear algebra interface to BLAS and LAPACK.
How the software is delivered
- Source code under the licence agreed in the contract, with a build that works on your machines
- Automated tests that check the results against reference cases
- A user guide, and training for the people who will use and maintain it
- Support and further development after delivery, if you want it
Languages and tools
Modern Fortran and C++ for the numerics, native desktop interfaces with wxWidgets and VTK, MPI for parallel runs, Python for scripting, on Windows, macOS and Linux.
Your requirements and your code are protected
The same confidentiality terms of my consulting work apply to software projects: an NDA before the first technical talk, clear written ownership of the code that is developed for you, and no reuse of your proprietary methods for other clients.
Have a tool in mind?
Tell me what it should compute and who will use it. I will answer with a first idea of scope and effort.