|
Introduction to code verification |
|
|
1 | (6) |
|
The mathematical model and numerical algorithm |
|
|
7 | (12) |
|
|
7 | (3) |
|
Numerical methods for solving differential equations |
|
|
10 | (9) |
|
|
10 | (1) |
|
A finite difference example |
|
|
11 | (1) |
|
|
12 | (1) |
|
|
13 | (1) |
|
|
13 | (1) |
|
|
14 | (2) |
|
|
16 | (1) |
|
Definition: Code order verification |
|
|
16 | (3) |
|
The order-verification procedure (OVMSP) |
|
|
19 | (16) |
|
|
19 | (1) |
|
|
20 | (1) |
|
Overview of the order-verification procedure |
|
|
21 | (2) |
|
|
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) |
|
|
33 | (2) |
|
Design of coverage test suite |
|
|
35 | (6) |
|
|
35 | (3) |
|
Coverage issues related to boundary conditions |
|
|
38 | (2) |
|
Coverage issues related to grids and grid refinement |
|
|
40 | (1) |
|
|
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) |
|
|
62 | (3) |
|
|
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) |
|
|
72 | (1) |
|
|
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) |
|
|
80 | (1) |
|
|
80 | (2) |
|
Incompressible Navier-stokes (Code 3) |
|
|
82 | (2) |
|
Compressible Navier-stokes (Code 4) |
|
|
84 | (5) |
|
|
89 | (10) |
|
|
89 | (1) |
|
|
89 | (1) |
|
Automatic time-stepping options |
|
|
90 | (1) |
|
Hardwired boundary conditions |
|
|
91 | (1) |
|
Codes with artificial dissipation terms |
|
|
92 | (2) |
|
|
94 | (1) |
|
|
94 | (1) |
|
|
95 | (1) |
|
Codes with shock-capturing schemes |
|
|
96 | (1) |
|
Dealing with codes that make nonordered approximations |
|
|
97 | (2) |
|
|
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 | |