The Adaptive Mesh-Refinement Philosophy
In computational fluid dynamics, as well as in other problems of physics or engineering, one often encounters the difficulty that the overall accuracy of the numerical solution is deteriorated by local singularities such as, e.g., singularities near re-entrant corners, interior or boundary layers, or shocks. An obvious remedy is to refine the discretization near the critical regions, i.e., to place more grid-points where the solution is less regular. The question then is how to identify these regions automatically and how to guarantee a good balance of the number of grid-points in the refined and un-refined regions such that the overall accuracy is optimal.
Another, closely related problem is to obtain reliable estimates of the accuracy of the computed numerical solution. A priori error estimates, as provided, e.g., by the standard error analysis for finite element or finite difference methods, are in general not sufficient, since they only yield asymptotic estimates and since the constants appearing in the estimates are usually not known explicitly. Morover, they often require regularity assumptions about the solution which, for practical problems, are hardly satisfied.
Therefore, a computational fluid dynamics code should be able to give reliable estimates of the local and global error of the computed numerical solution and to monitor an automatic, self-adaptive mesh-refinement based on these error estimates.