test: onboard quad02 reaction reference

This commit is contained in:
NINI
2026-05-05 23:56:27 +09:00
parent 9741671f70
commit c47557885d
15 changed files with 597 additions and 24 deletions
+38 -1
View File
@@ -6,6 +6,7 @@
The original Abaqus input remains preserved as provenance:
- `quad_02.inp`
- `quad_02_displacements.csv`
- `quad_02_reactionforces.csv`
The Phase 1 parser-compatible derivative input is:
- `quad_02_phase1.inp`
@@ -69,6 +70,29 @@ with component order:
UX, UY, UZ, RX, RY, RZ
```
`quad_02_reactionforces.csv` is an Abaqus-exported nodal reaction force/moment table with 121 rows.
Required columns:
- `Node Label`
- `RF-RF1`
- `RF-RF2`
- `RF-RF3`
- `RM-RM1`
- `RM-RM2`
- `RM-RM3`
It maps to FESA field output:
```text
/results/steps/Step-1/frames/0/fieldOutputs/RF
```
with component order:
```text
RFX, RFY, RFZ, RMX, RMY, RMZ
```
## Initial Tolerance
The active automated displacement regression uses:
@@ -85,6 +109,19 @@ Do not tune tolerances or drilling stiffness to make this single case pass.
The regression compares FESA `U` against the stored Abaqus CSV by node id and uses the tolerance above.
`quad_02_phase1.inp` and `quad_02_reactionforces.csv` are also wired through the reaction CSV loader and node-wise `RF` comparator. This comparison currently records a known non-passing gap rather than an accepted pass gate:
```text
abs_tol = 1.0e-6
rel_tol = 1.0e-5
reference_scale = 1.0
max_abs_error ~= 612.751347
max_rel_error ~= 0.494032
first_mismatch = node 1 RFZ, expected 6860.0, actual 6652.459896
```
Do not relax reaction tolerances to make this case pass. Treat the mismatch as a solver/formulation verification item.
## Current Limitations
- `RF` has no paired Abaqus reaction CSV yet; verify `RF` by full-vector equilibrium until a `quad_02_reactions.csv` artifact is provided.
- The stored Abaqus reaction CSV is available, but node-wise `RF` agreement is not accepted yet because the current comparison fails.
- This is currently the only passing stored Abaqus reference regression. The PRD target still requires at least three stored reference models: one single-element case, one simple multi-element plate/shell case, and one curved shell benchmark.