Verification of Compressible and Incompressible Computational Fluid Dynamics Codes and Residual-based Mesh Adaptation

TR Number



Journal Title

Journal ISSN

Volume Title


Virginia Tech


Code verification is the process of ensuring, to the degree possible, that there are no algorithm deficiencies and coding mistakes (bugs) in a scientific computing simulation. In this work, techniques are presented for performing code verification of boundary conditions commonly used in compressible and incompressible Computational Fluid Dynamics (CFD) codes. Using a compressible CFD code, this study assesses the subsonic inflow (isentropic and fixed-mass), subsonic outflow, supersonic outflow, no-slip wall (adiabatic and isothermal), and inviscid slip-wall. The use of simplified curved surfaces is proposed for easier generation of manufactured solutions during the verification of certain boundary conditions involving many constraints. To perform rigorous code verification, general grids with mixed cell types at the verified boundary are used. A novel approach is introduced to determine manufactured solutions for boundary condition verification when the velocity-field is constrained to be divergence-free during the simulation in an incompressible CFD code. Order of accuracy testing using the Method of Manufactured Solutions (MMS) is employed here for code verification of the major components of an open-source, multiphase flow code - MFIX. The presence of two-phase governing equations and a modified SIMPLE-based algorithm requiring divergence-free flows makes the selection of manufactured solutions more involved than for single-phase, compressible flows. Code verification is performed here on 2D and 3D, uniform and stretched meshes for incompressible, steady and unsteady, single-phase and two-phase flows using the two-fluid model of MFIX.

In a CFD simulation, truncation error (TE) is the difference between the continuous governing equation and its discrete approximation. Since TE can be shown to be the local source term for the discretization error, TE is proposed as the criterion for determining which regions of the computational mesh should be refined/coarsened. For mesh modification, an error equidistribution strategy to perform r-refinement (i.e., mesh node relocation) is employed. This technique is applied to 1D and 2D inviscid flow problems where the exact (i.e., analytic) solution is available. For mesh adaptation based upon TE, about an order of magnitude improvement in discretization error levels is observed when compared with the uniform mesh.



Code verification, Order of accuracy, Method of manufactured solutions, Boundary conditions, Multiphase flows, Mesh adaptation, Truncation error