feat: start abaqus input parser
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# Step 4: material-step-load-parser
|
||||
|
||||
## Read First
|
||||
|
||||
Read these files before editing:
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/PRD.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/io-definitions/abaqus-input-parser-io.md`
|
||||
- `/src/fesa/model/material.hpp`
|
||||
- `/src/fesa/model/analysis_step.hpp`
|
||||
- `/src/fesa/model/boundary_condition.hpp`
|
||||
- `/src/fesa/model/load.hpp`
|
||||
- `/src/fesa/io/abaqus/input_parser.hpp`
|
||||
- `/src/fesa/io/abaqus/input_parser.cpp`
|
||||
|
||||
Review completed parser and model tests first.
|
||||
|
||||
## Task
|
||||
|
||||
Extend the parser for the V0 material and history data subset.
|
||||
|
||||
Required behavior:
|
||||
|
||||
- Parse `*MATERIAL, NAME=<name>` and `*ELASTIC` data into the internal material
|
||||
representation. If the current `Material` model cannot store elastic data,
|
||||
add the smallest semantic extension with tests.
|
||||
- Parse `*STEP` and `*STATIC` into ordered `AnalysisStep` definitions.
|
||||
- Parse `*BOUNDARY` rows into step boundary conditions using existing
|
||||
`DofComponent` mapping.
|
||||
- Parse `*CLOAD` rows into step concentrated loads using existing
|
||||
`DofComponent` mapping.
|
||||
- Parse `*OUTPUT`, `*NODE OUTPUT`, and `*ELEMENT OUTPUT` only to the extent
|
||||
documented in the I/O contract. If semantic storage is not yet present, record
|
||||
an explicit ignored-with-warning diagnostic rather than inventing output model
|
||||
APIs.
|
||||
|
||||
## Tests To Write First
|
||||
|
||||
Add focused C++ tests before production code:
|
||||
|
||||
- model tests for any new material or output request semantic fields;
|
||||
- parser tests for material/elastic, step/static, boundary, and cload rows.
|
||||
|
||||
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 4 status with summary or a concrete error/blocked reason.
|
||||
|
||||
## Forbidden
|
||||
|
||||
- Do not implement analysis execution, assembly, HDF5 writing, or reference
|
||||
comparison in this step.
|
||||
- Do not mutate reference artifacts.
|
||||
Reference in New Issue
Block a user