For transient simulations, we have demonstrated the implementation of an advanced operator splitting method to solve the species conservation equation in a computational fluid dynamics simulation tool. This method splits the transport equation into two sub-equations and solves the sub-equations with overlapping time steps; the first step handles the kinetics and the second step handles the transport (for example, diffusion or convection). The KINetics module handles the first step via routine calls made from the CFD simulation. For the first step, the KINetics module can treat the calculation on a cell-by-cell basis, allowing coupling of all of the species and energy together, since the transport terms are handled only in the second step. The CFD simulation handles the second step using its usual approach to solving species conservation equations. With the source term being handled by the KINetics module, the CFD step is well behaved for reasonable time-step values.
To illustrate the method using equations, we first define the full species equation that we want to solve in each cell in the computational domain as:
(2–1) |
where is the net production rate of species
due to all chemical reactions that occur in that cell,
is the volume of the cell,
is the mass density of the fluid,
is the species mass fraction,
represents the convective mass flow of the species into a cell from neighboring cell
, and
is the diffusive mass flow of the species into a cell from the
th neighboring cell. Note: this equation is simplified just to illustrate the operator-splitting methodology.
We can approximate the time derivative on the left-hand-side of Equation 2–1, for a discrete time step, , so that the equation becomes:
(2–2) |
where the superscript "" represents evaluation of the terms at the new time and "
" represents evaluation at the old time. With the convective terms and the
production terms all evaluated at the new time, the equation is fully "implicit" and fully
coupled within the cell. Equation 2–2 can be rearranged to
solve for the new value of the species mass fraction as:
(2–3) |
Now, since we do not have a way to solve this equation exactly, we choose to split the equation by letting:
(2–4) |
(2–5) |
In this way, we lose some implicitness in the chemistry production term, but gain the fact that Equation 2–4 is now solved for each cell independently with no influence of the neighboring cells. This allows efficient solution of all of the species simultaneously instead of equation by equation. With operator splitting, the first step balances production and destruction of chemical kinetics against the time-rate-of-change of the species in a cell, neglecting transport into or out of the cell. In this step the solution algorithm couples all species calculations together within each cell. In this calculation, there is no transport into or out of the cell, such that each cell can be considered independently of the others. As a result of this "half" step, the KINetics module returns a new map of species concentrations over all cells, before transport occurs.
The second step allows species to transport into/out of the cell, solving each species one at a time, but over all cells simultaneously. In this "half" step there is no further production or destruction of the species (that is, there are no chemical source term in this sub-step), only transport terms are considered and the CFD program can handle the equation in its usual way.
The key advantage to the operator splitting is that in the first half-step, the solution of the net species production rates due to chemical reaction is solved on a cell-by-cell basis. On this basis, we solve for all of the species simultaneously with temperature, which means that the equations are fully coupled. The second advantage is that we can apply a state-of-the-art ordinary-differential equation solver to the task of integrating the stiff simultaneous equations within each cell. The operator-splitting approach allows each algorithm to do what it does best. The transport algorithm is applied to transport in time; the stiff kinetic solver is applied to net production/destruction due to kinetics and resulting change of species in a closed system with time. The sub-cycling or integration of the species equation over the specified transport time step is done efficiently within the KINetics module, with adaptive (sub-) time steps based on the largest rate of change for any one species (or temperature). The key advantage of this method is the adaptive selection of time step and sophistication in resolving both the trace and major species in the chemistry step.
Another advantage of the operator-splitting method as described here is that it is easily implemented on a parallel platform where the parallelization is based on domain decomposition. In such cases, some cells are simulated on one processor and others are simulated on a separate processor, with matching conditions enforced at domain boundaries. As the chemistry half-step is on a cell-by-cell basis, it can be performed on many processors at once based on processor assignment for that cell. The transport step for the second helf-step can remain large and appropriate to transport time-scales. This keeps this step at the best level of efficiency.