Preserve bounded validation evidence and historical failures
This commit is contained in:
1 parent
cdbb9c42f6
commit
263f3b0c7a
239 files changed
+74191
No files matched your search
@@ -0,0 +1,124 @@
|
||||
Local-stress observable v1 — Horsea review and single-run handoff
|
||||
2026-10-13, Asia/Shanghai. Observation-only; reference unchanged.
|
||||
|
||||
Actual result
|
||||
Exactly one execution of the delivered script: 7 runs x 32 coarse steps, exit 0.
|
||||
Original 22 Boolean hard checks plus 7 stress-finite checks: all 29 pass.
|
||||
Both ALL_HARD_CHECKS_PASS_V02 and ALL_HARD_CHECKS_PASS_WITH_STRESS are True.
|
||||
No retries, added cases, modified formulas, relaxed tolerances or new R thresholds.
|
||||
|
||||
Review status (separate from numerical results)
|
||||
Grok authored the implementation and ran it in an independent environment.
|
||||
The coordinating root reported an independent static review with no substantive
|
||||
issue. Claude's implementation-code review is paused due to an API error and
|
||||
has NOT completed. Claude's earlier specification discussion and the table's
|
||||
"implicit-definition checks" do not constitute a completed code review.
|
||||
Horsea read all 902 script lines, original stdout, table and manifest, reviewed
|
||||
the related reference paths and local reference sources below, and found no
|
||||
substantive numerical objection blocking this bounded diagnostic rerun.
|
||||
|
||||
Scope and static review
|
||||
Applied .github/skills/lbm-ref-architecture-guard/SKILL.md and its reference/
|
||||
architecture checklists. No applicable ancestor AGENTS.md was found.
|
||||
The incoming script is standalone NumPy+stdlib, with no runtime dependency on
|
||||
the previous shear script. Its original bytes are preserved. Architecture:
|
||||
main -> run_uniform(B/C) / run_composite(A/A_T) -> arrival populations ->
|
||||
sigma_xy_cell -> level-specific sigma restriction -> Fourier R and profiles.
|
||||
The composite advance uses the existing CPUREF-0.3 API without wrapping or
|
||||
changing its algorithm. The external recorder pins the reference before import;
|
||||
the diagnostic's printed REF_SHA_MATCH alone would not enforce that pin.
|
||||
|
||||
Reference findings (read-only, no imported reference packages)
|
||||
1. ref/lbmpy/src/lbmpy/macroscopic_value_kernels.py, strain_rate_tensor_getter:
|
||||
the second moment is formed from f minus equilibrium; S=-3*omega*Pi/(2*rho).
|
||||
2. ref/OpenLB/src/functors/lattice/latticePhysStrainRate2D.hh independently uses
|
||||
the negative nonequilibrium-moment sign and omega/(2*rho*cs^2*dt) conversion.
|
||||
3. ref/lbmpy/src/lbmpy/relaxationrates.py gives nu=(tau-.5)/3. Combining
|
||||
sigma=2*rho*nu*S yields -(1-1/(2*tau))*Pi_neq in lattice units.
|
||||
4. ref/OpenLB/src/core/unitConverter.h converts viscosity by dx^2/dt and
|
||||
pressure/stress by density*(dx/dt)^2. Here dx/dt=1 on both levels and density
|
||||
units match, so no additional scale factor belongs in this observation.
|
||||
5. Existing cpu_reference.py: paired D2Q9 ordering, physical patch offset,
|
||||
acoustic tau scaling, arrival_f input/output, tick increment 2, and owned
|
||||
leaf-cell masks. The pinned full reference was reviewed in the prior round;
|
||||
this review reread its maps, collision/explosion, leaf totals and advance path.
|
||||
|
||||
Verified definitions
|
||||
Initialization remains equilibrium of the exact cell-average sine velocity,
|
||||
not exact cell averages of nonlinear f_eq. Fine coordinates include patch offset.
|
||||
All final observations use coarse step 32: composite arrival_f tick=64,
|
||||
uniform B after 64 collide-stream substeps and C after 32. No extra collision.
|
||||
Pi_xy^neq=sum(cx*cy*f)-rho*ux*uy is evaluated per owned cell. Each level applies
|
||||
its own tau to obtain sigma BEFORE 2x2 volume averaging. Covered coarse values
|
||||
and fine ghosts are excluded. Velocity restriction averages rho/j before u=j/rho.
|
||||
R uses a_u=(2/256)*sum(u*sin) from the same run and final arrival state, not an
|
||||
analytic decay amplitude. This raw Fourier coefficient includes the cell-average
|
||||
sinc factor; the old decay fit amplitude uses its sinc-normalized template.
|
||||
The cosine stress projection and velocity projection use a common 16x16 grid.
|
||||
Signed horizontal profiles average columns 4:12 and retain all 16 rows; rows
|
||||
3,4,11,12 flank the patch faces. The transposed case reports R only, no profile.
|
||||
|
||||
Runtime evidence
|
||||
Existing Python 3.10.13 / NumPy 1.26.4, CPU only. run_once.py is a standalone
|
||||
stdlib recorder derived from the previous recorder; it does not execute or
|
||||
import the prior diagnostic. It checks all four delivered file hashes, the tar
|
||||
hash and reference hash before launch, and refuses existing logs/results.
|
||||
Parent and child both used /usr/bin/prlimit with soft=hard bounds:
|
||||
--as=268435456 --fsize=2097152 --core=0
|
||||
Process-only OPENBLAS_NUM_THREADS=1, PYTHONDONTWRITEBYTECODE=1,
|
||||
PYTHONNOUSERSITE=1, PYTHONOPTIMIZE=0; PYTHONPATH is only the current multigrid
|
||||
directory. CPU_REFERENCE_PATH explicitly selects its cpu_reference.py.
|
||||
results_horsea.json and stdout_horsea.txt retain full argv, environment, cwd,
|
||||
preflight SHA values, versions, times, exit status and measured RSS.
|
||||
UTC start/end: 2026-10-13 06:01:08.222086 / 06:01:10.671541
|
||||
Local start/end: 14:01:08 / 14:01:10 Asia/Shanghai.
|
||||
Child elapsed 2.435032 s; peak RSS 38.41796875 MiB; parent peak 18.75 MiB.
|
||||
Combined stdout/stderr with recorder metadata: 17091 bytes, below 2 MiB.
|
||||
|
||||
Grok and prior-result comparison
|
||||
comparison.json parses each of the 29 Boolean checks, the original 22 names,
|
||||
both all-pass markers, R values, ratios and every profile value. HARD CHECKS,
|
||||
STRESS FINITE CHECKS, SUMMARY_LINES and DECAY FITS blocks all match Grok
|
||||
exactly at printed precision. All recorded numeric differences are zero.
|
||||
The ten profile rows in SUMMARY_LINES contain 160 scalar entries total.
|
||||
Six current lambda values also match the prior local shear output at 8 decimal
|
||||
places (the precision emitted by this script). Prior 10-decimal values are
|
||||
retained in the comparison for provenance, not claimed freshly measured here.
|
||||
Full stdout hashes need not match across machines; paths, runtime and recorder
|
||||
metadata differ. Printed equality is not full-precision field equality.
|
||||
|
||||
R at coarse step 32 (diagnostic only):
|
||||
phi0: A=1.011774619306 B=.998555854025 C=1.008383635570
|
||||
phiPi/2: A=1.011850480751 B=.998555854025 C=1.008383635570
|
||||
A_T: 1.011850480751
|
||||
|
||||
Interpretation limits (separate from pass/fail checks)
|
||||
The retained transpose assertion covers u/rho, not stress. R_A_T agreeing with
|
||||
R_A at phiPi/2 is a reported observation, NOT a new stress-transpose hard test.
|
||||
Seven finite-stress checks do not establish local stress accuracy, convergence,
|
||||
interface stress-transfer correctness or any causal mechanism. One resolution,
|
||||
tau pair, patch and short window remain in scope. Composite conservation uses
|
||||
the reference leaf-total helper; this is not a new independent conservation
|
||||
oracle. Time-held ghosts and unscaled nonequilibrium transfer remain candidate,
|
||||
non-exhaustive explanations. No time-interpolated ghosts were implemented.
|
||||
|
||||
Frozen state and handoff
|
||||
baseline.json froze HEAD, Git status and 292 old-file hashes, including all
|
||||
previous CPUREF/shear evidence. Its stated hash scope excludes the read-only
|
||||
ref tree, symlinks and bytecode. Final manifest.json verifies the frozen files,
|
||||
original inputs and reference, and lists new paths/bytes/SHA256; its own SHA is
|
||||
reported in the handoff. Only this evidence directory and the delivered
|
||||
local_stress_observable_v1.py were added. No production imports, GPU/solver
|
||||
runs, installs, environment/SSH/system changes, DynamisLab access, commit or push.
|
||||
Stopped here for joint acceptance; Claude code review remains outstanding.
|
||||
|
||||
User authorization evidence, verbatim as relayed by the coordinating thread
|
||||
<transcript_evidence>
|
||||
assistant(Sentinel_65ef50edab8c819194404548b6b8e469): 新增的局部剪切应力观测已在 Grok 那边跑通,但同步到 Horsea 又被拦住:审查把上次许可限定为那一份文件。
|
||||
|
||||
你是否允许本轮 AMR 协作后续的代码、测试、日志和报告,经现有 SSH 同步到 Horsea,并只在 CelerisLab/tests/validation/multigrid 内审阅和运行小型 CPU 验证?包含这次新观测;每次仍限 256 MiB 内存、2 MiB 输出,不改环境或生产代码。
|
||||
user(Sentinel_d0d3a42b2c088191aa8aebc105fb1b27): 允许,你用GPU验证都行
|
||||
</transcript_evidence>
|
||||
The coordinating instruction narrows this run to CPU observation-only. Future
|
||||
GPU work was not performed or specified here; this is not unrestricted remote
|
||||
operation authorization. Input transfer was already complete when received.
|
||||
Reference in new issue
Block a user