17 KiB
Linear Static 3D Euler Beam Reference Verification Report
Metadata
- feature_id:
linear-static-3d-euler-beam - model_id:
cantilever-beam-b33 - source_head:
451d9077ea70e3087454db3760e677da0095d27f - source_build_test_report:
docs/build-test-reports/linear-static-3d-euler-beam.md - source_reference_models:
docs/reference-models/linear-static-3d-euler-beam-reference-models.md - source_io_definition:
docs/io-definitions/linear-static-3d-euler-beam-io.md - source_implementation_plan:
docs/implementation-plans/linear-static-3d-euler-beam.md - source_implementation_report:
docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md - status:
pass-for-physics-evaluation - owner_agent:
reference-verification-agent - date:
2026-08-09 - review_fix_date:
2026-08-10
The prerequisite build/test report has status
pass-for-reference-verification. This report applies only the approved Abaqus
B33 reference tolerance. It does not approve physics sanity or release readiness.
Artifact Inventory
The approved B33 exception overrides the generic new-bundle inventory. The exact
four legacy files with spaces are the complete read-only reference bundle;
metadata.json is absent-allowed under project-wide policy, while README.md and a
stress CSV are contractually N/A and are not missing artifacts.
| item | exact path | status | direct audit evidence |
|---|---|---|---|
| reference directory | reference/cantilever beam/ |
present, exact inventory | Four regular files only; no extra entry. |
| reference input | reference/cantilever beam/cantilever beam.inp |
present, valid | 2,330 bytes; exactly one *ELEMENT, TYPE=B33 declaration at line 21. |
| displacement CSV | reference/cantilever beam/cantilever beam displacements.csv |
present, valid | Exact 9-column CAE header; 11 unique rows; 66 finite values. |
| reaction CSV | reference/cantilever beam/cantilever beam reactions.csv |
present, valid | Exact 9-column CAE header; 11 unique rows; 66 finite values. |
| elemental-force CSV | reference/cantilever beam/cantilever beam elemental forces.csv |
present, valid | Exact 7-column CAE header; 11 unique rows; 44 finite values. |
| optional metadata | reference/cantilever beam/metadata.json |
absent-allowed | Approved design, ADR-010, I/O definition, and reference-model contract supply provenance; absence is not a missing artifact. |
| legacy README | reference/cantilever beam/README.md |
N/A | Approved B33 legacy exception. |
| reference stress CSV | N/A | N/A | Abaqus beam-stress comparison is outside the approved V0 scope. |
| authoritative solver output | .harness/build/reference/cantilever-beam-b33/results.h5 |
present, valid | 25,336 bytes; generated by the fresh exact CTest; HDF5 schema inspected read-only with HDF5 2.1.1 utilities. |
| comparison ledger | .harness/build/reference/cantilever-beam-b33/comparison.json |
present, valid | 128,118 bytes; 176 row decisions, 16 component metrics, and passed=true. |
| solver debug CSV view | N/A | N/A | No derived FESA CSV was generated or used. |
Reference hashes
Fresh pre-comparison and post-comparison SHA-256 values were identical:
| exact approved legacy path | SHA-256 |
|---|---|
reference/cantilever beam/cantilever beam.inp |
E406EA9560321B791DBDB829E03BD24593B9875E0195D35B86BD931EDA122EF3 |
reference/cantilever beam/cantilever beam displacements.csv |
7B3312FBC8848E81D9A0FD4FF2B56BC1954636A2C14B5C1CBB269CB9477D3C31 |
reference/cantilever beam/cantilever beam reactions.csv |
BF30CDB0CD50106885DE14D63492737736C587426EBD787DE4F7EE6AA86DAA23 |
reference/cantilever beam/cantilever beam elemental forces.csv |
E5E77FEC0FA9482AE018DBF296E74D396335C7C711BD2E9AA2315247A34290BA |
git diff --exit-code -- reference/ exited 0 and
git status --short -- reference/ was empty after both comparison runs.
Authoritative HDF5 audit
h5ls and h5dump opened results.h5 read-only and established:
- schema version
0, solver version0.1.0, featurelinear-static-3d-euler-beam, formulationB33-3D-Euler-Bernoulli,Step-1, and frame0; - metadata unit label
user-consistent-unspecified, as required for ordinary.inpinterpretation; the approved reference-model contract supplies the external SI provenance used by this comparison; - coordinate convention
global-cartesian; beam-local=(t,n1,t-cross-n1); - source identity
path=C:/Users/baram/orca/workspaces/FESADev/LinearStatic/reference/cantilever beam/cantilever beam.inp;content_identity=fnv1a64:04543464cc970405; a fresh FNV-1a calculation of the input bytes reproduced04543464cc970405; - 11 nodes with stable internal IDs 0 through 10, source labels 1 through 11,
instance
PART-1_1-1, global coordinates(0..10,0,0); - 10 elements with stable IDs 0 through 9, source labels 1 through 10, consecutive connectivity and identity local axes;
- displacement and reaction shapes
[11,6], section-resultant shape[10,2,4], exact component/unit/coordinate/location attributes, and finite float64 values; - mandatory
stress_s11compound schema with 20 finite rows (10 elements x 2 Gauss points),S11,force/length^2, beam-local section-point attributes, and the requiredfesa-defaultcentroid identity.
Only results.h5 and comparison.json exist in the build-local evidence
directory.
Comparison Contract
- reference_csv_schema_version:
abaqus-cae-report-csv-v0 - hdf5_schema_version:
0 - model / frame normalization: CSV
Increment 1: Step Time = 1.000->(cantilever-beam-b33, Step-1, frame 0) - id_matching: exact preserved
instance_nameplus source node label; section-resultant endpoints project to an eligible source-node station - row-set policy: expected canonical keys are all 11 nodes crossed with 6 displacement, 6 reaction, and 4 section-resultant components
- displacement normalization:
U-U1/U-U2/U-U3/UR-UR1/UR-UR2/UR-UR3->UX/UY/UZ/URX/URY/URZ - reaction normalization:
RF-RF1/RF-RF2/RF-RF3/RM-RM1/RM-RM2/RM-RM3->RF1/RF2/RF3/RM1/RM2/RM3 - section normalization:
SF-SF1 -> N,SM-SM1 -> My,SM-SM2 -> Mz,SM-SM3 -> T - coordinates: global Cartesian for nodal quantities; beam local for section resultants
- output locations: nodal displacement/reaction and positive-local-x endpoint section cut projected to node station
- interior-node policy: both incident endpoints must first pass the approved component tolerance; the smaller stable element ID is selected without averaging
- tolerance source: requirements 036-039, ADR-014, approved I/O definition, and reference-model contract
- tolerance policy:
absolute_floor + 1e-6 * reference_scale - reference scale: maximum absolute value from read-only Abaqus rows in the same model, step/frame, quantity, and component only
- SI floors:
1e-9for displacement/rotation and1e-3for force/moment; zero scale uses the floor alone - fail-before-tolerance conditions: missing, extra, duplicate, nonfinite, schema-mismatched, or identity-mismatched row
- zero-reference policy: no zero clamp, deletion, substitution, or omission
The complete expected set of 176 canonical keys was reconstructed independently from the contract and matched the 176 unique ledger rows exactly. The 16 expected quantity/component keys matched the 16 unique metrics. Every serialized absolute error, tolerance, pass decision, Abaqus-only reference scale, maximum error, maximum tolerance-normalized error, RMS error, norm error, and worst-row index was recalculated from the row ledger and matched exactly. Missing rows, extra rows, duplicate rows, nonfinite rows, and failed rows were all zero.
The authoritative TASK-24 ComparisonReport, test contract, serialized JSON, and
Step 26 acceptance probe all define the verdict as the boolean passed. Final
review reproduced that the former $metrics.status sample failed against the valid
artifact, corrected the phase probe to $metrics.passed -eq $true, and reran the
exact acceptance chain successfully. The generated JSON has passed=true.
Execution Evidence
The exact command was run twice after the artifact precheck:
ctest --test-dir .harness/build -C Debug -R B33ReferenceComparison -V --output-on-failure
Both executions passed the single exact test
B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence 1/1.
Each run reset only .harness/build/reference/cantilever-beam-b33/ and regenerated
the same two build-local files. The comparison ledger was byte deterministic on
both runs:
- size:
128118bytes - SHA-256:
258347AEA791D981AEA9B2BCAD85DE5344D4859ECA3692DC5E7AA01A848F8E0D - verdict:
passed=true
results.h5 remains the authoritative solver output. The JSON is deterministic
review evidence derived directly from HDF5 and the read-only Abaqus CSV rows.
Quantity Results
maximum_relative_error below is calculated only where the Abaqus reference is
nonzero. It is reported for audit completeness, but it is not the acceptance
rule: near-zero Abaqus residues make row-relative error ill-conditioned. The
approved component-scale normalized error is absolute_error / row_tolerance.
| quantity | FESA HDF5 dataset | reference CSV | compared | missing | extra | nonfinite | max abs error | max relative error | max tolerance-normalized error | RMS error | norm error | worst ID/component by abs error | result |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| displacement | /steps/Step-1/frames/0/nodal/displacement |
reference/cantilever beam/cantilever beam displacements.csv |
66 | 0 | 0 | 0 | 5.333229170789711e-10 |
1.0 |
0.026602795021994977 |
1.1637590907608428e-10 |
9.454423547085314e-10 |
node 11 / UZ |
pass |
| reaction | /steps/Step-1/frames/0/nodal/reaction |
reference/cantilever beam/cantilever beam reactions.csv |
66 | 0 | 0 | 0 | 5.0514936447143555e-6 |
8.195638656616211e-13 |
8.187451205410801e-7 |
6.403678373262425e-7 |
5.202372903532068e-6 |
node 1 / RM2 |
pass |
| section resultant | /steps/Step-1/frames/0/element/section_resultant |
reference/cantilever beam/cantilever beam elemental forces.csv |
44 | 0 | 0 | 0 | 1.5600242861189492e-2 |
1.0000155680249674 |
0.0015598682992890203 |
0.0023518254339534184 |
0.015600245073676508 |
node station 11 / My |
pass |
| stress | /steps/Step-1/frames/0/element/stress_s11 |
N/A | N/A | N/A | N/A | 0 in 20 mandatory HDF5 rows | N/A | N/A | N/A | N/A | N/A | N/A | N/A for Abaqus comparison; HDF5 requirement passed |
The displacement row-relative maximum occurs at node 1 UZ, where the stored
reference residue is -1e-30; the section row-relative maximum occurs at free-end
My, where the stored reference residue is -1.56e-2. Neither row was clamped or
omitted. Their approved mixed-tolerance decisions pass.
Component metrics
Each group contains 11 matched rows. worst_row is the zero-based index in the
deterministic JSON row ledger.
| quantity | component | reference scale | row tolerance | max abs error | max normalized error | RMS error | norm error | worst row | worst identity | result |
|---|---|---|---|---|---|---|---|---|---|---|
| displacement | UX |
0 |
1e-9 |
0 |
0 |
0 |
0 |
0 | node 1 / UX |
pass |
| displacement | UY |
0 |
1e-9 |
0 |
0 |
0 |
0 |
1 | node 1 / UY |
pass |
| displacement | UZ |
0.0190476272 |
2.00476272e-8 |
5.333229170789711e-10 |
0.026602795021994977 |
2.790953046857666e-10 |
9.256544063926071e-10 |
62 | node 11 / UZ |
pass |
| displacement | URX |
0 |
1e-9 |
0 |
0 |
0 |
0 |
3 | node 1 / URX |
pass |
| displacement | URY |
0.00285714399 |
3.85714399e-9 |
1.000013943180944e-10 |
0.025926279801157852 |
5.801658540511775e-11 |
1.924192454063848e-10 |
52 | node 9 / URY |
pass |
| displacement | URZ |
0 |
1e-9 |
0 |
0 |
0 |
0 |
5 | node 1 / URZ |
pass |
| reaction | RF1 |
0 |
1e-3 |
0 |
0 |
0 |
0 |
66 | node 1 / RF1 |
pass |
| reaction | RF2 |
0 |
1e-3 |
0 |
0 |
0 |
0 |
67 | node 1 / RF2 |
pass |
| reaction | RF3 |
1e6 |
1.001 |
8.195638656616211e-7 |
8.187451205410801e-7 |
3.6239383393839433e-7 |
1.2019243735120167e-6 |
68 | node 1 / RF3 |
pass |
| reaction | RM1 |
0 |
1e-3 |
0 |
0 |
0 |
0 |
69 | node 1 / RM1 |
pass |
| reaction | RM2 |
1e7 |
10.001 |
5.0514936447143555e-6 |
5.05098854585977e-7 |
1.5261377760919117e-6 |
5.061626381684292e-6 |
70 | node 1 / RM2 |
pass |
| reaction | RM3 |
0 |
1e-3 |
0 |
0 |
0 |
0 |
71 | node 1 / RM3 |
pass |
| section resultant | N |
0 |
1e-3 |
0 |
0 |
0 |
0 |
132 | node 1 / N |
pass |
| section resultant | T |
0 |
1e-3 |
0 |
0 |
0 |
0 |
133 | node 1 / T |
pass |
| section resultant | My |
1e7 |
10.001 |
0.015600242861189492 |
0.0015598682992890203 |
0.004703650867906837 |
0.015600245073676508 |
174 | node 11 / My |
pass |
| section resultant | Mz |
0 |
1e-3 |
0 |
0 |
0 |
0 |
135 | node 1 / Mz |
pass |
The largest normalized comparison error across all 176 rows is
0.026602795021994977 at node 11 UZ, below the pass boundary of 1.0.
Row decision ledger
Every row decision is recorded in the deterministic build-local
comparison.json identified above. Its stable row order is displacement nodes
1-11 x six components, reaction nodes 1-11 x six components, then section node
stations 1-11 x [N,T,My,Mz]. Independent parsing confirmed:
- rows: 176
- unique canonical row keys: 176
- row decisions with
passed=true: 176 - row decisions with
passed=false: 0 - finite FESA/reference/error/tolerance records: 176
- missing / extra / duplicate / identity-mismatched rows: 0 / 0 / 0 / 0
- metrics: 16 unique expected component groups
Stress Reference Status
- Abaqus stress reference comparison: N/A
- reason: the approved V0 reference contract excludes beam-stress CSV comparison and substitutes analytical/unit plus HDF5 schema evidence
- mandatory solver stress output: pass
- direct evidence:
stress_s11exists with the exact compound schema, exact unit/coordinate/location attributes, two Gauss rows for each of ten elements, finiteS11, and deterministic element/Gauss ordering
No stress reference row was synthesized, and mandatory HDF5 stress was not treated as optional.
Physics Evidence Handoff
The comparator serialized the following evidence for independent Step 27 review:
| evidence | value |
|---|---|
| free residual norm | 9.356339321107032e-7 |
| applied force | [0, 0, -1000000] |
| reaction force | [0, 0, 999999.9999998808] |
| applied moment about origin | [0, 10000000, 0] |
| reaction moment about origin | [0, -9999999.999997258, 0] |
| endpoint consistency | passed=true |
These values are handed off as evidence only. This Step does not interpret them as a physics-sanity verdict.
Failure Classification
- classification:
N/A - primary_failure:
N/A - evidence: artifact precheck passed; exact comparison CTest passed twice; 176/176 rows and 16/16 metric groups passed; no schema, identity, unit, coordinate, nonfinite, missing/extra, or tolerance failure was found
- correction_handoff:
N/A
Handoff Recommendation
| target_agent | reason | required input |
|---|---|---|
| Physics Evaluation Agent | All required reference comparisons passed the exact approved tolerance. | This report, authoritative build-local results.h5, deterministic comparison.json, and its physics_evidence. |
The handoff status is pass-for-physics-evaluation only. Physics sanity remains
responsible for global force/moment equilibrium, reaction sign, displacement
direction, symmetry, section-force consistency, residual interpretation, and
model-coverage adequacy.
No-Change Assertion
- source_files_modified:
false - test_files_modified:
false - cmake_files_modified:
false - requirements_modified:
false - formulations_modified:
false - io_contract_modified:
false - reference_model_contract_modified:
false - reference_artifacts_modified:
false - tolerance_policies_modified:
false - Abaqus_or_other_reference_solver_executed:
false - owned_report_created:
true - phase_index_step26_modified:
true - phase_step26_acceptance_modified_for_review_fix:
true - phase_index_step26_summary_modified_for_review_fix:
true - generated_build_local_evidence:
true, ignored under.harness/build/ - notes: comparison and HDF5 inspection were read-only with respect to the approved reference bundle; the final review fix changed only acceptance/report/index documentation, and pre/post hashes, Git diff, and Git status agree
Open Issues
- Non-blocking evidence typo: the Step 25 build/test report prints the input
SHA-256 without the second
DBafter...1DB; the fresh 64-character pre/post value in this report matches the unchanged working-tree file. Reference Git diff/status and the end-to-end reference snapshot check are clean. - Resolved final-review finding: the Step 26 acceptance probe now reads the
authoritative boolean
passed, and its exact command passes on the current artifact. - No issue blocks Physics Evaluation.