# 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.