Files
FESADev/references/quad_02_notes.md
T
2026-05-05 23:56:27 +09:00

128 lines
3.8 KiB
Markdown

# quad_02 Reference Notes
## Purpose
`quad_02` is the first stored Abaqus `TYPE=S4` reference pair intended for the Phase 1 MITC4 rebaseline path.
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`
## Provenance
- Source solver: Abaqus/CAE Learning Edition 2024, as recorded in `quad_02.inp`.
- Original job name: `quad_02`.
- Source model name: `Model-1`.
- Unit system: self-consistent source units. FESA does not enforce or convert units.
## Compatibility
`quad_02.inp` uses `TYPE=S4`, which is the Phase 1 target mapped to FESA `MITC4`.
The original file also contains Abaqus/CAE features outside the current Phase 1 parser subset:
- `*Part`
- `*Assembly`
- `*Instance`
- `*Density`
- output and restart request keywords
These features remain unsupported in Phase 1 unless `docs/ABAQUS_INPUT_SUBSET.md` and ADRs are explicitly updated. Tests must continue to reject the original file as unsupported provenance.
## Normalized Input
`quad_02_phase1.inp` is a derivative input created for Phase 1 parser and later solver regression work.
It preserves:
- 121 node ids and coordinates.
- 100 `TYPE=S4` quadrilateral elements and connectivity.
- Elastic material values `E = 7.0e10`, `nu = 0.3`.
- Shell thickness `1.0`.
- Fixed boundary nodes from the original assembly-level boundary set.
- Concentrated load at node `2`, DOF `3`, magnitude `-100000.0`.
It removes:
- Abaqus/CAE `Part/Assembly/Instance` scaffolding.
- `*Density`, because density is not used by Phase 1 linear static analysis.
- restart/output requests.
- step increment parameters and static time data not needed by the Phase 1 parser subset.
## Result Mapping
`quad_02_displacements.csv` is an Abaqus-exported nodal displacement table with 121 rows.
Required columns:
- `Node Label`
- `U-U1`
- `U-U2`
- `U-U3`
- `UR-UR1`
- `UR-UR2`
- `UR-UR3`
It maps to FESA field output:
```text
/results/steps/Step-1/frames/0/fieldOutputs/U
```
with component order:
```text
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:
```text
abs_tol = 1.0e-12
rel_tol = 1.0e-5
reference_scale = 1.0
```
Do not tune tolerances or drilling stiffness to make this single case pass.
## Automated Regression Status
`quad_02_phase1.inp` and `quad_02_displacements.csv` are wired into the Phase 1 test suite as the first stored Abaqus displacement regression.
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
- 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.