Files
FESA/phases/domain-and-input-skeleton/step0.md
T
2026-07-29 23:32:26 +09:00

2.2 KiB

Step 0: Semantic Domain and Origin Types

읽어야 할 파일

  • /AGENTS.md
  • /docs/PRD.md
  • /docs/ARCHITECTURE.md
  • /docs/ADR.md
  • /docs/superpowers/specs/2026-07-29-abaqus-assembly-reference-design.md
  • /docs/superpowers/plans/2026-07-29-fesa-phase-1.md
  • /include/fesa/core/entity_id.hpp
  • /include/fesa/core/vec3.hpp
  • /include/fesa/core/diagnostic.hpp

작업

정규화된 solver semantic model의 값 타입과 불변 조회 계약을 만든다.

  • include/fesa/model/ 아래 ids.hpp, entity_origin.hpp, node.hpp, material.hpp, beam_section.hpp, beam_element.hpp, entity_set.hpp, step_definition.hpp, domain.hpp를 만든다.
  • 핵심 타입:
struct EntityOrigin final {
    std::string part_name;
    std::string instance_name;
    std::int64_t local_label;
};
struct Node final { NodeId id; EntityOrigin origin; Vec3 position; };
struct BeamElement final {
    ElementId id;
    EntityOrigin origin;
    std::array<NodeId, 2> nodes;
    MaterialId material;
    SectionId section;
};
  • BeamSection은 (A,I_y,I_z,J,A_{sy},A_{sz}), orientation과 recovery point를 가진다. 전단값 출처는 enum class ShearPropertySource { input, phase1_default }; 로 표현한다.
  • flat mesh는 빈 part_name/instance_name, 계층형 mesh는 실제 이름을 사용한다.
  • 먼저 값 보존과 origin 조회가 실패하는 테스트를 작성한다.

Acceptance Criteria

cmake --build --preset windows-debug
ctest --preset windows-debug -R "ModelTypes|EntityOrigin" --output-on-failure
ctest --preset windows-debug --output-on-failure

검증 절차

  1. 테스트를 먼저 작성하고 compile failure를 확인한다.
  2. 저장과 읽기에 필요한 최소 API만 구현한다.
  3. model public header에 Abaqus/MKL/TBB/HDF5 타입이 없는지 확인한다.
  4. focused 및 전체 테스트를 실행하고 index를 갱신한다.

금지사항

  • parser record를 Domain에 저장하지 마라. 이유: syntax/semantic 경계를 깨뜨린다.
  • 여러 Instance container를 만들지 마라. 이유: Phase 1은 단일 Instance다.
  • equation 번호를 Node/Element에 저장하지 마라. 이유: DofManager 책임이다.