66 lines
2.0 KiB
Markdown
66 lines
2.0 KiB
Markdown
# 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.
|