Verification and Validation
This section documents what has been checked to give confidence that the point-kernel kernel math is correct, and (separately) where its predictions have been compared against external references.
We split the work using the standard definitions:
- Verification ("are we solving the equations right?"): compares code output to closed-form analytic solutions or to another code solving the same equations (code-to-code benchmarks).
- Validation ("are we solving the right equations?"): compares code output to experimental measurements (e.g. SINBAD, ICSBEP, or ORNL shielding benchmarks).
The runnable scripts live in the top-level
verification_and_validation/
folder of the repository.
Verification status
| Case | Quantity | Reference | Status |
|---|---|---|---|
| Uncollided flux in void | \(\Phi(r) = S / (4\pi r^2)\) | Analytic | Passing, machine precision |
| Transmission in void | \(T = 1\) | Analytic | Passing, exact |
| Beer-Lambert single slab | \(T(t) = e^{-\Sigma t}\) | Analytic (exponential law) | Passing, \(< 10^{-15}\) |
Validation status
| Case | Reference | Status |
|---|---|---|
| Photon transmission vs shielding experiments | SINBAD measurements | Planned |
| Neutron transmission vs shielding experiments | ORNL / SINBAD benchmarks | Planned |
Note: comparison to published buildup-factor tables (ANS-6.4.3 / Harima) is verification, not validation, because those tables are themselves derived from calculation (moments method, discrete ordinates, MC fits). They belong in the verification table above once added.
Running the scripts
All verification scripts are self-contained and runnable:
python verification_and_validation/uncollided_flux_in_void.py
python verification_and_validation/transmission_in_void.py
python verification_and_validation/beer_lambert_single_slab.py
Each prints a table of cases and exits with code 0 if all checks pass, non-zero otherwise. They are suitable for running in CI.