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

10 KiB

MITC4 Shell Mass·FEAST Eigen 2 PRD

  • Feature ID: mitc4-shell-feast-eigen2
  • Owner: 메인 assistant
  • Requirement baseline revision: r2 (022의 외부 accuracy 기준 변경)
  • 상태: 사용자 승인 첫 구현 완료. 전체 417개 검사와 모드별 외부5% 비교, 독립 수치 검토를 통과했다. S3와 후속 정확도 개선은 보류한다.

기준: 프로젝트 지침, 프로젝트 PRD, 공통 ADR. 지역 지침은 FEATURED_AGENTS, 결정 근거는 Feature ADR을 따른다.

사용자 요청과 적용 범위

2026-09-08 사용자는 기존 작업을 mitc4-shell-feast-eigen2라는 이름으로 requirement부터 다시 시작하고, 기존 docs/mitc4-shell-feast-eigen/의 유용한 문서를 참고하며 작업 중 변경사항을 Git에 커밋하도록 요청했다. 이어 모든 단계를 진행하지 말고 requirement 단계만 진행하도록 범위를 명시했다.

이후 사용자가 research부터 io-definition까지 진행하도록 요청했다. 당시 범위는 research, formulation, 독립 numerical review, I/O 계약 문서와 단계별 커밋이다. 구현 계획·코드, solver build/test·reference 비교와 release 감사는 포함하지 않는다. 별도 coordinator나 phase 상태기계를 만들지 않는다.

작업시간 제한은 30분이다. 시작은 2026-09-08 12:07:56 UTC이며 12:37:56 UTC에 도달하면 진행 중인 작업을 중지하고 실제 완료·미완료 항목과 지연 이유를 보고한다.

2026-09-09 KST 사용자는 implementation 단계를 진행하도록 요청하고 implementation 단계의 30분 제한은 없다고 명시했다. 현재 범위는 구현 계획에 따른 코드·테스트·실제 FEAST 및 필수 reference/회귀 검증과 작업별 커밋이다. 앞의 30분 제한은 완료된 문서 작업의 이력이다. 원본 reference 생성·변경과 release는 포함하지 않는다. Push는 아래 후속 요청으로 승인되었다.

2026-09-10 사용자는 FEAST 종료 조건을 trace에서 residual로 변경하고 S3는 추후 고려하도록 명시했다. ADR-011에 따라 backend·저장 control 검증·관련 문서를 갱신하며, 기존 독립 잔차와 외부 tolerance, 질량·drilling 수식은 유지한다.

이어 사용자는 “5% 이내면 첫 구현이므로 Abaqus와의 고유치 정확도 향상은 추후에 진행”하고 구현을 마무리하도록 요청했다. ADR-012의 모드별 외부5% 정책을 적용하고 나머지 필수 검증을 보강한다. S3 보류는 유지한다.

사용자는 구현과 검증 완료 후 dev 병합 및 push도 명시 승인했다. 관련 변경을 커밋하고 검증한 tree를 dev에 병합한 뒤 원격 dev에 반영한다. 기존 사용자 변경과 reference 원본은 보존한다.

솔버 기능의 요구 범위 요약

기존 사용자 결정에 기록된 다음 의미를 새 요구사항의 출발점으로 사용한다. 승계 근거와 후속 전문 판단 경계는 ADR에 기록한다.

  1. MITC4 shell consistent mass를 계산하고 그 결과로부터 lumped mass를 유도한다.
  2. 실제 무감쇠 선형 고유진동 해석은 derived lumped mass와 Intel MKL FEAST를 사용한다.
  3. 원형상·무응력 상태와 승인된 shell/constraint 범위를 대상으로 하며, requested mode count는 .inp의 *FREQUENCY에서 얻는다.
  4. 지정 reference/shellNL-eigen-meshfine의 기존 입력·고유치 TXT를 보존하고 외부 eigen 비교는 Value만 사용한다. Mode shape는 내부 검증 대상이며 외부 acceptance를 추가하지 않는다.
  5. 좌표 공변적인 numerical drilling stabilization 개선과 영향받는 기존 선형·비선형 정적 및 새 eigen 검증을 포함한다. 기존 물리 kernel·source identity·output 의미·공통 tolerance는 보존한다.
  6. reference/temp로 제외된 예제는 검증에 사용하지 않는다. 남는 정적 회귀와 내부 물리 검증 의무를 명시한다.

지속할 상세 계약이 필요하므로 요구사항과 verification matrix 원본은 requirements.md에 둔다. 이 PRD에는 수식·threshold·schema를 중복 정의하지 않는다.

Acceptance 요약과 원본

아래 ID는 FEM-REQ-MITC4-EIGEN2- prefix를 생략하며 링크는 상세 matrix의 원본을 가리킨다.

영역 Requirement IDs 요구되는 결과와 검증 의도
입력·물리 범위 001004, 015016 밀도·section·geometry·boundary·mode 요청의 의미를 보존하고 미지원 조합을 명확히 진단
질량·stabilization 005008, 014, 026027 두 질량의 유도 관계, 물리 관성·drilling null, 대칭성·에너지·좌표 공변성 검증
FEAST·modal evidence 009~013 실제 backend, 낮은 N개·multiplicity, 동일 사용 질량의 residual·normalization·orthogonality 및 실패 보존
결과·reference 017~022 HDF5 source/mode identity, Value-only 대응, completeness·finite 사전검사와 공통 tolerance
회귀·완료 023~025 제외 예제를 사용하지 않는 남은 static·내부 물리 검증, 필요한 실제 실행 evidence와 미실행의 구분

각 영역의 원자적 ID·검증 방법·출처는 requirements 및 근거 문서를 따른다. 과거 문서의 pass, 362/352 test count나 stage 완료를 이 baseline의 실행 결과로 사용하지 않는다.

현재 checklist

  • 새 Feature ID·작업 브랜치와 requirement-only 범위를 설정한다.

  • 기존 자료의 참고·승계·후속 재검토 경계를 정한다.

  • Requirement specialist가 새 요구사항·verification matrix와 근거를 작성한다.

  • 메인이 사용자 요구 coverage, 전문 owner 경계와 미해결 사항을 정적으로 확인한다.

  • 상대 링크·ID를 검사하고 커밋 대상이 새 Feature 문서 5개뿐인지 확인한다.

  • Research: 연구와 근거에 일차 출처·질량/축소/stabilization 후보 및 실제 runtime 확인이 필요한 FEAST 두 항목을 기록했다.

  • Formulation: 정식화에 질량·공변 stabilization·constraint-first 축소·FEAST·복구 수학 계약을 작성했다. 독립 numerical review는 별도 항목이다.

  • Numerical review: 독립 검토는 pass-for-io-definition이다. 새 수학 oracle 2개와 27개 verification cases, 내부 controls 및 Value-only reference family를 정의했다. 실제 solver 검증은 미실행이다.

  • I/O definition: I/O 계약에 입력·진단·additive eigen schema·source step/mode mapping·실패 보존과 검증 의무를 정의했다.

  • 신규 문서의 링크·계약 일관성, 27개 요구사항의 NR/I/O coverage와 변경 범위를 정적으로 확인하고 단계별 변경을 커밋한다.

이 checklist는 문서 작업 상태다. Solver 구현·실제 FEAST 실행·회귀 및 외부 reference 비교의 통과를 뜻하지 않는다.

  • 질량·stabilization과 독립 analytical/invariant 테스트 구현·검증. S3 public static 충돌은 아래 후속 항목으로 분리한다.

  • 실제 FEAST backend·count/cluster/zero/실패 controls와 runtime 검증. 실행한 대표 실패 경로와 미주입 한계는 결과 보고서에 구분한다.

  • Density/Frequency semantic·source identity·진단 및 입력 테스트. 기존 정적 PREPRINT 회귀를 보존했다.

  • Constraint-first 축소·modal recovery·별도 eigen state/procedure 구현.

  • HDF5 additive schema·candidate 보존·Value comparator 및 통합 테스트.

  • 제외 예제 사용 없이 남는 static/내부 회귀·전체 build/test·필수 reference 실행: 417/417 PASS.

  • 관련 독립 numerical/physics 확인과 결과·한계 기록. 첫 구현 독립 판정은 승인된 범위에서 PASS다.

  • 승인된 FEAST residual stopping과 HDF5 control 검증을 함께 적용하고 변경 전 실패·변경 후 검사를 확인한다.

  • 원본 eigen의 전체 c개 독립 잔차·복구·HDF5 생성을 확인하고 종료 제어의 독립 수치 검토를 받는다.

  • 원본 eigen 10개 Value가 사용자 승인 모드별5% 기준을 충족한다. 최대 상대오차는 약4.261331%다.

후속 보류 항목:

  • Abaqus와의 외부 Value 정확도를 개선한다. 이전 RMS1% 기준의 Mode2–10 불일치는 이력으로 보존한다.
  • S3 public static 정적 평형 계약 충돌은 사용자 요청에 따라 후속 검토한다.

현재 구현·실행은 implementation-verification에 기록했다. 실제 mass/reduction/FEAST/procedure/HDF5 경로와 전체 실행을 확인했고 원본 eigen의 전체 c residual 실패는 residual stopping으로 해소했다. 첫 구현 독립 검토는 승인된5%·S3 보류 범위에서 PASS다. 실제512회 vendor 호출과 HDF5 close-error 주입은 수행하지 않았으며 대표 실패 경로·정적 대조의 범위를 보고서에 기록했다. 기존 nonlinear recovery 문제와 제외 pressure 예제의 coverage 부재를 해결한 것으로 해석하지 않는다.

이전 문서 단계의 결과와 구현 입력

Research부터 I/O까지 요청한 문서 작업과 독립 수학 검산을 30분 제한 안에 완료했다. 19개 Feature 문서의 링크·UTF-8·diff와 27개 요구/검증 case identity·coverage를 확인했다. 기존 Feature/phase의 사용자 변경 16개는 보존했다. Source·test·config·reference는 변경하지 않았다.

다음 작업의 입력은 정식화, 독립 검토, controls, cases, I/O다. 문서 단계 종료 당시 Density/Frequency semantic·mass/FEAST·eigen state/writer 구현, 실제 backend와 MSVC build/test·reference·물리 검증은 미실행이었다. 현재 사용자가 승인한 구현은 implementation-plan에 따라 이 후속 실행을 포함하며, 진행 상태는 위 checklist를 따른다. Pressure 제외 예제의 fresh 외부 coverage 부재는 유지한다.