Files
FESADev/phases/abaqus-input-parser/step3.md
T
2026-06-12 17:15:05 +09:00

63 lines
1.9 KiB
Markdown

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