fix: normalize closed-form Smagorinsky strain magnitude
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# Minimal Smagorinsky normalization integration candidate
|
||||
|
||||
This local candidate changes only the two closed-form D2Q9/D3Q19 coefficients
|
||||
from 18 to 18 sqrt(2), plus their convention comments. The intended convention
|
||||
is |S| = sqrt(2 S:S), with self-consistent effective tau. No Cs default,
|
||||
iterative formula/cap/iteration count, collision dispatch, AMR guard, inlet,
|
||||
channel-parity rule, or unrelated source file changes.
|
||||
|
||||
The resulting turbulence_smag.cuh SHA256 is
|
||||
`a3db46c2e7d27530b2d1436e65cdbed0b72cc7e047bfbeef2a640877271b51aa`,
|
||||
exactly the independently reviewed temporary correction used in the paired
|
||||
scalar and end-to-end flow experiments. Its uncorrected baseline remains at
|
||||
validation checkpoint `9805383f9c50d867e8555471baf5dbda8333a652`.
|
||||
|
||||
## Evidence and limits
|
||||
|
||||
The separately audited scalar-helper GPU diagnostic on the cd3 source campaign
|
||||
covered 48 cases per variant. All 32 paired iterative results were bit-identical;
|
||||
maximum patched closed-form error was approximately 1.19e-7, versus 0.06454 for
|
||||
the baseline against the same standard convention. This is scalar evidence,
|
||||
not full-collision or turbulence qualification.
|
||||
|
||||
The independently reviewed wall-bounded, x-periodic SRT/shifted-FP32/double-buffer
|
||||
shear experiment distinguished baseline from corrected source under identical
|
||||
predeclared criteria. Baseline Cs=1 SGS decrement errors at the last two
|
||||
checkpoints were approximately 28.50% and 28.05%; corrected errors were 0.0628%
|
||||
and 0.00612%. Corrected maximum Cs=1 profile error was approximately 0.11344%,
|
||||
and the Cs=0 observations were identical between variants. Cs=1 is an amplified
|
||||
normalization diagnostic, not a recommended physical coefficient. These data
|
||||
qualify this bounded normalization comparison, not general turbulence accuracy.
|
||||
|
||||
The current direct-header host regression uses the existing independent
|
||||
Hermite tensor construction and quadratic bisection oracle. It covers 120
|
||||
parameter subcases across D2/D3, Cs=0/.16, rho=.7/1/1.3, tau0=.56/.8,
|
||||
equilibrium, both signs of shear and trace-free extension, including a 3D axis.
|
||||
It also checks converged iterative agreement, Cs=0 omega guard bounds, and
|
||||
explicitly proves that removing sqrt(2) in temporary headers fails the oracle.
|
||||
No stored candidate header or full solver fixture is added.
|
||||
|
||||
MRT full-trace/bulk coupling, forcing/Guo correction, other streaming/storage
|
||||
paths, three-dimensional turbulent flows, and AMR LES remain uncertified.
|
||||
Full-stress closed form and deviatoric/capped iteration intentionally need not
|
||||
agree on isotropic or cap-active stresses. Existing guards remain unchanged.
|
||||
|
||||
## Run and retain provenance
|
||||
|
||||
From this candidate checkout:
|
||||
|
||||
PYTHONPATH=src python tests/unit/test_smagorinsky_normalization.py -v
|
||||
PYTHONPATH=src python tests/unit/test_les_flow_runner.py -v
|
||||
|
||||
The flow runner already supports `--variant corrected` against the exact
|
||||
reviewed helper hash. Its source-pin tests now exercise that current variant;
|
||||
they still verify that the archived baseline variant rejects the corrected
|
||||
source and that unrelated source tampering is rejected.
|
||||
|
||||
Historical Re100, Jet, matched-DFG and paired-scalar manifests/runners are not
|
||||
repinned or weakened. Their baseline-source guards are expected to reject this
|
||||
changed production tree. Run those archived source-specific checks on the clean
|
||||
9805383 checkpoint; their old GPU evidence does not become evidence for this
|
||||
candidate. The new direct-current-header test is the regression for corrected
|
||||
production. Do not describe the historical full suite as passing on this tree.
|
||||
|
||||
Before publication or main integration, obtain final independent diff review
|
||||
and rerun the applicable scalar/flow GPU commands on the exact final candidate
|
||||
commit after the executor reconnects. Retain new checkout/import/source-hash
|
||||
receipts and compare against the frozen baseline using separate processes.
|
||||
A new commit receipt is required even though its corrected header matches the
|
||||
previously tested temporary correction. No GPU rerun, publication, or main
|
||||
merge is claimed by this candidate preparation.
|
||||
Reference in New Issue
Block a user