Files
FESADev/docs/mitc4-shell-feast-eigen2/io.md
T

7.7 KiB
Raw Blame History

MITC4 eigen I/O 계약

결정

원본 frequency input의 N과 source step을 보존하며 consistent에서 유도한 lumped mass와 실제 MKL FEAST의 N개 고유쌍을 공식 HDF5로 식별한다. 기존 static schema0/1과 CLI/output lifecycle는 유지한다. Eigen discriminator·density·modal datasets는 additive다. N개의 global mass-normalized vectors는 내부 검증을 위해 필수이며 외부 shape gate는 없다. 전체 c개의 내부 validation evidence는 공개 mode N개와 분리한다.

상세 문서 권위와 내용
io-input Supported syntax/defaults, source scope, rho/BC mapping, no-op allowlist, fail-closed diagnostics
io-schema Authoritative HDF5 types/shapes/units, source step·mode identity, all-c evidence, self-check
io-mapping Domain/AnalysisModel/DOF/state ownership, candidate/failure lifecycle, TXT grammar·prechecks·Value projection
NR controls, reference-model 내부 수치 controls와 외부 modal-frame family; I/O가 tolerance를 선택하지 않음

공개 Abaqus convention은 입력 문서의 공식 출처를 직접 대조했다. Lanczos/SIM은 source compatibility 정보이며 실제 algorithm 동등성을 주장하지 않는다. ACOUSTIC COUPLING=ON은 acoustic-free 모델에서만 적용 대상 없음으로 처리한다. 물리량은 사용자 일관 units이며 SI로 추론하지 않는다. Meaningful unsupported input은 실패한다.

현재 source와의 차이

2026-09-08 지정 source를 읽기 전용으로 직접 확인했다. 아래는 후속 구현 의무이며 현재 동작이 구현되었다는 의미가 아니다. 기존 Feature 문서의 pass·workflow·trace schema는 승계하지 않았다.

실제 확인 파일 확인 결과와 필요한 연결
input_reader ASCII/256-byte/continuation/raw fields와 FNV byte identity 재사용; 새 lexical framework 불필요
domain_mapping_context RawMaterial에 density 없음, RawStep은 static 전용, DENSITY/FREQUENCY 없음. PERTURBATION/ENERGY OUTPUT도 새 eigen subset 필요. FinalizeStep의 hardcoded Step-1 외에 raw source name·N을 보존해야 함
material mapper, step mapper Context 위임 경계다. Density/property와 Frequency semantic 확정은 같은 candidate 흐름에 연결
model writer, primitives 기존 compounds, UTF-8/fixed-width, user-consistent-unspecified, path+content identity 재사용; material compound 수정 대신 별도 densities
linear writer, nonlinear writer, self_check Static0/1 전용 경로를 eigen에 재사용해 modal 값을 static frame0으로 내면 오류. Dedicated eigen serialization/self-check dispatch 필요

후속 검증 의무

Requirement prefix는 FEM-REQ-MITC4-EIGEN2-다. 아래 검증을 문서 작업 중 실행한 것으로 집계하지 않는다. 수치 기준·oracle는 NR와 연결된 상세가 권위다.

ID 필수 관찰 Requirement suffix
IO-T01 원본 변경 없이 Step-2/N10/rho2700/t0.5, keyword defaults/no-op warnings·실제 FEAST; S4R source-only 변형 같은 physical path 001–004,015–016
IO-T02 다중 material/section 연결; missing/duplicate/unresolved/0/negative/nonfinite/dependent rho, extra row/field, 잘못된 geometry/section 거부 003–004,016
IO-T03 N blank/0/fraction/overflow, nonblank frequency slots2~7(0 포함), eighth empty slot, duplicate/unknown option, multiple/preload/acoustic/load/nonzero BC 거부 001,009,015–016
IO-T04 Source label/instance/set renumbering·모호함, partial BC·fully constrained·drill-only, 실제 free injection/global 복구; rank cutoff로 tiny positive mass 삭제 금지 006–008,014,018
IO-T05 Additive schema round-trip·source step·units·N/c·mass/backend identity; normalized final phi로 original residual/Gram/energy 재검증; raw negative/zero/positive와 frequency subset 010–013,017–018
IO-T06 실제 FEAST known zero/repeated/cluster/n1/N=n·full capacity, optional abandoned count와 safe fallback, count/reset/budget/index/allocation/Gram/residual 실패; 최종 N과 c 구별 008–013,019
IO-T07 기존 accepted state/final 준비 후 solve/validation/log/lock/write/flush/close/reopen/self-check/replace failure injection; 기존 final 보존과 최초 실패 final 미생성 012,019
IO-T08 TXT reorder·같은 Value의 다른 mode 허용; missing/extra/duplicate/nonfinite/malformed/step/quantity/unit/mass/backend/schema 오류를 tolerance 전에 거부; Freq 변화는 Value 판정 불변 020–021
IO-T09 Common inclusive row/RMS 경계·양옆, near-zero와 zero-scale; singleton은 row5% pass/RMS1% fail을 구별 022
IO-T10 Density 없는 static 입력과 schema0/1 유지, retained shell/shellNL/linear-limit source identity·U/UR/reaction 분류와 fresh 회귀, 제외 예제0건 023–025,027
IO-T11 Consistent→lumped 원본 연결과 같은 mass의 실제 FEAST/검증; mass oracle·inertia/null·coordinate/NR-MFE-001 및 deterministic assembly/row/diagnostic 005–008,011,013–014,023,026–027

최종 대조와 미실행

최종 NR의 B=0 enclosure, 초기 count 최대3회·전체 count512/solve3, fixed a0와 optional upper search 종료·certified fallback, normalized final phi metrics를 대조했다. 별도 per-call control 변경 없이 base_fpm 한 개와 count index49 override로 현재 controls를 표현한다.

입력 계약과 additive schema 선택은 이번 요청 안의 정의 작업이다. 기존 static public 호환성 변경은 없다. 새 mode shape 외부 acceptance, CSV mandate, reference 보조 metadata, full matrix mandatory dump, lower/empty-prefix 검색 schema를 추가하지 않았다.

현재 source의 density/Frequency/state/writer 연결은 미구현이다. Research G01/G02의 installed FEAST 동작·workspace와 실제 peak memory, retained regression/새 eigen reference 및 physics 검증은 후속 실행 의무다. Safe enclosure fallback이 runtime 확인을 대신하지 않는다. 문서만 수정하므로 build/test/Harness/FEAST/외부 solver를 실행하지 않았다. Source/test/reference와 제외 네 예제의 원본·복사·cache는 수정·검증에 사용하지 않았다.

정적 검사: owned 문서 4개의 UTF-8·Markdown fence·trailing whitespace·상대 파일 링크 41개와 원본 TXT full grammar/finite Value/unique Mode1..10을 Python read-only 검사로 확인했다. 경로 한정 git diff --check도 exit0이었다. Untracked 문서는 별도 내용 검사로 확인했으며 diff 검사만으로 검증했다고 하지 않는다. Build/test와 수치 comparison은 미실행이다.