Files
2026-07-29 23:32:26 +09:00

1.7 KiB

Step 3: Material, Section, and Shear Defaults

읽어야 할 파일

  • /AGENTS.md
  • /docs/PRD.md
  • /docs/ARCHITECTURE.md
  • /docs/ADR.md
  • /docs/ABAQUS_INPUT_SUBSET.md
  • /include/fesa/io/abaqus/semantic_mapper.hpp
  • /include/fesa/model/material.hpp
  • /include/fesa/model/beam_section.hpp
  • /include/fesa/model/domain_builder.hpp

작업

전역 material과 Part-local Beam section/ELSET assignment를 complete-deck resolution으로 semantic model에 연결한다.

  • *ELASTIC의 (E,\nu)에서 (G=E/[2(1+\nu)])를 계산한다.
  • general section의 (A,I_y,I_{yz},I_z,J), orientation을 읽되 (I_{yz}=0)만 허용한다.
  • explicit transverse stiffness를 (A_{sy},A_{sz})로 변환한다.
  • 생략 시 (A_{sy}=A_{sz}=5A/6), SCF=0, ShearPropertySource::phase1_default를 적용한다.
  • nonzero SCF, missing/duplicate material/section assignment, invalid properties를 실패 테스트로 먼저 작성한다.

Acceptance Criteria

cmake --build --preset windows-debug
ctest --preset windows-debug -R "MaterialMapping|BeamSection|ShearDefault" --output-on-failure
ctest --preset windows-debug --output-on-failure

검증 절차

  1. material이 Part 뒤에 정의된 forward-resolution 테스트를 먼저 실패시킨다.
  2. explicit/default shear 두 경로를 최소 구현한다.
  3. HDF5에 저장할 source enum까지 Domain에 보존되는지 확인한다.
  4. 전체 테스트와 index를 갱신한다.

금지사항

  • 임의 단면에 대한 Abaqus 보편 기본값이라고 문서화하지 마라. 이유: FESA Phase 1 가정이다.
  • nonzero (I_{yz})를 버리지 마라. 이유: 조용한 정식화 변경이다.
  • orientation을 자동 생성하지 마라. 이유: mandatory 입력 계약이다.