feat: start abaqus input parser
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# Step 3: sets-and-section-properties
|
||||
|
||||
## Read First
|
||||
|
||||
Read these files before editing:
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/io-definitions/abaqus-input-parser-io.md`
|
||||
- `/src/fesa/model/domain.hpp`
|
||||
- `/src/fesa/model/element.hpp`
|
||||
- `/src/fesa/model/property.hpp`
|
||||
- `/src/fesa/io/abaqus/input_parser.hpp`
|
||||
- `/src/fesa/io/abaqus/input_parser.cpp`
|
||||
|
||||
Review completed parser tests and phase summaries first.
|
||||
|
||||
## Task
|
||||
|
||||
Extend the model and parser only as needed to represent set membership and
|
||||
section-to-property assignment for V0 bar/truss models.
|
||||
|
||||
Required behavior:
|
||||
|
||||
- Parse `*NSET, NSET=<name>` node membership rows.
|
||||
- Parse `*ELSET, ELSET=<name>` element membership rows.
|
||||
- Parse one V0 section keyword that assigns a material name to an element set.
|
||||
Prefer the smallest section subset compatible with the current V0 element
|
||||
path.
|
||||
- Preserve deterministic member ordering as read, unless the I/O contract
|
||||
explicitly states otherwise.
|
||||
- Keep `Domain` as the owner of model definition data. Do not store equation ids
|
||||
on nodes or elements.
|
||||
|
||||
## Tests To Write First
|
||||
|
||||
Add focused C++ tests before production code:
|
||||
|
||||
- a model test for any new set/section semantic model API;
|
||||
- a parser test proving `*NSET`, `*ELSET`, and the selected section keyword map
|
||||
into the semantic model.
|
||||
|
||||
Run targeted CTest and confirm the tests fail before implementation.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
ctest --test-dir build/msvc-debug --output-on-failure -C Debug -R "(model_|abaqus_input_parser_)"
|
||||
python -m unittest discover -s scripts -p "test_*.py"
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Verification Procedure
|
||||
|
||||
Update step 3 status with summary or a concrete error/blocked reason.
|
||||
|
||||
## Forbidden
|
||||
|
||||
- Do not parse materials beyond names needed for section linkage.
|
||||
- Do not add loads, boundary conditions, or analysis steps.
|
||||
- Do not generate or modify reference artifacts.
|
||||
Reference in New Issue
Block a user