test: onboard quad 02 phase1 reference
This commit is contained in:
@@ -9,6 +9,11 @@ Abaqus is not run by the repository validation flow. Files here are treated as s
|
||||
| Case | Input | Result Artifact | Notes |
|
||||
|---|---|---|---|
|
||||
| `quad_01` | `quad_01.inp` | `quad_01_displacements.csv` | Abaqus/CAE Learning Edition 2024 source input; displacement CSV has 121 nodal rows |
|
||||
| `quad_02` | `quad_02.inp` | `quad_02_displacements.csv` | Abaqus/CAE Learning Edition 2024 source input; `TYPE=S4`; displacement CSV has 121 nodal rows; original input remains unsupported provenance because it contains Abaqus/CAE scaffolding |
|
||||
| `quad_02_phase1` | `quad_02_phase1.inp` | `quad_02_displacements.csv` | Normalized Phase 1 parser-compatible derivative of `quad_02.inp`; preserves ids, connectivity, material, shell thickness, fixed boundary set, and concentrated load |
|
||||
|
||||
Case-specific notes:
|
||||
- `quad_02_notes.md`
|
||||
|
||||
## Displacement CSV Format
|
||||
|
||||
@@ -35,3 +40,5 @@ Mapping to FESA:
|
||||
Stored Abaqus inputs may contain features outside the current FESA Phase 1 parser subset. Preserve the original files and document unsupported features instead of editing them in place.
|
||||
|
||||
`quad_01.inp` currently includes `TYPE=S4R`, `Part/Assembly/Instance`, `*Density`, and `NLGEOM=YES`. These are stored for reference provenance and future compatibility work; they are not Phase 1 parser acceptance requirements unless `docs/ABAQUS_INPUT_SUBSET.md` and `docs/ADR.md` are updated.
|
||||
|
||||
`quad_02.inp` currently includes `TYPE=S4`, `Part/Assembly/Instance`, `*Density`, restart/output request keywords, and Abaqus/CAE step metadata. `quad_02_phase1.inp` is the accepted Phase 1-compatible derivative input. The original file must continue to be treated as stored provenance, not as parser acceptance.
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
# 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`
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
## Initial Tolerance
|
||||
Use the project default reference displacement starting point until case-specific calibration is justified:
|
||||
|
||||
```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.
|
||||
|
||||
## 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.
|
||||
- Solver displacement comparison against this case must wait until the MITC4 rebuild and end-to-end linear static workflow are complete.
|
||||
@@ -0,0 +1,252 @@
|
||||
** FESA Phase 1 normalized derivative of references/quad_02.inp
|
||||
** Original source: Abaqus/CAE Learning Edition 2024, job quad_02.
|
||||
** Paired displacement reference: references/quad_02_displacements.csv.
|
||||
** Unit system: self-consistent source units; FESA does not enforce unit conversion.
|
||||
** Normalization policy:
|
||||
** - Preserve original node ids, element ids, S4 connectivity, material E/nu,
|
||||
** shell thickness, fixed node set, concentrated load node, and load value.
|
||||
** - Remove unsupported Abaqus/CAE scaffolding: Part, Assembly, Instance,
|
||||
** Density, Restart, Output, and Step increment parameters.
|
||||
*Node
|
||||
1, 10., 0., 0.
|
||||
2, 0., 0., 0.
|
||||
3, 0., -10., 0.
|
||||
4, 10., -10., 0.
|
||||
5, -10., 0., 0.
|
||||
6, -10., -10., 0.
|
||||
7, 0., 10., 0.
|
||||
8, -10., 10., 0.
|
||||
9, 10., 10., 0.
|
||||
10, 8., 0., 0.
|
||||
11, 6., 0., 0.
|
||||
12, 4., 0., 0.
|
||||
13, 2., 0., 0.
|
||||
14, 0., -2., 0.
|
||||
15, 0., -4., 0.
|
||||
16, 0., -6., 0.
|
||||
17, 0., -8., 0.
|
||||
18, 2., -10., 0.
|
||||
19, 4., -10., 0.
|
||||
20, 6., -10., 0.
|
||||
21, 8., -10., 0.
|
||||
22, 10., -8., 0.
|
||||
23, 10., -6., 0.
|
||||
24, 10., -4., 0.
|
||||
25, 10., -2., 0.
|
||||
26, -2., 0., 0.
|
||||
27, -4., 0., 0.
|
||||
28, -6., 0., 0.
|
||||
29, -8., 0., 0.
|
||||
30, -10., -2., 0.
|
||||
31, -10., -4., 0.
|
||||
32, -10., -6., 0.
|
||||
33, -10., -8., 0.
|
||||
34, -8., -10., 0.
|
||||
35, -6., -10., 0.
|
||||
36, -4., -10., 0.
|
||||
37, -2., -10., 0.
|
||||
38, 0., 2., 0.
|
||||
39, 0., 4., 0.
|
||||
40, 0., 6., 0.
|
||||
41, 0., 8., 0.
|
||||
42, -2., 10., 0.
|
||||
43, -4., 10., 0.
|
||||
44, -6., 10., 0.
|
||||
45, -8., 10., 0.
|
||||
46, -10., 8., 0.
|
||||
47, -10., 6., 0.
|
||||
48, -10., 4., 0.
|
||||
49, -10., 2., 0.
|
||||
50, 10., 2., 0.
|
||||
51, 10., 4., 0.
|
||||
52, 10., 6., 0.
|
||||
53, 10., 8., 0.
|
||||
54, 8., 10., 0.
|
||||
55, 6., 10., 0.
|
||||
56, 4., 10., 0.
|
||||
57, 2., 10., 0.
|
||||
58, 8., -2., 0.
|
||||
59, 6., -2., 0.
|
||||
60, 4., -2., 0.
|
||||
61, 2., -2., 0.
|
||||
62, 8., -4., 0.
|
||||
63, 6., -4., 0.
|
||||
64, 4., -4., 0.
|
||||
65, 2., -4., 0.
|
||||
66, 8., -6., 0.
|
||||
67, 6., -6., 0.
|
||||
68, 4., -6., 0.
|
||||
69, 2., -6., 0.
|
||||
70, 8., -8., 0.
|
||||
71, 6., -8., 0.
|
||||
72, 4., -8., 0.
|
||||
73, 2., -8., 0.
|
||||
74, -2., -2., 0.
|
||||
75, -4., -2., 0.
|
||||
76, -6., -2., 0.
|
||||
77, -8., -2., 0.
|
||||
78, -2., -4., 0.
|
||||
79, -4., -4., 0.
|
||||
80, -6., -4., 0.
|
||||
81, -8., -4., 0.
|
||||
82, -2., -6., 0.
|
||||
83, -4., -6., 0.
|
||||
84, -6., -6., 0.
|
||||
85, -8., -6., 0.
|
||||
86, -2., -8., 0.
|
||||
87, -4., -8., 0.
|
||||
88, -6., -8., 0.
|
||||
89, -8., -8., 0.
|
||||
90, -8., 2., 0.
|
||||
91, -6., 2., 0.
|
||||
92, -4., 2., 0.
|
||||
93, -2., 2., 0.
|
||||
94, -8., 4., 0.
|
||||
95, -6., 4., 0.
|
||||
96, -4., 4., 0.
|
||||
97, -2., 4., 0.
|
||||
98, -8., 6., 0.
|
||||
99, -6., 6., 0.
|
||||
100, -4., 6., 0.
|
||||
101, -2., 6., 0.
|
||||
102, -8., 8., 0.
|
||||
103, -6., 8., 0.
|
||||
104, -4., 8., 0.
|
||||
105, -2., 8., 0.
|
||||
106, 2., 2., 0.
|
||||
107, 4., 2., 0.
|
||||
108, 6., 2., 0.
|
||||
109, 8., 2., 0.
|
||||
110, 2., 4., 0.
|
||||
111, 4., 4., 0.
|
||||
112, 6., 4., 0.
|
||||
113, 8., 4., 0.
|
||||
114, 2., 6., 0.
|
||||
115, 4., 6., 0.
|
||||
116, 6., 6., 0.
|
||||
117, 8., 6., 0.
|
||||
118, 2., 8., 0.
|
||||
119, 4., 8., 0.
|
||||
120, 6., 8., 0.
|
||||
121, 8., 8., 0.
|
||||
*Element, type=S4, elset=all_elements
|
||||
1, 1, 10, 58, 25
|
||||
2, 10, 11, 59, 58
|
||||
3, 11, 12, 60, 59
|
||||
4, 12, 13, 61, 60
|
||||
5, 13, 2, 14, 61
|
||||
6, 25, 58, 62, 24
|
||||
7, 58, 59, 63, 62
|
||||
8, 59, 60, 64, 63
|
||||
9, 60, 61, 65, 64
|
||||
10, 61, 14, 15, 65
|
||||
11, 24, 62, 66, 23
|
||||
12, 62, 63, 67, 66
|
||||
13, 63, 64, 68, 67
|
||||
14, 64, 65, 69, 68
|
||||
15, 65, 15, 16, 69
|
||||
16, 23, 66, 70, 22
|
||||
17, 66, 67, 71, 70
|
||||
18, 67, 68, 72, 71
|
||||
19, 68, 69, 73, 72
|
||||
20, 69, 16, 17, 73
|
||||
21, 22, 70, 21, 4
|
||||
22, 70, 71, 20, 21
|
||||
23, 71, 72, 19, 20
|
||||
24, 72, 73, 18, 19
|
||||
25, 73, 17, 3, 18
|
||||
26, 2, 26, 74, 14
|
||||
27, 26, 27, 75, 74
|
||||
28, 27, 28, 76, 75
|
||||
29, 28, 29, 77, 76
|
||||
30, 29, 5, 30, 77
|
||||
31, 14, 74, 78, 15
|
||||
32, 74, 75, 79, 78
|
||||
33, 75, 76, 80, 79
|
||||
34, 76, 77, 81, 80
|
||||
35, 77, 30, 31, 81
|
||||
36, 15, 78, 82, 16
|
||||
37, 78, 79, 83, 82
|
||||
38, 79, 80, 84, 83
|
||||
39, 80, 81, 85, 84
|
||||
40, 81, 31, 32, 85
|
||||
41, 16, 82, 86, 17
|
||||
42, 82, 83, 87, 86
|
||||
43, 83, 84, 88, 87
|
||||
44, 84, 85, 89, 88
|
||||
45, 85, 32, 33, 89
|
||||
46, 17, 86, 37, 3
|
||||
47, 86, 87, 36, 37
|
||||
48, 87, 88, 35, 36
|
||||
49, 88, 89, 34, 35
|
||||
50, 89, 33, 6, 34
|
||||
51, 5, 29, 90, 49
|
||||
52, 29, 28, 91, 90
|
||||
53, 28, 27, 92, 91
|
||||
54, 27, 26, 93, 92
|
||||
55, 26, 2, 38, 93
|
||||
56, 49, 90, 94, 48
|
||||
57, 90, 91, 95, 94
|
||||
58, 91, 92, 96, 95
|
||||
59, 92, 93, 97, 96
|
||||
60, 93, 38, 39, 97
|
||||
61, 48, 94, 98, 47
|
||||
62, 94, 95, 99, 98
|
||||
63, 95, 96, 100, 99
|
||||
64, 96, 97, 101, 100
|
||||
65, 97, 39, 40, 101
|
||||
66, 47, 98, 102, 46
|
||||
67, 98, 99, 103, 102
|
||||
68, 99, 100, 104, 103
|
||||
69, 100, 101, 105, 104
|
||||
70, 101, 40, 41, 105
|
||||
71, 46, 102, 45, 8
|
||||
72, 102, 103, 44, 45
|
||||
73, 103, 104, 43, 44
|
||||
74, 104, 105, 42, 43
|
||||
75, 105, 41, 7, 42
|
||||
76, 2, 13, 106, 38
|
||||
77, 13, 12, 107, 106
|
||||
78, 12, 11, 108, 107
|
||||
79, 11, 10, 109, 108
|
||||
80, 10, 1, 50, 109
|
||||
81, 38, 106, 110, 39
|
||||
82, 106, 107, 111, 110
|
||||
83, 107, 108, 112, 111
|
||||
84, 108, 109, 113, 112
|
||||
85, 109, 50, 51, 113
|
||||
86, 39, 110, 114, 40
|
||||
87, 110, 111, 115, 114
|
||||
88, 111, 112, 116, 115
|
||||
89, 112, 113, 117, 116
|
||||
90, 113, 51, 52, 117
|
||||
91, 40, 114, 118, 41
|
||||
92, 114, 115, 119, 118
|
||||
93, 115, 116, 120, 119
|
||||
94, 116, 117, 121, 120
|
||||
95, 117, 52, 53, 121
|
||||
96, 41, 118, 57, 7
|
||||
97, 118, 119, 56, 57
|
||||
98, 119, 120, 55, 56
|
||||
99, 120, 121, 54, 55
|
||||
100, 121, 53, 9, 54
|
||||
*Elset, elset=all_elements, generate
|
||||
1, 100, 1
|
||||
*Nset, nset=fixed_boundary
|
||||
1, 3, 4, 5, 6, 7, 8, 9, 18, 19, 20, 21, 22, 23, 24, 25
|
||||
30, 31, 32, 33, 34, 35, 36, 37, 42, 43, 44, 45, 46, 47, 48, 49
|
||||
50, 51, 52, 53, 54, 55, 56, 57
|
||||
*Nset, nset=load_node
|
||||
2
|
||||
*Material, name=material_1
|
||||
*Elastic
|
||||
7.0e10, 0.3
|
||||
*Shell Section, elset=all_elements, material=material_1
|
||||
1.0
|
||||
*Boundary
|
||||
fixed_boundary, 1, 6, 0.0
|
||||
*Step, name=Step-1
|
||||
*Static
|
||||
*Cload
|
||||
load_node, 3, -100000.0
|
||||
*End Step
|
||||
Reference in New Issue
Block a user