10 KiB
Nonlinear Static Newton-Raphson Reference Comparison
Verdict
blocking-pass-with-review-only-findings. FESA HDF5 is the authoritative solver output. The
Abaqus CSV files are read-only external comparison evidence; the observed agreement does not imply
Abaqus S4 internal formulation, integration, stabilization, or recovery equivalence.
Overall handoff status: pass-for-physics-evaluation. This handoff classification records that
all blocking comparisons passed; the detailed verdict above remains
blocking-pass-with-review-only-findings because the six local RF/RM findings are review-only.
The literal execution order was ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT.
The COMPARE commands were
ctest --preset windows-msvc-ninja-debug -R "^NonlinearStaticReference\." --output-on-failure
(exit 0, 905.404 s, 9/9 passed), followed by
ctest --preset windows-msvc-ninja-debug -R "^(NonlinearStaticReference|ReferenceTolerance|Mitc4Reference)\." --output-on-failure
(exit 0, 930.617 s, 9/9 matched tests passed). The fresh full CTest run then passed 302/302;
its command and output tail are recorded in build-test.md.
Artifact check
Every input, displacement CSV, reaction CSV, and stress-inventory CSV was readable, finite where required, unique by declared source key, and identical before and after all copied-input executions.
| case / role | exact path | bytes | pre/post UTC mtime | SHA-256 |
|---|---|---|---|---|
| fine primary input | reference/shellNL-meshfine/shellNL-meshfine.inp |
56,516 | 2026-08-25T13:53:49.1919675Z |
40DF1CE77311C8D799564A21A60F3BDEBB8148D52CAE22B7292FDFAD32018220 |
| fine U | reference/shellNL-meshfine/shellNL-meshfine displacements.csv |
111,184 | 2026-08-25T14:06:00.1262830Z |
740819FF8AED0E279961581F7CDBFA12784CFBA3A488C35A652E80103F64433F |
| fine local reaction | reference/shellNL-meshfine/shellNL-meshfine reactions.csv |
108,951 | 2026-08-25T14:05:06.2950127Z |
AEB01C98C596792B0E5F2B86A81945CAB0BEB0C6969CFC6738C6F81DF1F94363 |
| fine stress inventory | reference/shellNL-meshfine/shellNL-meshfine stresses.csv |
1,036,869 | 2026-08-25T14:04:24.2027682Z |
6D6213AB5DB9D6B1F5FBD641367D08BACC805967B6C5A95BCE0E1A5395377782 |
| coarse companion input | reference/shellNL/shellNL.inp |
4,778 | 2026-08-23T16:36:23.9302881Z |
4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2 |
| coarse U | reference/shellNL/shellNL displacements.csv |
7,542 | 2026-08-23T16:36:23.9282815Z |
4E0F99CA9372B1ADF7FAF102F43BC0B887DC743FDEDA378E4342D2CF8E0C0786 |
| coarse local reaction | reference/shellNL/shellNL reactions.csv |
7,443 | 2026-08-23T16:36:23.9292877Z |
001CB1541A9E94424E5E650509D46BC8724970DF4DE47184D9DB09C7938AB069 |
| coarse stress inventory | reference/shellNL/shellNL stresses.csv |
54,720 | 2026-08-23T16:36:23.9302881Z |
5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F |
| linear control input | reference/shell/shell.inp |
4,770 | 2026-08-23T16:36:23.9272805Z |
4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF |
| linear U | reference/shell/shell displacements.csv |
5,592 | 2026-08-23T16:36:23.9262810Z |
C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B |
| linear reaction inventory | reference/shell/shell reactions.csv |
5,524 | 2026-08-23T16:36:23.9262810Z |
0E34EEC27E700C3C0C744C1DAFD8A3B95EFEF34B8616FE96665876586FE82D41 |
| linear stress inventory | reference/shell/shell stresses.csv |
43,502 | 2026-08-23T16:36:23.9272805Z |
2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7 |
Fine and coarse required nonlinear CSV rows had exact Frame=Increment 10: Step Time = 1.000.
The HDF5 /steps/Step-1/accepted_frames table had exactly one factor-one row: frame 9, increment
10, load factor 1.0, two Newton iterations. Reference copies and generated artifacts were confined
to these build-local directories:
| case | copied input | generated results / log |
|---|---|---|
| fine | .harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shellNL-meshfine/shellnl-meshfine-s4-final-72767400538200-0/shellNL-meshfine.inp |
.harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shellNL-meshfine/shellnl-meshfine-s4-final-72767400538200-0/shellNL-meshfine_results.h5, SHA-256 2E9817E173D73FD91C2D34864B69A1EC37483CB25951FB7CCE85895A6C87D2C6; .harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shellNL-meshfine/shellnl-meshfine-s4-final-72767400538200-0/shellNL-meshfine_log.txt, SHA-256 1DB6FE4AAA2F1443ACC7F9B3F919CC8DD873C90392121DAB6509F1693435DA27 |
| coarse | .harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shellNL/shellnl-s4-final-73175241456500-1/shellNL.inp |
.harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shellNL/shellnl-s4-final-73175241456500-1/shellNL_results.h5, SHA-256 130E2E7B73B022F216A7A34C88D58114A62595ADD556A0D202B8A7FAC7391F39; .harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shellNL/shellnl-s4-final-73175241456500-1/shellNL_log.txt, SHA-256 3D5C4F1B20384655F9012ADE842B99E3B06B3799FC9AB16DD6FD141E18B77906 |
| linear | .harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shell/shell-s4-linear-limit-72742739390700-2/shell.inp |
.harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shell/shell-s4-linear-limit-72742739390700-2/shell_results.h5, SHA-256 8AEE34D5BC80382D7E6DE85C51F0F8BCBF451CD5F5C7B8DDA6C585EB22B31763; .harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shell/shell-s4-linear-limit-72742739390700-2/shell_log.txt, zero bytes, SHA-256 E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855 |
Compare and classify
Rows were matched by (case_id, accepted_state, canonical_instance_name, source_node_label, component), never CSV order. Required HDF5 projections were factor-one
/steps/Step-1/frames/9/nodal/displacement, generalized_internal_force,
generalized_external_force, generalized_residual, reaction, /model/nodal_constraint_mask,
and /global/equilibrium; the linear control uses /steps/Step-1/frames/0/nodal/displacement.
All required source keys, components, uniqueness and finite checks passed before tolerance.
External families use docs/TOLERANCE.md: reference-only scale, near-zero band 0.01*S, row
relative limit 0.05, and family RMS limit 0.01. rows passed is the deterministic per-row
decision count; U is blocking and UR is warning-only.
| family | disposition | rows passed | scale | max abs | max relative | relative RMS | result |
|---|---|---|---|---|---|---|---|
| fine.translation | blocking | 2187/2187 | 2.57957054e-05 | 1.6193812501e-07 | 6.27771648e-03 | 2.27230258e-04 | pass |
| fine.rotation | warning-only | 2187/2187 | 6.58704994e-06 | 3.0109969916e-08 | 3.54510604e-02 | 4.68253850e-04 | pass |
| coarse.translation | blocking | 147/147 | 2.37408203e-05 | 1.9037855439e-07 | 8.57111694e-03 | 1.03327572e-03 | pass |
| coarse.rotation | warning-only | 147/147 | 7.60725743e-06 | 6.8828551252e-08 | 4.69071871e-02 | 2.97713732e-03 | pass |
| linear.translation | blocking | 147/147 | 2.37408203e-05 | 1.9037853492e-07 | 8.57111604e-03 | 1.03327567e-03 | pass |
| linear.rotation | warning-only | 147/147 | 7.60725743e-06 | 6.8828549627e-08 | 4.69071860e-02 | 2.97713730e-03 | pass |
Worst absolute rows were fine U PART-1-1/node 2/U3, fine UR
PART-1-1/node 442/UR1, coarse U PART-1-1/node 2/U3, coarse UR
PART-1-1/node 37/UR1, linear U PART-1-1/node 2/U3, and linear UR
PART-1-1/node 44/UR1. No warning-only family failed.
The eight blocking internal families are independent of Abaqus CSV tolerance.
| family | rows | numerator | scale | metric | gate | result |
|---|---|---|---|---|---|---|
| fine.global_force_balance | 3 | 2.6775524023e-07 | 1.2773012379e+05 | 2.09625758e-12 | <=1e-8 |
pass |
| fine.global_moment_balance | 3 | 1.3258637157e-04 | 4.8292847478e+05 | 2.74546602e-10 | <=1e-8 |
pass |
| fine.accepted_free_force_residual | 1875 | 3.8659904671e-03 | 1.0000000000e+05 | 3.86599047e-08 | <=1e-2 |
pass |
| fine.accepted_free_moment_residual | 1875 | 1.3760745787e-06 | 0 | exact-zero typed <=1e-3 |
exact-zero branch | pass |
| coarse.global_force_balance | 3 | 8.2512269735e-07 | 1.0000000439e+05 | 8.25122661e-12 | <=1e-8 |
pass |
| coarse.global_moment_balance | 3 | 4.1788609354e-05 | 2.9558678960e+05 | 1.41375091e-10 | <=1e-8 |
pass |
| coarse.accepted_free_force_residual | 75 | 3.1462885132e-02 | 1.0000000000e+05 | 3.14628851e-07 | <=1e-2 |
pass |
| coarse.accepted_free_moment_residual | 75 | 3.3292052422e-06 | 0 | exact-zero typed <=1e-3 |
exact-zero branch | pass |
The constrained-reaction resultant remains a distinct review summary: fine force
[1.2306822228e-12, -3.5943123478e-12, 1.0000000000e+05], moment
[2.7057467378e-11, -5.6934368331e-10, -1.3258637157e-04]; coarse force
[7.9591888635e-12, 7.2906680693e-12, 1.0000000000e+05], moment
[-1.7826096155e-10, -2.5829649530e-10, -4.1788609352e-05].
Local reaction RF/RM source-key/inventory/finite prechecks passed, but the following direct row/RMS findings remain review-only and therefore do not change the blocking classification.
| review family | rows passed | relative RMS | worst absolute row | finding |
|---|---|---|---|---|
| coarse in-plane RF | 4/48 | 1.1437709953e-01 | node 3/RF1, 5.3914239451e-01 | review-only failure |
| coarse RF3 | 4/24 | 4.8448360241e-02 | node 31/RF3, 7.1995422354e+02 | review-only failure |
| coarse physical RM1/RM2 | 32/48 | 2.7464126167e-02 | node 22/RM1, 1.0484921048e+03 | review-only failure |
| fine in-plane RF | 12/208 | 1.1971372918e-01 | node 1/RF2, 1.5298653299e-01 | review-only failure |
| fine RF3 | 92/104 | 5.3476362434e-03 | node 9/RF3, 4.6176964624e+01 | review-only row failure |
| fine physical RM1/RM2 | 112/208 | 3.3719303859e-03 | node 52/RM2, 3.1549617088e+01 | review-only row failure |
RM3 and stress were not numerically compared. Artifact inventory, byte size, timestamp, and
SHA-256 equality before/after all runs prove that no reference artifact changed.