Verification & Validation Standards (ASME V&V 20, IF97) — ThermoFluidCalc
🛡️ Scientific Quality Assurance

Verification, Validation & Accuracy Standards

ThermoFluidCalc employs rigorous code verification, double-precision Fortran backend kernels, and cross-validation against international reference standards (ASME, IAPWS, NIST, NASA).

1. ASME V&V 20-2009 Standard for CFD Verification

Verification is defined as the process of determining that a computational model implementation accurately represents the developer's conceptual description and the solution to the mathematical equations.

All spatial and temporal discretization calculators on ThermoFluidCalc strictly adhere to the ASME V&V 20-2009 Standard (Standard for Verification and Validation in Computational Fluid Dynamics and Heat Transfer), implementing:

  • Observed Order of Convergence ($p$): Evaluated using 3 grid solutions ($N_1, N_2, N_3$) via Richardson extrapolation.
  • Grid Convergence Index ($GCI$): Normalized numerical uncertainty with safety factors ($F_s = 1.25$ for 3 grids).
  • Asymptotic Range Check: Verifying that $GCI_{23} / (r^p GCI_{12}) \approx 1.0$.

2. IAPWS-IF97 Industrial Formulation for Water & Steam

Thermodynamic state properties of water and steam are computed using the IAPWS-IF97 formulation adopted by the International Association for the Properties of Water and Steam.

Our Fortran 90 steam kernel divides the $P$-$T$ thermodynamic surface into 5 distinct regions (subcooled liquid, superheated steam, critical region, and high-temperature steam up to $2000^\circ\text{C}$ and $1000\text{ bar}$). All computed properties match official IAPWS verification tables to within $< 0.005\%$ relative deviation.

3. Published Analytical Benchmark Comparison Matrix

The table below compares ThermoFluidCalc outputs directly against reference analytical solutions and NIST standard reference data:

Test Problem Standard Reference Input Parameters Reference Solution ThermoFluidCalc Error
Rankine-Hugoniot Shock NACA SP-3012 $M_1 = 3.0, \; \gamma = 1.4$ $P_2/P_1 = 10.3333$ $10.333333$ 0.000%
Prandtl-Meyer Angle Anderson (Gas Dynamics) $M = 2.0, \; \gamma = 1.4$ $\nu = 26.3798^\circ$ $26.37976^\circ$ < 0.001%
Steam Tables (Region 1) IAPWS-IF97 Table 33 $T = 300\text{ K}, \; P = 3\text{ MPa}$ $v = 1.00215 \times 10^{-3}$ $1.002151 \times 10^{-3}$ 0.000%
Colebrook Friction Factor Moody (1944) $Re = 10^5, \; \epsilon/D = 0.001$ $f = 0.02221$ $0.022212$ < 0.005%
Dry Air Viscosity NIST Chemistry WebBook $T = 300\text{ K}, \; P = 1\text{ atm}$ $\mu = 1.846 \times 10^{-5}\text{ Pa}\cdot\text{s}$ $1.8461 \times 10^{-5}\text{ Pa}\cdot\text{s}$ < 0.005%

4. Fortran 90 IEEE-754 Double Precision Architecture

Unlike client-side JavaScript calculations which can suffer from 32-bit floating point precision loss, all backend solvers on ThermoFluidCalc are implemented in standalone Fortran 90 (`real(kind=8)`):

integer, parameter :: dp = selected_real_kind(15, 307)
real(dp) :: gamma, mach, p_ratio
! Guaranteed 15-17 significant decimal digits IEEE-754