A common observation made when computing chemically reacting flows is how central processing unit (CPU)-intensive these are in comparison to cold flow cases. The update of tens or hundreds of species with hundreds or thousands of reactions can easily consume more than 95% of the total CPU time. In many cases, the region where reactions (combustion) are actually taking place comprises only a very small percentage of the volume. Typical examples are flame fronts propagating through a domain. In such cases, only a small fraction of points/cells needs a full chemistry update. This leads to extreme load imbalances on parallel machines. The purpose of the present work is to develop a methodology to balance the work in an optimal way.
Points that require a full chemistry update are identified, gathered and distributed across the network, so that work is evenly distributed. Once the chemistry has been updated, the unknowns are gathered back.
The procedure has been found to work extremely well, leading to optimal load balance with insignificant communication overheads.
In many production runs, the procedure leads to a reduction in CPU requirements of more than an order of magnitude. This allows much larger and longer runs, improving accuracy and statistics.
The procedure has allowed the calculation of chemically reacting flow cases that were hitherto not possible.
To the authors’ knowledge, this type of load balancing has not been published before.