Tuesday, October 18, 2011

Why is the order of accuracy important?

Most of the commercial CFD codes are 1st or 2nd order accurate. This
is largely due to the robustness offered by these low order methods.
First order methods can be used to compute a steady-state solution
reliably and quickly on almost any mesh. For many industrial
applications, getting a solution with the correct order of magnitude may
be good enough to provide some guidance for product designs. In such
cases, low order CFD codes obviously serve a useful purpose.

If the accuracy of a solution is important (e.g. the lift
coefficient of a Boeing airliner), first order methods are usually too
crude. In theory, one can always refine the mesh enough times to obtain
the desired solution accuracy. But mesh refinement is a very inefficient
means for low order methods to reach an accuracy threshold. High order
(OOA > 2) methods are much more efficient with mesh refinement. Here
is why.

Assume that doubling the number of cells in each
direction in space (3D) and time increases the computational cost by a
factor of 16, i.e., 2^4. For a 1st order scheme, however, the solution
error is only reduced by a factor of 2. For a 2nd order scheme, the
error is reduced by a factor of 4, while for a 4th order scheme the
error is reduced by a factor of 16. Now you see why mesh refinement is
much more efficient in reducing the error for a high order method. In
fact, a 4th order method on a mesh of 1 million cells may produce a
more accurate solution than a 1st order method on a mesh of a billion
cells! In computational aeroacoustics (CAA), high-order methods have been used almost exclusively for wave propagation problems because of the stringent accuracy requirement.

Why, then, aren't all the commercial codes 4th order accurate? The quick answer is that it is very difficult to develop robust and efficient high-order methods for unstructured meshes!

How
about structured meshes? It is relatively straightforward to develop
high-order methods on structured meshes. However, the structured meshes
must be smooth enough to achieve the high-order accuracy. Otherwise, the actucal OOA may be only 2nd order or even 1st order.

Given that almost all commercial codes use unstructured meshes,
the ultimate solution appears to be adaptive high-order methods capable
of handling unstructured meshes.See the following Workshop for the
latest development:
http://zjwang.com/hiocfd.html

7 comments:

"However, the structured meshes must be smooth enough to achieve the high-order accuracy." I wonder what is the reason for the loss of accuracy on structured mesh if the mesh is not smooth. Is this the case with structured Cartesian mesh also if it is not uniform?

On a structured grid, the governing equations are transformed from the physical domain to a computational domain, where they are discretized assuming a uniform Cartesian grid. The metrics of the transformation are computed numerically. To preserve accuracy, the metrics should be computed with high accurately. When the grid is not smooth, this is difficult. High order accuracy is lost if the metrics are not high order accurate.

Do you happen to have a reference on bad metrics in applications leading to lower overall order of accuracy? I've only heard passing references to that being an issue in DNS.

It seems a bit odd that bad metrics in FV would directly lead to inaccuracies, aside from skewness issues. In FD it's certainly understandable that a metric and it's inverse need to be numerically consistent.

I do not have a reference on bad metrics causing accuracy loss in a FD method. Metrics are usually computed using central differences. When the mesh is not smooth, the full accuracy can be lost.

With a FV method, since cell areas and volumes are used directly, there is "no error" in the "metrics". In fact, you can still maintain high-order accuracy on a relatively non-smooth unstructured mesh by satisfying the so-called "k-exactness", i.e., the solution reconstruction is exact for a degree k polynomial no matter how bad the mesh is. Here k is the degree of the solution polynomial.

It certainly is logical that high OOA would be lost if the transformation is inaccurate, but I don't recall ever reading of a study examining that either. For the case of a Cartesian mesh (even if grid spacing is not constant), then there is no need or reason to transform to a computational mesh. The finite difference expressions can be simply obtained from discretizing polynomials that pass through the grid points. One exception to the issue with inaccuracy arising from computing the metrics is the (admittedly rare) case of an analytical mapping.

On another issue concerning high order methods, perhaps Dr. Wang could comment on the issue of applying a spectral volume method to incompressible (or low Mach number) flows where the problem exists of spurious modes arising from the use of approximation spaces for the velocity and pressure that do not satisfy the Ladyzhenskaya, Babuska, and Brezzi (inf-sup) condition. The most common means of addressing this, the addition of pressure smoothing along the lines of Rhie-Chow, introduces a 2nd order error term.

The computation of metrics was addressed in several papers by AFRL scientist, Miguel Visbal and his co-workers, regarding high order compact methods. You probably can do a google search to find the papers. Fortunately for DG/SV/CPR type of schemes, the metrics are computed exactly for each element. Therefore no extra errors are introduced.

I am not familiar with pressure based method or projection type methods for incompressible flows. We did try low Mach preconditions to handle low speed flow, and the results are pretty good. Another possible approach is to use artificial compressibility method.Good luck!ZJ