Contribution: Dynamic load balancing for combustion simulations
Dear all,
I am writing behalf of my research group in Aalto University, Finland. Recently we have developed a custom chemistry model called DLBFoam that mitigates the well-known computational load imbalance issue in multi-processor reactive CFD simulations using finite-rate chemistry and provides speed-up by 10 fold. Our model consists of two main features:
- A dynamic load balancer that uses MPI routines to balance the load between the processors during runtime
- A zonal reference mapping model based on Bilger's mixture fraction to map the chemistry solution of the cells from a reference solution instead of explicitly solving them, when applicable.
Our code is very well written and implemented with following OpenFOAM's code structure and guidelines and can be found in our public repository:
You can find the branch called v1.0_OF2006 to see the version compatible with OpenFOAM ESI.
In addition, the preprint describing the code in great detail and providing benchmarking results are available at:
There are still some things that need to be ironed out for a fully compatible contribution.
Minor:
- The Bilger's mixture fraction that we implement ourselves can be easily changed with the Bilger's mixture fraction that is implemented to OpenFOAM a while ago: Issue Link
Major:
- The chemistry model at the moment is derived from StandardChemistryModel and it does not extend to TDACChemistryModel. However, this is a low hanging fruit and can be easily implemented in a future release by us.
Finally, we will be rolling out some major changes to DLBFoam in the near future, such as replacing the finite-difference Jacobian of the chemistry ODE system with an analytical solution and using optimized matrix routines for the ODE solver. Combined with these features, we report speedup in the order of 200x in large 3D cases compared to StandardChemistryModel. Unlike DLBFoam at its current state these features are dependent on some open-source third party libraries but we would be glad to share them as well as contributions.
Please let me know if you are interested with this contribution and if yes what else would you require from us to move on with the contribution process. I will be following this thread but also feel free to reach at to me from bulut.tekgul@aalto.fi
Best,
Bulut