1st Edition

Verification of Computer Codes in Computational Science and Engineering

By Patrick Knupp, Kambiz Salari Copyright 2002
    160 Pages 5 B/W Illustrations
    by Chapman & Hall

    How can one be assured that computer codes that solve differential equations are correct? Standard practice using benchmark testing no longer provides full coverage because today's production codes solve more complex equations using more powerful algorithms. By verifying the order-of-accuracy of the numerical algorithm implemented in the code, one can detect most any coding mistake that would prevent correct solutions from being computed.

    Verification of Computer Codes in Computational Science and Engineering sets forth a powerful alternative called OVMSP: Order-Verification via the Manufactured Solution Procedure. This procedure has two primary components: using the Method of Manufactured Exact Solutions to create analytic solutions to the fully-general differential equations solved by the code and using grid convergence studies to confirm the order-of-accuracy. The authors present a step-by-step procedural guide to OVMSP implementation and demonstrate its effectiveness.

    Properly implemented, OVMSP offers an exciting opportunity to identify virtually all coding 'bugs' that prevent correct solution of the governing partial differential equations. Verification of Computer Codes in Computational Science and Engineering shows you how this can be done. The treatment is clear, concise, and suitable both for developers of production quality simulation software and as a reference for computational science and engineering professionals.

    INTRODUCTION TO CODE VERIFICATION
    THE MATHEMATICAL MODEL AND NUMERICAL ALGORITHM
    The Mathematical Model
    Numerical Methods for Solving Differential Equations
    THE CODE VERIFICATION PROCEDURE
    Static Testing
    Dynamic Testing
    Overview of the Order-Verification Procedure
    Details of the Procedure
    Closing Remarks
    DESIGN OF COVERAGE TEST SUITE
    Basic Design Issues
    Coverage Issues Related to Boundary Conditions
    Coverage Issues Related to Grids and Grid Refinement
    FINDING EXACT SOLUTIONS
    Obtaining Exact Solutions from the Forward Problem
    The Method of Manufactured Exact Solutions
    BENEFITS OF THE ORDER-VERIFICATION PROCEDURE
    A Taxonomy of Coding Mistakes
    A Simple PDE Code
    Blind Tests
    RELATED CODE DEVELOPMENT ACTIVITIES
    Numerical Algorithm Development
    Testing for Code Robustness
    Testing for Code Efficiency
    Code Confirmation Exercises
    Solution Verification
    Code Validation
    Software Quality Engineering
    SAMPLE CODE VERIFICATION EXERCISES
    Burgers' Equation in Cartesian Coordinates (Code 1)
    Burgers' Equation in Curvilinear Coordinates (Code 2)
    Incompressible Navier-Stokes (Code 3)
    Compressible Navier-Stokes (Code 4)
    ADVANCED TOPICS
    Computer Platforms
    Look-up Tables
    Automatic Time-Stepping Options
    Hard-Wired Boundary Conditions
    Codes with Artificial Dissipation Terms
    Eigenvalue Problems
    Solution Uniqueness
    Solution Smoothness
    Codes with Shock Capturing Schemes
    Dealing with Codes that Make Non-Ordered Approximations
    SUMMARY AND CONCLUSIONS
    REFERENCES
    APPENDICES
    Other Methods for PDE Code Testing
    Implementation Issues in the Forward Approach
    Results of Blind Tests
    A Manufactured Solution to the Free-Surface Porous Media Equations
    INDEX

    Biography

    Patrick Knupp, Kambiz Salari