Muutke küpsiste eelistusi

Verification of Computer Codes in Computational Science and Engineering [Kõva köide]

(Lawrence Livermore National Laboratory, California, USA), (Sandia National Laboratories, Albuquerque, New Mexico, USA)
  • Formaat: Hardback, 160 pages, kõrgus x laius: 234x156 mm, kaal: 180 g, 32 Tables, black and white; 5 Illustrations, black and white
  • Sari: Discrete Mathematics and Its Applications
  • Ilmumisaeg: 29-Oct-2002
  • Kirjastus: Chapman & Hall/CRC
  • ISBN-10: 1584882646
  • ISBN-13: 9781584882640
Teised raamatud teemal:
  • Formaat: Hardback, 160 pages, kõrgus x laius: 234x156 mm, kaal: 180 g, 32 Tables, black and white; 5 Illustrations, black and white
  • Sari: Discrete Mathematics and Its Applications
  • Ilmumisaeg: 29-Oct-2002
  • Kirjastus: Chapman & Hall/CRC
  • ISBN-10: 1584882646
  • ISBN-13: 9781584882640
Teised raamatud teemal:
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
1(6)
The mathematical model and numerical algorithm
7(12)
The mathematical model
7(3)
Numerical methods for solving differential equations
10(9)
Terminology
10(1)
A finite difference example
11(1)
Numerical issues
12(1)
Lax equivalence theorem
13(1)
Asymptotic regime
13(1)
The discrete system
14(2)
Code order verification
16(1)
Definition: Code order verification
16(3)
The order-verification procedure (OVMSP)
19(16)
Static testing
19(1)
Dynamic testing
20(1)
Overview of the order-verification procedure
21(2)
Details of the procedure
23(10)
Getting started (Steps 1-3)
23(1)
Running the tests to obtain the error (Steps 4-5)
24(1)
Calculating the global discretization error
24(2)
Refinement of structured grids
26(2)
Refinement of unstructured grids
28(1)
Interpret the results of the tests (Steps 6-10)
29(4)
Closing remarks
33(2)
Design of coverage test suite
35(6)
Basic design issues
35(3)
Coverage issues related to boundary conditions
38(2)
Coverage issues related to grids and grid refinement
40(1)
Finding exact solutions
41(18)
Obtaining exact solutions from the forward problem
41(2)
The method of manufactured exact solutions
43(16)
Guidelines for creating manufactured solutions
44(1)
Guidelines for construction of the coefficients
45(1)
Example: creation of a manufactured solution
46(2)
Treatment of auxiliary conditions
48(1)
Treatment of the initial condition
48(1)
Treatment of the problem domain
49(1)
Treatment of the boundary conditions
49(5)
A Closer look at source terms
54(1)
Heat equation with no source term
55(1)
Steady incompressible flow with no source term
56(2)
Closing remarks on source terms
58(1)
Physical realism of exact solutions
58(1)
Benefits of the order-verification procedure
59(10)
A taxonomy of coding mistakes
59(3)
A simple PDE code
62(3)
Blind tests
65(4)
Related code-development activities
69(6)
Numerical algorithm development
69(1)
Testing for code robustness
70(1)
Testing for code efficency
71(1)
Code confirmation exercises
71(1)
Solution verification
72(1)
Code validation
73(1)
Software quality engineering
74(1)
Sample code-verification exercises
75(14)
Burgers' equations in cartesian coordinates (Code 1)
75(4)
Steady solution with dirichlet boundary conditions
76(1)
Steady solution with mixed Neumann and dirichlet conditions
77(2)
Burgers' equations in curvilinear coordinates (Code 2)
79(3)
Steady solution
80(1)
Unsteady solution
80(2)
Incompressible Navier-stokes (Code 3)
82(2)
Compressible Navier-stokes (Code 4)
84(5)
Advanced topics
89(10)
Computer platforms
89(1)
Lookup tables
89(1)
Automatic time-stepping options
90(1)
Hardwired boundary conditions
91(1)
Codes with artificial dissipation terms
92(2)
Eigenvalue problems
94(1)
Solution uniqueness
94(1)
Solution smoothness
95(1)
Codes with shock-capturing schemes
96(1)
Dealing with codes that make nonordered approximations
97(2)
Summary and conclusions
99(4)
References 103(4)
Appendix I: Other methods for PDE Code testing 107(4)
Appendix II: Implementation issues in the forward approach 111(2)
Appendix III: Results of blind tests 113(20)
Appendix IV: A manufactured solution to the free-surface porous media equations 133(4)
Index 137


Patrick Knupp, Kambiz Salari