CFD-101: The Basics of Computational Fluid Dynamics Modeling
Implicit Versus Explicit Numerical Methods
Numerical solution schemes are often referred to as being explicit or implicit. When a direct computation of the dependent variables can be made in terms of known quantities, the computation is said to be explicit. When the dependent variables are defined by coupled sets of equations, and either a matrix or iterative technique is needed to obtain the solution, the numerical method is said to be implicit.
In computational fluid dynamics, the governing equations are nonlinear, and the number of unknown variables is typically very large. Under these conditions implicitly formulated equations are almost always solved using iterative techniques.
Iterations are used to advance a solution through a sequence of steps from a starting state to a final, converged state. This is true whether the solution sought is either one step in a transient problem or a final steady-state result. In either case, the iteration steps resemble a time-like process. Of course, the iteration steps usually do not correspond to a realistic time-dependent behavior. In fact, it is this aspect of an implicit method that makes it attractive for steady-state computations, because the number of iterations required for a solution is often much smaller than the number of time steps needed for an accurate transient that asymptotically approaches steady conditions.
On the other hand, it is also this "distorted transient" feature that leads to the question, "What are the consequences of using an implicit versus an explicit solution method for a time-dependent problem?" The answer to this question has two parts. The first part has to do with numerical stability and the second part with numerical accuracy.
The Stability Issue
The principal reason for using implicit solution methods, which are more complex to program and require more computational effort in each solution step, is to allow for large time-step sizes. A simple qualitative model will help to illustrate how this works. Let Q be a quantity whose value Qn+1 we want to compute at time t=(n+1)dt, in terms of its value at time t=ndt, i.e., Qn+1=Qn+dtS, where S is the rate of change in Q.
In an explicit numerical method S would be evaluated in terms of known quantities at the previous time step n. An implicit method, in contrast, would evaluate some or all of the terms in S in terms of unknown quantities at the new time step n+1. Since new quantities appear on both the left and right side of the Q-equation, it is said to be an implicit definition of the new n+1 values. Usually a matrix or iterative solution must be used to compute the new quantities.
Numerical stability has to do with the behavior of the solution as the time-step dt is increased. If the solution remains well behaved for arbitrarily large values of the time step, the method is said to be unconditionally stable. This situation never occurs with explicit methods, which are always conditionally stable. It is easy to see this by dividing the Q-equation by dt and then letting dt approach infinity. In this limit there are no n+1 terms remaining in the equation so no solution exists for Qn+1, indicating that there must be some limit on the size of the time step for there to be a solution.
In an implicit formulation, a solution for the unknowns at new time step n+1 may be obtained for any size time step. Of course, the solution for very large times may not be realistic unless the implicit formulation has been carefully constructed.
A typical iterative solution for Qn+1 is constructed by computing the k+1 iterate in terms of the kth iterate value, where the first iterate is taken to be equal to Qn. The equation for Qk+1 is often a Newton’s approximation (or similar approximation) having the form Qk+1=Qk+A(Qn-Qk+dtSk). In this expression A is a relaxation factor, and Sk is an approximation to S evaluated in terms of the kth iterate. If A is chosen properly, successive iterates will eventually converge to Qn+1.
The relaxation coefficient A must have the form A=1/(1+Cdt) in order to insure the proper limits at small and large values of dt. That is, at very small time-step sizes the explicit equation is recovered, while at very large time-step sizes the equation has a limiting value independent of dt. The quantity C must be a positive coefficient characterizing all the terms in the original equation (i.e., in S) that have been approximated implicitly. For example, if Q is a velocity component governed by a momentum equation with implicit viscous terms, then C would be proportional to the kinematic viscosity divided by the square of the grid size.
The Accuracy Issue
When dt is sufficiently small only one iteration is necessary for convergence, which leads to Qn+1=Qn+dt/(1+Cdt)Sn. This shows that the implicit formulation adds a smaller change to Q in one time step than would occur in an explicit method because of the under-relaxation factor A=1/(1+Cdt) that multiplies the time step.
As a general rule, it can be shown that the condition Cdt≤1 is very nearly equivalent to the stability condition for an explicit approximation. Another general rule is that the time-step sizes for explicit stability and accuracy are usually equivalent. Thus, when Cdt>1, an explicit method would be unstable, but implicit methods simply under-relax more to maintain the stability of the iterative solution. It is this increased damping, with the increase in time-step size, which produces inaccuracies in transient behavior.
For an implicit method to have minimal under-relaxation (i.e., little damping), a time-step size much smaller than the stable, explicit value would have to be used. In fact, according to the above analysis, at the explicit stability limit Cdt=1 the implicit approximation still has a significant under-relaxation factor of A=1/2. To reduce this under-relaxation damping the time-step size would have to be much smaller than the explicit stability limit, but this makes little sense since an implicit method is not required.
A Physical Example
An elementary physical problem involving the propagation of a pressure wave can be used to illustrate the differences between implicit and explicit methods. Imagine an increase in pressure is applied to one end of an organ pipe that is closed at the opposite end. We know that a pressure wave will move down the pipe and be reflected at the closed end. Given enough time, pressure waves will travel back and forth in the pipe many times before the pressure distribution settles down to the constant value applied at the open end.
If only steady-state results are wanted, then an implicit solution scheme with lots of damping of the pressure waves should be used so that steady conditions will be reached as quickly as possible. In this case the damping incorporated in the implicit iteration method (i.e., the under-relaxation) is highly desirable.
If, instead, the transient pressure waves are to be investigated, then we want the least amount of numerical damping so that many wave reflections can be accurately followed. This situation is best treated with an explicit solution method.
Explicit methods require a time-step size that limits the advance of the pressure step to less than one computational cell per time step. However, this restriction is related to accuracy because most difference equations involve quantities from neighboring cells only. A pressure wave that propagates further than one cell in one time step would then be moving into regions that have no defined influence on the pressure. Not only is this physically unrealistic, it also leads to numerical instability.
Implicit methods, on the other hand, couple all the cells together through an iterative solution that allows pressure signals to be transmitted through a grid. The price for this communication between distantly located cells is a damping or smoothing of the pressure waves introduced by the under-relaxation needed to solve the coupled equations.
The choice of whether an implicit versus explicit method should be used ultimately depends on the goal of the computation. When time accuracy is important, explicit methods produce greater accuracy with less computational effort than implicit methods. For this reason, FLOW-3D uses explicit techniques whenever possible, but implicit options are available when they are needed.