Livermore scientists systematically check and review software throughout the software life-cycle in a verification and validation (V&V) process to ensure the credibility of codes and models, quantify confidence in calculation results, and measure the progress in the predictive capabilities.
Code verification is the most general component of V&V. It answers three specific questions:
Resolution of these questions is general and in principle does not depend on specific applications of the code. However, code verification does not directly address the problem of deciding how numerically accurate a given calculation is, that is calculation verification (or calculation numerical error assessment), but it provides the necessary foundation for believing accuracy assessments. The specific accuracy achievable in given calculations is very much a function of the particular application.
Solution verification is quantification of the numerical error in a presented calculation. This answers a direct question: What is the error in a given calculation? Unfortunately, this is all but impossible to perform completely and rigorously for complex calculations. However, it can be partially and practically addressed by explicit discretization robustness and convergence studies, formal error estimation procedures, inference from test problem suites, and – possibly with some danger – inference from previous experience (i.e., judgment). Past experience can count for much if properly understood and presented.
Code verification can be completely achieved, and calculations can still be inaccurate, due to poor discretizations (lack of converged calculations). More generally, verification of correct functioning of algorithms cannot be partitioned as cleanly as we would like. It may be impossible to determine that algorithms are failing only on available test problems; the failures may appear only on a large-scale problem for which there is no referent solution. In such a case, the only warning that the solution is incorrect will be heuristic or empirically based assessment of the quality of specific calculations, which is what calculation verification is about.