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 actual 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:
https://cfd.ku.edu/hiocfd.html