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

3.9 KiB

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()가 생성되는지 확인한다.
  • ResultStepResultFrame을 만들고 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

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을 추가하지 마라.