Book contents
- Frontmatter
- Contents
- Preface
- Acknowledgments
- 1 Introduction
- Part I Fundamental concepts
- Part II Code verification
- 4 Software engineering
- 5 Code verification
- 6 Exact solutions
- Part III Solution verification
- Part IV Model validation and prediction
- Part V Planning, management, and implementation issues
- Appendix Programming practices
- Index
- Plate Section
- References
5 - Code verification
from Part II - Code verification
Published online by Cambridge University Press: 05 March 2013
- Frontmatter
- Contents
- Preface
- Acknowledgments
- 1 Introduction
- Part I Fundamental concepts
- Part II Code verification
- 4 Software engineering
- 5 Code verification
- 6 Exact solutions
- Part III Solution verification
- Part IV Model validation and prediction
- Part V Planning, management, and implementation issues
- Appendix Programming practices
- Index
- Plate Section
- References
Summary
In scientific computing, the goal of code verification is to ensure that the code is a faithful representation of the underlying mathematical model. This mathematical model generally takes the form of partial differential or integral equations along with associated initial condition, boundary conditions, and auxiliary relationships. Code verification thus addresses both the correctness of the chosen numerical algorithm and the correctness of the instantiation of that algorithm into written source code, i.e., ensuring there are no coding mistakes or “bugs.”
A computer program, referred to here simply as a code, is a collection of instructions for a computer written in a programming language. As discussed in Chapter 4, in the software engineering community code verification is called software verification and is comprised of software tests which ensure that the software meets the stated requirements. When conducting system-level testing of non-scientific software, in many cases it is possible to exactly determine the correct code output for a set of given code inputs. However, in scientific computing, the code output depends on the numerical algorithm, the spatial mesh, the time step, the iterative tolerance, and the number of digits of precision used in the computations. Due to these factors, it is not possible to know the correct code output (i.e., numerical solution) a priori. The developer of scientific computing software is thus faced with the difficult challenge of determining appropriate system-level software tests.
- Type
- Chapter
- Information
- Verification and Validation in Scientific Computing , pp. 170 - 207Publisher: Cambridge University PressPrint publication year: 2010
References
- 2
- Cited by