pyGOTM Validation Report

Generated: 2026-06-01T23:33:58Z  ·  Total wall time: 7m 35s
PARTIAL PARITY   (15/22 cases passed)

Hardware

CPUAMD Ryzen 7 1800X Eight-Core Processor
Logical CPUs8
RAM23.4 GiB
Execution backendcpu
Numba0.65.1
Python3.12.13
OSLinux-6.14.0-37-generic-x86_64-with-glibc2.39

Validation Methodology

Discrete Frechet distance is computed per numeric variable after aligning both outputs onto a shared time grid. Status is driven by the score: normalized Frechet distance for physically meaningful signal magnitudes, or relative raw distance below the variable magnitude floor.

Raw distance: \(d_{raw} = F(\text{ref}, \text{calc})\), the discrete Frechet distance on original values.
Normalized distance: \(d_{norm} = F(N(\text{ref}), N(\text{calc}))\), where \(N\) is dynamic linear/log range normalization.
Relative raw distance: \(d_{rel} = d_{raw} / \max(|\text{ref}|, |\text{calc}|)\), used when the signal magnitude is below its variable floor.

If \(d_{raw} < 10^{-12}\), both distances are reported as zero. Reference and calculated values are shown at the largest absolute aligned difference.

PASS green score \(< 0.01\) Shape-equivalent within threshold. MARGINAL yellow score \(0.01\) to \(< 0.05\) Small shape deviation. Plot generated. DISCREPANTorangescore \(0.05\) to \(< 0.20\) Deterministic implementation difference likely. Plot generated. BROKEN red score \(\geq 0.20\) Severe mismatch or structural comparison failure.

Comparison plots are generated only for MARGINAL and DISCREPANT variables. Each case is split into PyGOTM and PyFABM sections.

Summary

CaseStatus PASSMARGINALDISCREPANTBROKEN Total varsWall time
couettePASS1000001000.9s
blackseaPASS1210001218.9s
channelPASS1000001000.7s
entrainmentPASS1000001000.2s
estuaryPASS1000001000.9s
flexPASS10400010410.9s
gotlandFAIL74141601043.4s
lago_maggiorePASS1050001056.7s
langmuirFAIL1111101131m 7s
liverpool_bayPASS1050001051.6s
medsea_eastFAIL12416001406.1s
medsea_westFAIL12811101408.8s
nns_annualFAIL1027601159.6s
nns_seasonalPASS10500010512.8s
ows_papaFAIL1111101133m 53s
plumePASS11300011353.0s
resoluteFAIL9217601156.6s
reynoldsPASS1050001055.0s
rousePASS1080001080.6s
seagrassPASS1040001040.2s
wave_breakingPASS1000001005.6s
asics_medPASS10400010412.0s
TOTAL (22 cases)2316673107m 35s