11 KiB
Translation Displacement Comparison Report
1. Metadata and scope
- feature_id:
nonlinear-static-newton-raphson - report_id:
TRANSLATION-REPORT-001 - date:
2026-08-26 - owner_agent:
implementation-agent(bounded diagnostic dispatch) - dispatch coordination SHA-256:
D7CE6264EE3FD20FB6CD74CF1FC28E05EEEEFA67B25AF737D2DF989059A72D6F - status:
translation-diagnostic-pass-not-a-gate - tolerance source:
docs/TOLERANCE.md
This focused report recomputes only global translational displacement components
U1/U2/U3 for the existing coarse reference/shellNL case and the added fine
reference/shellNL-meshfine case. It is diagnostic evidence for the observed
mesh sensitivity; it does not create or replace the canonical Stage 6
reference-comparison.md. In particular, it is not Step 12 implementation
evidence and does not change any workflow gate.
The two meshes are compared separately to their own read-only Abaqus CSV artifacts. No coarse-to-fine node interpolation, row pairing, averaging, or direct FESA-to-FESA error was used.
2. Artifact inventory and accepted-frame identity
All paths below are relative to the feature worktree. SHA-256 and byte counts were recomputed before comparison.
| mesh | artifact | path | bytes | SHA-256 |
|---|---|---|---|---|
| coarse | input | reference/shellNL/shellNL.inp |
4,778 | 4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2 |
| coarse | translation CSV | reference/shellNL/shellNL displacements.csv |
7,542 | 4E0F99CA9372B1ADF7FAF102F43BC0B887DC743FDEDA378E4342D2CF8E0C0786 |
| coarse | FESA HDF5 | .harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shellNL/shellnl-s4-final-441600152250700-0/shellNL_results.h5 |
934,602 | 9744814BEBF33486F526F821EDC7D96F072F34E988D70A00AC7AA063570FFA40 |
| fine | input | reference/shellNL-meshfine/shellNL-meshfine.inp |
56,516 | 40DF1CE77311C8D799564A21A60F3BDEBB8148D52CAE22B7292FDFAD32018220 |
| fine | translation CSV | reference/shellNL-meshfine/shellNL-meshfine displacements.csv |
111,184 | 740819FF8AED0E279961581F7CDBFA12784CFBA3A488C35A652E80103F64433F |
| fine | FESA HDF5 | .harness/build-ninja-msvc-debug/reference/meshfine-diagnostic/run-1787669003801/shellNL-meshfine_results.h5 |
10,547,651 | 81A3C431E2977D2482D212877C3C306FFBB19CD1F0C47FBF1C936AE06CC93ACA |
For both HDF5 artifacts, /steps/Step-1/accepted_frames has ten accepted rows.
The unique row satisfying is_factor_one=1 and load_factor=1.0 is
frame_index=9, increment_index=10, and iteration_count=2. Translation
values were projected only from
/steps/Step-1/frames/9/nodal/displacement, columns [UX, UY, UZ]:
| mesh | HDF5 node rows | displacement shape | CSV wide rows | exact CSV Frame |
|---|---|---|---|---|
| coarse | 49 | [49, 6] |
49 | Increment 10: Step Time = 1.000 |
| fine | 729 | [729, 6] |
729 | Increment 10: Step Time = 1.000 |
3. Source identity and prechecks
The comparison key is
(accepted_state=factor-one, canonical_instance_name, source_node_label, component)
canonical_instance_name is matched case-insensitively; the CSV/HDF5 source
spelling itself is not rewritten. CSV columns were selected after trimming only
surrounding header whitespace. The U-U1/U-U2/U-U3 columns map respectively to
HDF5 UX/UY/UZ. Row order is not part of the identity and was not used for
matching.
| mesh | component rows | duplicate CSV wide/component/HDF5 keys | nonfinite CSV/HDF5 values | missing HDF5 keys | extra HDF5 keys | precheck |
|---|---|---|---|---|---|---|
| coarse | 147 | 0 / 0 / 0 |
0 / 0 |
0 | 0 | pass |
| fine | 2,187 | 0 / 0 / 0 |
0 / 0 |
0 | 0 | pass |
Each CSV contains only the exact factor-one Frame value shown above. Thus the
row prechecks required before numerical tolerance evaluation pass for the
translation projection in each mesh.
4. Applied tolerance policy
U1/U2/U3 remain one global-length, blocking translation family within each
case. The component rows in Section 6 are diagnostics only: they use the same
case-family scale and near-zero band below and do not introduce a component
scale, component-specific tolerance, or a new approved family.
For the reference values r_i and FESA values f_i, docs/TOLERANCE.md is
applied exactly:
[ S=\max_i|r_i|,\qquad B=0.01S,\qquad e_i=|f_i-r_i|. ]
- If
|r_i| <= B, the row passes iffe_i <= B. - Otherwise, the row passes iff
e_i / |r_i| <= 0.05. - The whole family also requires
RMS(e_i) / S <= 0.01. - There is no independent absolute-error gate,
max(1,S)floor, zero clamp, row omission, or averaging. A zero-scale family would require exact FESA zero; neither translation family has zero reference scale.
5. Translation-family results
| mesh | rows | S |
B=0.01S |
near-zero / significant rows | row failures | max absolute error | max significant-row relative error | RMS error | L2(error) |
relative RMS | verdict |
|---|---|---|---|---|---|---|---|---|---|---|---|
| coarse | 147 | 2.3740820300000001e-05 |
2.3740820300000003e-07 |
122 / 25 | 0 | 1.9037855439354404e-07 |
8.5711169439298945e-03 |
2.4530813178127803e-08 |
2.9742030342848264e-07 |
1.0332757195473908e-03 |
pass |
| fine | 2,187 | 2.5795705400000001e-05 |
2.5795705400000002e-07 |
1,626 / 561 | 0 | 1.6193812501096337e-07 |
6.2777164841928829e-03 |
5.8615647876386634e-09 |
2.7411825664926473e-07 |
2.2723025777921402e-04 |
pass |
Both sets have zero row failures and relative RMS values below the common
0.01 threshold. This is a translation-only diagnostic pass; it is not a
full external-reference verdict for the nonlinear-static feature.
6. Component diagnostics under the unchanged family scale
The near-zero/significant counts and every row decision below use the Section 5
family band B, not a component-derived scale. A dash for maximum relative
error means all rows of that component were near-zero and were therefore judged
only by the approved absolute-band rule.
6.1 Coarse mesh
| component | rows | near-zero / significant | row failures | max absolute error | max significant-row relative error | RMS error | L2(error) |
worst row (node; fesa; reference; abs error) |
|---|---|---|---|---|---|---|---|---|
| U1 | 49 | 49 / 0 | 0 | 5.9371608358817413e-12 |
— | 1.7563955953584068e-12 |
1.2294769167508847e-11 |
12; -8.7994083858817417e-12; -2.8622475500000000e-12; 5.9371608358817413e-12 |
| U2 | 49 | 49 / 0 | 0 | 5.9379769034414602e-12 |
— | 1.7566506185832881e-12 |
1.2296554330083018e-11 |
19; 8.7996068934414599e-12; 2.8616299900000001e-12; 5.9379769034414602e-12 |
| U3 | 49 | 24 / 25 | 0 | 1.9037855439354404e-07 |
8.5711169439298945e-03 |
4.2488614702881049e-08 |
2.9742030292016737e-07 |
2; -2.3550441745606457e-05; -2.3740820300000001e-05; 1.9037855439354404e-07 |
6.2 Fine mesh
| component | rows | near-zero / significant | row failures | max absolute error | max significant-row relative error | RMS error | L2(error) |
worst row (node; fesa; reference; abs error) |
|---|---|---|---|---|---|---|---|---|
| U1 | 729 | 729 / 0 | 0 | 5.6550975712048108e-12 |
— | 1.5513648050863109e-12 |
4.1886849737330394e-11 |
27; -1.1143569120481096e-13; 5.5436618799999999e-12; 5.6550975712048108e-12 |
| U2 | 729 | 729 / 0 | 0 | 5.6547834814404039e-12 |
— | 1.5512360377367428e-12 |
4.1883373018892053e-11 |
16; -1.1132282144040392e-13; 5.5434606599999999e-12; 5.6547834814404039e-12 |
| U3 | 729 | 168 / 561 | 0 | 1.6193812501096337e-07 |
6.2777164841928829e-03 |
1.0152527787009038e-08 |
2.7411825024924402e-07 |
2; -2.5633767274989038e-05; -2.5795705400000001e-05; 1.6193812501096337e-07 |
7. Deterministically ordered largest absolute-error rows
Rows are listed by descending absolute error, then source node label and
component for a deterministic display. part-1-1 below is the canonical
case-insensitive instance identity.
| mesh | rank | key (instance, node, component) |
FESA | reference | absolute error | applied rule and metric |
|---|---|---|---|---|---|---|
| coarse | 1 | (part-1-1, 2, U3) |
-2.3550441745606457e-05 |
-2.3740820300000001e-05 |
1.9037855439354404e-07 |
relative; 8.0190386005130586e-03 |
| coarse | 2 | (part-1-1, 35, U3) |
-1.2104431681576916e-05 |
-1.2190867900000000e-05 |
8.6436218423083233e-08 |
relative; 7.0902432158323394e-03 |
| coarse | 3 | (part-1-1, 39, U3) |
-1.2104431681576916e-05 |
-1.2190867900000000e-05 |
8.6436218423083233e-08 |
relative; 7.0902432158323394e-03 |
| fine | 1 | (part-1-1, 2, U3) |
-2.5633767274989038e-05 |
-2.5795705400000001e-05 |
1.6193812501096337e-07 |
relative; 6.2777164841928829e-03 |
| fine | 2 | (part-1-1, 21, U3) |
-2.3863834908375246e-05 |
-2.3782464300000001e-05 |
8.1370608375244783e-08 |
relative; 3.4214540322150206e-03 |
| fine | 3 | (part-1-1, 69, U3) |
-2.3863834908375246e-05 |
-2.3782464300000001e-05 |
8.1370608375244783e-08 |
relative; 3.4214540322150206e-03 |
8. Mesh trend interpretation
The fine-mesh translation relative RMS divided by the coarse-mesh translation relative RMS is
[ \frac{2.2723025777921402\times10^{-4}} {1.0332757195473908\times10^{-3}} =0.21991251074664606. ]
This is a 78.008748925335397% reduction in the separately measured
reference-normalized translation RMS. It is consistent with the hypothesis
that the coarse-case discrepancy is mesh-sensitive, and the fine case also
passes the same row/RMS policy.
It is not an observed order of convergence, a proof of monotonic convergence, or a solution-accuracy claim outside these translation rows: the two models have different meshes and distinct external-reference outputs, and no common-mesh interpolation or mesh-size-rate study was performed.
9. Explicit exclusions and no-change assertion
This report deliberately excludes:
- all reaction quantities;
UR1/UR2/UR3rotations;- all stress quantities, including the user-noted
reference/shellelement-label ordering change; - Newton convergence lifecycle and iteration-log acceptance beyond identifying the accepted factor-one HDF5 frame;
USER-DECISION-004disposition;- Step 11 and Step 12 status, Physics Evaluation, and Release readiness.
No source, test, CMake, comparator, tolerance policy, phase file, canonical
reference-comparison report, declared input, or reference artifact was modified
for this report. The report also does not create implementation-report.md,
build-test.md, or reference-comparison.md.
10. Handoff
Within this narrow scope there is no artifact, identity, finite-value, or translation-tolerance blocker. The report is handed to the Coordinator as translation-only diagnostic evidence; gate ownership and all excluded work remain unchanged.