4.6 KiB
4.6 KiB
MITC4 eigen 구현 계획
- Feature:
mitc4-shell-feast-eigen2; Owner: 메인 assistant. - 기준: 프로젝트 지침, PRD, ADR, 정식화, NR controls, 검증 사례, I/O.
- 실행 권한·현재 checklist는 Feature PRD, 시간 제한 해제는 Feature ADR의 ADR-009를 따른다.
변경 묶음과 소유권
| 묶음 | Owner / 실제 경로 | 구현과 검증 |
|---|---|---|
| 질량·stabilization | implementation-agent eigen2_mass_impl; include/fesa/elements/mitc4_shell.h, src/fesa/elements/mitc4_shell.cpp, 해당 element unit tests |
27점 consistent moments→derived lumped, trace mean. 독립 flat/warped mass, drill null·좌표/부분 BC와 기존 물리 kernel 검사 |
| FEAST backend | implementation-agent eigen2_feast_impl; 새 include/fesa/solvers/eigen/, src/fesa/solvers/eigen/와 unit tests |
실제 MKL 호출, fixed-lower count/search, controls·checked storage·all-c 검증·실패 evidence. 실제 known spectra/zero/repeated/endpoint 및 thread 복원 |
| 입력·Domain | implementation-agent eigen2_input_impl; model_types.h, domain.h/.cpp, domain_mapping_context.cpp, eigen mapper/model tests |
Material별 density, 독립 Frequency payload와 common boundary view, source Step-2/N 보존, exact allowlist와 fail-closed 진단 |
| 축소·procedure·state | 메인; 새 analysis/eigen_*, 관련 AnalysisModel/DofManager/prepared/application 연결 |
실제 BC→analytic null→nodal SPD whitening, sparse congruence, original-free 복구·정규화/Gram/에너지, 후보 state. 작은 직접 pencil 및 partial-BC 통합 검증 |
| 결과·비교·회귀 | 메인 또는 후속 명시 할당 owner; 새 eigen HDF5 writer/self-check, eigen reference comparator, 해당 tests와 기존 제외 inventory 변경 | Static schema 유지, source identity·N/c 구분, candidate 보존, TXT Value-only 공통 tolerance, retained static와 synthetic coverage |
| 빌드·Git·Feature 기록 | 메인; src/fesa/CMakeLists.txt, tests/CMakeLists.txt, 이 Feature의 관리/결과 문서 |
동시 빌드 충돌 방지, 명시 경로별 stage/commit, 사용자 변경 보존 |
서로 다른 owner의 파일을 덮어쓰지 않는다. Shared API는 구현 전에 메인에 전달하고 불일치는 계약 원본과 대조하여 수정한다. Vendor type은 private adapter에만 둔다. 이미 승인된 수식을 다시 선택하거나 시간 절약을 위해 dense global Schur·인공 mass·lower mode 누락을 허용하지 않는다.
검증 순서
- 현재 설정의 configure/build와 검사 inventory를 확인한다. 가능한 결함 재현 후 최소 수정하고 27개 사례와 IO-T01–11에 각 테스트를 연결한다.
- 묶음별 unit/integration 검사를 실행한다. Actual FEAST probe는 mock으로 대체하지 않는다. 수학/자료 조립을 변경하면 필요한 독립 numerical 검토를 받는다.
- CLI→원본 입력→HDF5→TXT Value comparison을 fresh 실행한다. 원본 TXT/CSV를 수정하거나 제외 예제의 옛 경로·복사본·cache로 성공 evidence를 만들지 않는다.
- 영향받는 shell/shellNL/linear-limit, nonlinear tangent/objectivity/평형·state, pressure synthetic·기타 기존 회귀를 보존한다. 제외된 복합 테스트의 retained 관찰은 분리한다.
- 기능 완료 시 구성된 전체 build/test와 필수 reference를 한 번 실행하고 독립 물리 검토와 실제 결과·실패·미실행을 기록한다. 실패 수치를 expected로 복사하지 않는다. 외부 고유치 기준은 ADR-012의 사용자 승인5%를 적용한다.
현재 .harness/config.json은 mfe-workspace-msvc-ninja-debug configure/build/test preset과
.harness/build-ninja-msvc-debug를 선택한다. 개인 preset의 dependency 경로는 commit하지 않는다.
Focused 실행은 해당 CMake target/CTest filter, 전체 검증은 python scripts/execute.py다.
메인이 빌드 실행을 직렬화한다. C++에는 MSVC x64 Debug /W4 /WX 기준을 적용한다.
실제 runtime·known spectra와 원본 모델을 실행했다. 현재 결과·수정 범위와 미완료 검증은 implementation-verification에 기록한다. All-c residual은 ADR-011의 residual stopping으로 해소했다. ADR-012의 첫 구현 범위에서 외부5% 비교와 필수 mass/실패 보존 evidence를 확인하며 S3는 명시된 후속 과제로 유지한다.