Files
FESADev/phases/solver-core-skeleton/step8.md
T
2026-06-12 01:31:31 +09:00

90 lines
3.9 KiB
Markdown

# Step 8: solver-skeleton-integration-report
## 읽어야 할 파일
먼저 아래 파일들을 읽고 프로젝트의 아키텍처와 이전 step 산출물을 파악하라:
- `/AGENTS.md`
- `/docs/PRD.md`
- `/docs/ARCHITECTURE.md`
- `/docs/ADR.md`
- `/src/fesa/model/domain.hpp`
- `/src/fesa/analysis/linear_static_analysis.hpp`
- `/src/fesa/results/results.hpp`
- `/tests/unit/results_containers_test.cpp`
- `/docs/build-test-reports/README.md`
이전 step에서 만들어진 전체 skeleton API를 꼼꼼히 읽고, integration smoke test가 실제 solver 수치해석 완료를 주장하지 않도록 범위를 제한하라.
## 작업
solver skeleton의 주요 class가 함께 컴파일되고 기본 data flow를 구성할 수 있음을 통합 테스트와 build/test report로 남긴다.
필수 파일:
- `/tests/integration/solver_core_skeleton_integration_test.cpp`
- `/docs/build-test-reports/solver-core-skeleton.md`
통합 테스트 요구사항:
- Domain에 두 개 Node, 하나 Element, Material, Property, AnalysisStep을 구성한다.
- AnalysisStep에는 최소 하나의 BoundaryCondition과 Load를 추가한다.
- `LinearStaticAnalysis`를 생성하고 `run()`을 호출한다.
- `analysis_model()``state()`가 생성되는지 확인한다.
- `ResultStep``ResultFrame`을 만들고 nodal displacement `FieldOutput`을 추가한다.
- 이 테스트는 stiffness assembly, linear solve, HDF5 write, reference comparison을 검증하지 않는다.
보고서 요구사항:
- `docs/build-test-reports/solver-core-skeleton.md`에 아래 항목을 기록한다.
- phase: solver-core-skeleton
- scope: C++ skeleton classes only
- commands run
- exit code summary
- CTest tests added
- known limitations
- known limitations에는 최소한 다음을 명시한다:
- 실제 element stiffness/residual/tangent 계산 없음
- 실제 linear solver backend 없음
- HDF5 writer 없음
- Abaqus parser 및 reference comparison 없음
## Tests To Write First
- `/tests/integration/solver_core_skeleton_integration_test.cpp`
- 전체 skeleton header를 include한다.
- 위 통합 테스트 요구사항을 `main()` assertion으로 검증한다.
RED 확인:
1. 통합 테스트 파일을 먼저 작성한다.
2. targeted CTest를 실행해 아직 integration test registration 또는 required API 문제로 실패하면 실패 내용을 확인한다.
3. Step 0의 CMake glob이 `tests/integration/*_test.cpp`를 자동 등록해야 한다. 등록되지 않는다면 현재 step에서 CMake 파일을 수정하지 말고 `blocked`로 표시하고 사용자에게 allowed_paths 확장을 요청한다.
## Acceptance Criteria
```powershell
python -m unittest discover -s scripts -p "test_*.py"
python scripts/validate_workspace.py
ctest --test-dir build/msvc-debug --output-on-failure -C Debug -R solver_core_skeleton_integration_test
```
## 검증 절차
1. 위 AC 커맨드를 실행한다.
2. 아키텍처 체크리스트를 확인한다:
- Domain -> AnalysisModel -> DofManager/AnalysisState -> Results data flow가 컴파일되는가?
- 통합 테스트가 skeleton 범위를 넘어 수치 정확성을 주장하지 않는가?
- build/test report가 실제 실행 evidence와 known limitations를 기록하는가?
3. 결과에 따라 `phases/solver-core-skeleton/index.json`의 step 8을 업데이트한다:
- 성공: `"status": "completed"`, `"summary": "Solver skeleton integration test and build/test report added"`
- 3회 수정 시도 후 실패: `"status": "error"`, `"error_message": "구체적 에러 내용"`
- 사용자 개입 필요: `"status": "blocked"`, `"blocked_reason": "구체적 사유"` 후 중단
## 금지사항
- 실제 FEM stiffness, residual, tangent, material law 계산을 구현하지 마라.
- Abaqus reference artifact를 생성, 수정, 복원하지 마라.
- HDF5 writer를 구현하지 마라.
- JavaScript/TypeScript/npm fallback을 추가하지 마라.