Files
FESADev/docs/mitc4-shell-feast-eigen/ADR.md
T
2026-09-06 02:58:12 +09:00

75 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MITC4 Shell Mass Matrix와 FEAST 고유치해석 결정 기록
- Feature ID: `mitc4-shell-feast-eigen`
- Owner: `coordinator-agent`
- Input contract revision: `r1`
기준: [프로젝트 지침](../../AGENTS.md), [프로젝트 PRD](../PRD.md), [프로젝트 ADR](../ADR.md),
[SOLVER_AGENT_DESIGN](../SOLVER_AGENT_DESIGN.md).
문서 목록은 [FEATURED_AGENTS.md](FEATURED_AGENTS.md), 상태 원본은 [coordination.md](coordination.md)에 있다.
## MFE-ADR-001 — 사용자 지정 backend와 reference 범위
- 상태: 사용자 요청으로 확정된 intake 범위.
- 결정 owner: user; 기록 owner: coordinator-agent.
- 결정: MITC4 질량행렬 및 고유치해석을 구현하고 고유치 계산에는 MKL FEAST를 사용한다. 지정된 `reference/shellNL-eigen-meshfine` reference에서 외부 비교는 고유치만 수행한다.
- 근거: 2026-09-06 사용자 요청; [Feature PRD 사용자 요구](PRD.md#사용자-요구).
- 영향: backend 대체, 외부 mode-shape acceptance 추가 또는 reference 변경으로 요구를 우회하지 않는다.
## MFE-ADR-002 — MITC4 질량 이산화
- 상태: 사용자 후속 요구로 확정됨; 상세 lumping 수식은 Research/Formulation 소유.
- 결정 owner: user; 선택지 검토 owner: requirement-agent; 상세 수식 owner: formulation-agent.
- 결정: `consistent mass`를 계산하고 이를 이용하여 `lumped mass`도 계산한다. 앞서 제안한 둘 중 하나의 선택이 아니라 두 계산의 연결이 사용자 요구이다.
- 근거: 2026-09-06 사용자 후속 답변 “mass matrix는 consistent mass를 계산하고 이를 이용해서 lumped mass를 계산합니다.”; [원래 질문 evidence](requirements-evidence.md#중요한-결정).
- 영향: Requirement owner는 r1에서 두 계산과 관계를 baseline에 반영한다. 실제 FEAST 질량은 후속 명시 답변으로 lumped로 확정되었으며 MFE-ADR-004를 따른다.
- 경계: 기존 비물리 drilling DOF에 인공 관성을 추가하지 않는 방향을 권고한다. FEAST generalized problem의 mass SPD 조건과 질량 없는 drilling 처리는 Research와 Formulation이 물리 spectrum 보존 근거를 제시해야 한다. 축소 수식은 이 관리문서에서 정하지 않는다.
해석 기준 상태, backend 입력 관례 및 additive 결과량은 Requirement owner의 reference와 기존 계약 evidence로 정리한다.
새로 밝혀지는 비호환 영속 계약 또는 다른 critical 선택이 있으면 별도 근거와 함께 기록한다.
## MFE-ADR-003 — Local 검증 경로와 점진적 커밋
- 상태: 사용자 요청으로 승인됨.
- 결정 owner: user; 기록 owner: coordinator-agent.
- 결정: `FESA_GTEST_SOURCE_DIR`는 `C:\git\googletest`를 사용한다. 사용자 수정 `AGENTS.md`를 커밋하고 이후 작업도 Git에 점진적으로 커밋한다.
- 근거: 2026-09-06 사용자 후속 답변; Root가 해당 GoogleTest `CMakeLists.txt` 존재를 확인했다.
- 영향: Root는 사용자 수정 `AGENTS.md`와 완료된 upstream 문서의 정확한 경로 checkpoint를 커밋한다. 구현 단계 branch·step 선택·source/phase 커밋은 기존 Harness Executor 소유를 유지한다. Remote 작업 승인은 포함하지 않는다.
## MFE-ADR-004 — FEAST에 사용하는 질량행렬
- 상태: 사용자 명시 답변으로 승인됨.
- 결정 owner: user; 대안·영향 owner: requirement-agent.
- 결정: `consistent mass -> lumped mass -> 고유치 해석` 순서로 수행하고 FEAST/reference baseline의 `M`은 derived lumped mass를 사용한다. Consistent는 lumping 원본과 내부 질량 검증 대상으로 유지한다.
- 이유와 영향: 사용자가 최종 계산 흐름과 해석 사용 질량을 직접 명시했다. Modal residual, normalization 및 orthogonality의 기준 `M`도 실제 사용한 lumped mass이다.
- 근거: 2026-09-06 사용자 답변 “고유치 해석에서는 lumped mass를 사용합니다. 따라서 고유치 해석을 할 때 consistent mass -> lumped mass -> 고유치 해석 입니다”; [Requirement owner r1 결정 evidence](requirements-evidence.md#중요한-결정)의 `MFE-OQ-002`를 해소한다.
- 경계: 두 mass variant 외부 비교 또는 사용자 선택 API를 추가 요구하지 않는다. Lumping 수식은 Research/Formulation이 계약과 evidence로 구체화한다.
## MFE-ADR-005 — 요청 고유치 개수의 입력 권위
- 상태: 사용자 명시 확인; 기존 r1 요구사항의 의미 유지.
- 결정 owner: user; 기록 owner: coordinator-agent.
- 결정: 고유치 개수는 `.inp`의 `*FREQUENCY` data를 사용한다. 지정 input의 요청은 `10`개이며 reference 행수나 FEAST 내부 count 추정으로 요청 개수를 역추론하지 않는다.
- 근거: 2026-09-06 사용자 답변 “inp 파일의 고유치 개수를 사용합니다”; [r1 FEM-REQ-MITC4-EIGEN-009/015](requirements.md#requirement-verification-matrix).
- 영향: 기존 mode-count 의미의 확인이므로 contract revision은 `r1`을 유지한다. FEAST interval/subspace는 입력 요청의 낮은 N개와 multiplicity·누락 검증을 충족하기 위한 내부 처리이다. 새 입력 설정 기능을 추가하지 않는다.
## MFE-ADR-006 — 질량 lumping과 질량 없는 좌표의 정식화
- 상태: Formulation owner의 수학 계약으로 기록; 독립 Numerical Review 대기.
- 결정 owner: formulation-agent; 기록 owner: coordinator-agent.
- 결정: Consistent scalar moments를 같은 `3×3×3` volume quadrature로 계산하고 moment row-sum에서 nodal `6×6` block lumped mass를 유도한다. 기존 global 제약 뒤 analytic director null과 기존 stabilization의 decoupling을 이용해 finite 공간을 투영하고 sparse nodal whitening으로 FEAST에 연결한다.
- 근거: [Formulation 핵심 계약](formulation.md#핵심-계약), [mass M1~M10](formulation-mass.md), [eigen E1~E8](formulation-eigen.md).
- 영향: 곡면 coupling 및 mass/centroid·energy 차이를 명시하고 인공 drilling mass와 일반 dense Schur는 도입하지 않는다. Numerical Review는 수식·conditioning·FEAST controls·reference 준비를 독립 검토한다.
- 남은 검토: [V5](formulation-verification.md#v5-rigid-mode-coordinate-및-density-불변식)의 기존 basis-dependent stabilization 한계와 `FEM-REQ-MITC4-EIGEN-014` coordinate-invariance coverage 관계를 NR가 명시적으로 확인해야 한다. 이 기록으로 acceptance 범위를 조용히 좁히지 않는다.
## MFE-ADR-007 — 기존 stabilization과 좌표 불변성 acceptance 정합
- 상태: 미결정; Requirement owner의 bounded intent 검토 결과 `MFE-OQ-003` 사용자 결정이 필요하다.
- 발견 owner: numerical-review-agent; requirement intent owner: requirement-agent; 기록 owner: coordinator-agent.
- 근거: [NR-MFE-001](numerical-review.md#blocking-finding), [재현 가능한 반례](numerical-review-evidence.md#nr-mfe-001-직접-계산-반례).
- 발견: 동일 물리 partial rotation BC를 유지한 회전에서 기존 basis-dependent `kd=min(tangent diagonals)` 때문에 고유치가 상대 `1.1291343961675893e-5`만큼 달라진다. 새 mass 또는 analytic reduction의 확인된 결함은 아니다.
- 판단 근거: [Requirement owner 검토](requirements-evidence.md#nr-mfe-001-requirements-intent-검토)는 `FEM-REQ-MITC4-EIGEN-002/008/014`와 기존 shell의 fixed `kd` 계약을 대조했다. 알려진 지원 모델 반례를 제외하는 것은 acceptance 변경이며 기존 강성의 교체·삭제도 묵시적으로 승인되지 않았다.
- 미승인 대안: 기존 stabilization과 partial BC 지원을 유지하며 해당 좌표 의존성을 명시적 한계로 수용하고 `014` 적용 범위를 변경하거나, 좌표 공변적인 stabilization 개선과 영향받는 기존 정적/eigen 계약·회귀 검증을 이번 범위에 추가한다.
- 권고 owner와 이유: requirement-agent는 같은 물리 모델의 축 선택 의존성을 해결하는 후자를 권고한다. 기존 강성 계약 영향 검토와 정식화·회귀 검증 작업이 늘어나며 대체 수식은 Formulation 소유이다.
- 경계: 승인 전 기존 matrix 26행, stiffness, partial BC 지원과 tolerance·reference·schema를 유지하고 `r1`을 변경하지 않는다. Coordinator는 이 한 건을 Root를 통해 사용자에게 전달하며 질량 흐름·FEAST 사용 mass·입력 N은 재질문하지 않는다.