Where can you find good CFD validation cases?
A reader of this site recently sent me a question about
cases: where to find them and what makes a good case? It's an important topic, so I'm creating this page to address it.
Where to find test cases
Many CFD solvers ship with demonstration or tutorial cases which you can use to ensure that your installation is functioning properly and gain some familiarity with the code. The OpenFOAM and OVERFLOW solvers, for example, both come with extensive collections of test cases.
Other solvers, such as Wind-US and CFL3D, do not ship with samples directly, but instead have web sites which users can access to download a selection of test cases. Many such repositories also have previous CFD validation results and/or experimental comparison data. It should be obvious, but it bears repeating that just because the test case was originally put together for one solver doesn't mean it can't be used with another.
Special purpose repositories of test cases may also be available to you. For example, the various “AIAA CFD Drag Prediction Workshop” participants have made available a large collection of computational meshes, solution files, and experimental data on the Workshop web site(s). The Drag Prediction Workshop data is available to anyone, but other sites are more restrictive. ERCOFTAC members, for example, have access to the “Classic ERCOFTAC Database” as well as the “QNET-CFD Knowledge Base”.
What makes a good test case?
Determining whether a CFD validation case is “good” or not depends greatly on the context. There is more than one way to think about these things, but as I do a lot of development work for the NPARC Alliance on the Wind-US code, I often use their terminology.
On the NPARC Verification and Validation web site, they break down their test cases into three categories:
- Example cases are geared to showing users how to run a simulation with the particular solver. The specific results obtained are not really as important as demonstrating the mechanics of the code.
- Verification cases are intended to demonstrate that the code continues to give consistent results after having been modified or installed on a new system.
- Validation cases are the most detailed cases in this hierarchy of test cases. These cases will have complete documentation to enable you to test the performance and accuracy of your solver. This includes examination of the code's sensitivity to variations in the grid density, turbulence models, and other input parameters.
Using this terminology, you can see that there might be plenty of “good” example cases that are terrible validation cases. As a user, you have to be careful not to ask more of a test case than is appropriate.
How do I know if my answers are “good” enough?
Once you have a test case and the solver has been run, you must now evaluate your results. What a "good" answer looks like really depends on what your needs are. Sometimes if you're anywhere in the ballpark, that's good enough. Other times, if you don't have four digits of accuracy on pressure recovery, you might as well go home.
As I write this, I'm tracking down a really subtle error that is leading to slightly increased dissipation in an inviscid vortex convection test case (amounting to a 2-3% difference in peak density over five flow-through times). That's not much for a second order production CFD solver, but I have previous results that show we can do better, and so I'm on the hunt.
In other cases, such as the Eggers axisymmetric jet flow with a basic Spalart-Allmaras turbulence model, I'm not concerned even though the length of the potential core is under-predicted by a third. I know that's due to the limitations of the turbulence model, not a bug in the code.
So, take advantage of the sources of free CFD validation cases on the net, but make sure you use them appropriately.
When you're done learning about CFD validation cases, you can
return to the main CFD tips and tricks page
. Or return to the
Innovative CFD home page
Some on-line CFD validation resources
Here are links to a few on-line repositories of test cases (links will open in a new window):
If you have any question, comments, or suggestions, please
let me know