Home Developers Evidence physics.fluid.specific_energy

Public evidence

physics.fluid.specific_energy

Machine-checked verification for calculation version 1.0.0 · tier engine_tested

Verification

17/17 calculation tests · Production surface contract 3/3

  • Golden tests 2 / 2
  • Boundary tests 10 / 10
  • Property tests 5 / 5
  • Production surface contract 3 / 3
  • }
  • Engine tested Yes
  • Source checked Yes
  • Artifact integrity PASS
  • Production attestation Embedded snapshot: STALE · Last attested schema matched 1.0.0 snapshot / local build · Semantic contract ✓ · Last attestation PASS · current evidence changed · re-attestation required · Public/cache ✓ · Origin ✓ · Live production status PASS (0 stale; 163 CURRENT) @ 2026-09-17T09:03:11.906Z
  • Semantic contract PASS
  • Evidence attested at 2026-09-17T09:03:11.074Z
  • Last production check 2026-09-17T09:03:11.074Z
  • Public / cache PASS
  • Origin PASS
  • Supplemental domain review Not performed
  • Named expert review Not performed
  • release artifacts aligned PASS
  • schema valid input executes PASS
  • engine success output validates schema PASS

Fingerprint sha256:3d8a44aacc588095049cf010035958932598abd380ff7bd5e847832d35449ddc

Input schema sha256:99ebbe504852be356d8b50c68278b5b8319290c28246f89d3c685bff1f06b3e8 · Output schema sha256:b5c373af8cd3ad35d3f0c9733ef549cdd4447de617b080b2841b4838f24ec341 · Build-time SHA-256 digests prove published artifacts agree with each other (release_integrity.scope=workspace). Production attestation GETs canonical URLs twice (public/cached view and origin), including Capability HTML, via npm run attest:production --write (published at /.well-known/calculatorx-production-attestation.json) and fails if the public Capability page advertises a different calculation_version. This is artifact consistency, not an independent immutable release log.

Build & scope

Engine identity and declared limitations.

Tool
specific-energy
Engine
specific-energy
Engine build
2026-09-17
Evidence core
2026-09-17T08:22:37.002Z
Rendered
2026-09-17T08:49:50.940Z
Last reviewed

Assumptions

  • Open-channel specific energy: E = y + v² / (2g); default g=9.80665 m/s²
  • Invert y = E − v²/(2g) and v = √(2g(E−y)); require E > y
  • Not a Froude wrap, not a hydraulic jump, not Manning, not Q=Av

Limitations

  • Open-channel specific energy: E = y + v² / (2g); default g=9.80665 m/s²
  • Invert y = E − v²/(2g) and v = √(2g(E−y)); require E > y
  • Not a Froude wrap, not a hydraulic jump, not Manning, not Q=Av

Sources

Standards and references supporting this tool specification. Methods are listed separately — they are algorithms, not bibliographic sources.

Published checks

Golden, boundary, and property cases included in this evidence build.

IDKindStatusDetail
golden-se-EgoldenpassExpected y=1 · v=2 · E=1.2039432425955856 · mode=energy · model=specific_energy · Actual mode=energy · E=1.2039432425955856 · y=1 · v=2 · g=9.80665 · model=specific_energy
golden-se-vgoldenpassExpected v=2 · model=specific_energy · Actual mode=velocity · E=1.2039432425955856 · y=1 · v=1.9999999999999998 · g=9.80665 · model=specific_energy
boundary-se-yboundarypassExpected y=1 · model=specific_energy · Actual mode=depth · E=1.2039432425955856 · y=1 · v=2 · g=9.80665 · model=specific_energy
boundary-se-missingboundarypassExpected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT
boundary-se-EyboundarypassExpected VALUE_OUT_OF_RANGE · Actual VALUE_OUT_OF_RANGE
boundary-se-FrboundarypassExpected MIXED_INPUT_ENCODING · Actual MIXED_INPUT_ENCODING
boundary-se-nboundarypassExpected MIXED_INPUT_ENCODING · Actual MIXED_INPUT_ENCODING
boundary-se-AboundarypassExpected MIXED_INPUT_ENCODING · Actual MIXED_INPUT_ENCODING
boundary-se-y1boundarypassExpected MIXED_INPUT_ENCODING · Actual MIXED_INPUT_ENCODING
boundary-se-LboundarypassExpected MIXED_INPUT_ENCODING · Actual MIXED_INPUT_ENCODING
boundary-se-froudeboundarypassExpected INVALID_MODE · Actual INVALID_MODE
boundary-se-zeroboundarypassExpected VALUE_MUST_BE_POSITIVE · Actual VALUE_MUST_BE_POSITIVE
property-se-EpropertypassE=y+v²/(2g)
property-se-roundtrip-ypropertypassy invert
property-se-roundtrip-vpropertypassv invert
property-se-gtpropertypassE>y
property-se-modelpropertypassspecific_energy