modify repository
This commit is contained in:
@@ -2,6 +2,32 @@
|
||||
|
||||
현재 구현의 목적·경계·소유권·검증 한계를 기능별로 요약한다. 정식화 원문은 유도와 당시 가정을 보존하며 현재 채택 여부는 README에서 구분한다. 문서 정리는 새 build/test 또는 외부 검증 통과를 뜻하지 않는다.
|
||||
|
||||
## 작업에 필요한 읽기 범위
|
||||
|
||||
시작은 루트 작업 지침, 해당 기능 README와 변경 영역의 지침이다. 아래 목록의 모든 문서나
|
||||
링크를 한 번에 읽는 대신, 변경에 필요한 계약·유도·검사만 추가한다. AGENTS.md와 CLAUDE.md는
|
||||
같은 지침의 도구별 진입점이므로 수동 읽기 목록에는 하나만 포함한다.
|
||||
|
||||
| 변경 내용 | 추가로 확인할 자료 |
|
||||
| --- | --- |
|
||||
| 공개 API·소유권·조립·상태 수명 | solver-core의 책임과 수명·공통 procedure 절, 대응 src와 consumer |
|
||||
| 입력·결과·reference 비교 | solver-core의 CLI와 입력·결과와 reference 비교 절, 기능별 mapping과 검사 |
|
||||
| C++ 구현·실패 처리 | solver-core의 개발 교훈과 검증 경계 절, 변경 동작을 검증하는 테스트 |
|
||||
| 빌드·dependency | solver-core의 빌드와 직접 검사 절, cmake/msvc 지침과 실제 preset·target |
|
||||
| 수식·물리·적분·절차 | 기능 README에서 채택한 formulation의 관련 유도·가정·검증 절 |
|
||||
| 과거 연구·테스트 이관 감사 | 해당 연구 문서, manifest의 필요한 key 또는 이관표의 해당 identity 행 |
|
||||
|
||||
Formulation의 수식·가정은 원문으로 보존한다. 문서 안의 ready/미구현·후속 owner·옛 문서명은
|
||||
작성 당시 기록일 수 있으므로 현재 구현·검증 여부는 기능 README에서 구분한다. 현재 요약으로
|
||||
연결된 옛 ADR/research 링크가 원문 전체를 제공한다는 뜻은 아니다. 원문은 Git 이력에서 확인한다.
|
||||
연구·과거 수식은 해당 문제를 조사할 때 선택하며 일반 기능 개발의 기본 읽기 목록에 넣지 않는다.
|
||||
|
||||
2026-10-18 통합의 실제 실행 범위와 미검증 항목은 [병합 현황](cpp-object-oriented-modular-refactoring/README.md#병합-결과와-검증-범위)에 있다.
|
||||
과거 PASS를 최신 source의 미실행 범위로 승계하지 않는다. 읽기 묶음별 예상량은
|
||||
[개발 컨텍스트 추정](development-context.md)에 정리했다.
|
||||
|
||||
## 기능별 요약
|
||||
|
||||
- [솔버 공통 구조·입출력·수치 비교](solver-core/README.md)
|
||||
- [3D Euler beam](linear-static-3d-euler-beam/README.md)
|
||||
- [MITC4 선형 정적 shell](linear-static-mitc4-shell/README.md)
|
||||
|
||||
@@ -36,12 +36,13 @@ Hex8 기하 packet 수정본의 관련 Debug/Release82개씩, 독립 snapshot9,8
|
||||
|
||||
Shell 명시 영 seed 이후 SW60 수집은 partial이며 collector native4·target 종료 미관측, increment1까지 진행했다. 함수 sample의 Jet 산술·할당·작은 MKL 호출·OpenMP spin은 비용 후보지만 sample 부재를 cache hit 보장으로 바꾸거나 nested inclusive CPU를 합산해 wall time을 만들지 않는다. 전체 shell100초·최종 전체 Debug·원본5개 재실행·최종 물리 평가는 미완료다. 보류 후보의 PASS를 복원 source나 최신 통합본에 승계하지 않는다.
|
||||
|
||||
## Refactor 채택 시 보존할 성능 한계
|
||||
## Refactor 통합 후 남은 성능 한계
|
||||
|
||||
Refactor의 2026-10-16 `0b8de3a` 당시 기록은 ShellNL whole elapsed가 원본 대비
|
||||
Native+86.52%·CMake+120.91% 회귀했다고 보고한다. 이는 해당 source·환경의 과거 단일 기록이며
|
||||
변산·메모리·배경 부하와 원인은 미확정이다. 이후 객체 복사 제거 revision의 정적 검증을
|
||||
새 Release 성능 향상으로 승계하지 않는다. 원본 `.build` archive는 통합 작업 공간으로
|
||||
자동 전달되지 않았으며 이번 병합에서 해당 시간의 원시 근거를 새로 재현한 것은 아니다.
|
||||
이번 작업은 제품 bytes를 채택하고 검증하는 범위다. 지속 SpMV cache나 새 산술 최적화를
|
||||
도입하지 않으며 성능 회귀 원인 해결·새 benchmark는 별도 작업으로 남긴다.
|
||||
통합된 코드와 정적 검증 범위는 [병합 현황](../cpp-object-oriented-modular-refactoring/README.md)을 따른다.
|
||||
새 Release 성능은 측정하지 않았다. 지속 SpMV cache나 새 산술 최적화를 도입한 것은 아니며,
|
||||
성능 회귀 원인 해결·새 benchmark는 별도 작업으로 남긴다.
|
||||
|
||||
@@ -28,9 +28,12 @@ CLI는 입력 `.inp` 하나, lexical sibling HDF5·log, warning/오류 진단과
|
||||
## Refactor 코드 채택 후 구조
|
||||
|
||||
2026-10-18 통합은 FESADev `7438c827` 이력에 Refactor `11f09eeb`의 제품 `.h/.cpp`
|
||||
274개와 직접 MSVC 빌드를 선별 도입한다. 옛 구현을 섞는 호환 계층이나 새 정식화는 추가하지 않는다.
|
||||
274개와 직접 MSVC 빌드를 선별 도입했다. 옛 구현을 섞는 호환 계층이나 새 정식화는 추가하지 않는다.
|
||||
[파일 manifest](merge-manifest.json)는 원본 Git blob과 working bytes, 보존·도입 방침을 구분하고,
|
||||
[테스트 이관표](test-migration.tsv)는 양쪽 기존 identity·assertion·oracle와 최종 위치를 연결한다.
|
||||
Manifest의 초기 inventory와 중간 snapshot은 각 revision의 이력이며 현재 파일 목록이 아니다.
|
||||
최종 범위는 `t5_static_scope_verification`·`t6_test_cleanup`·`t7_final_handoff`와 아래 반영 결과로
|
||||
구분한다. 일반 기능 개발에는 두 대형 파일 전체가 아니라 필요한 key와 검사 identity 행만 읽는다.
|
||||
|
||||
- [AnalysisProcedure](../../include/fesa/analysis/analysis_procedure.h)와
|
||||
[factory](../../src/fesa/analysis/prepared_analysis.cpp)는 shell linear/nonlinear static,
|
||||
@@ -59,166 +62,50 @@ CLI는 입력 `.inp` 하나, lexical sibling HDF5·log, warning/오류 진단과
|
||||
출처 일치·compile·테스트 통과만으로 수치 동등성을 선언하지 않으며 독립 수치 검토와
|
||||
영향받은 analytical/invariant·물리·reference 검증을 별도로 수행한다.
|
||||
|
||||
## 이번 병합의 현재 검증 상태
|
||||
## 병합 결과와 검증 범위
|
||||
|
||||
T2/T3 단계에서 직접 MSVC와 CMake/Ninja의 Debug solver/CLI 및 세 테스트 target build가 완료됐다.
|
||||
제품274개는 Refactor working bytes와 일치한다. 양쪽 실제 discovery는 unit849,
|
||||
integration72, reference43으로 총964개이며 canonical identity가 일치한다.
|
||||
당시 선별 실행은 CMake176개, Native15개, 합성 reference comparator28개,
|
||||
Python145개가 failure/error/skip 없이 통과했다. 이는 전체964개 실행·실제 모델 비교 완료가 아니다.
|
||||
근거는 작업 공간의 `.build/merge-verification/t2-20261018-01/`와
|
||||
`t3-20261018-01/`에 있다. 원래 dev와 Refactor 저장소 및 기준자료는 보존했다.
|
||||
2026-10-18 `dev`에 merge commit `762bd4b`로 반영했다. 제품 소스·헤더274개는
|
||||
Refactor `11f09eeb`의 working bytes와 일치하며 직접 MSBuild가 주 개발 빌드다.
|
||||
기존 FESADev 기능별 문서와 formulation23개를 보존했다. 과거 단계별 계획과 HHT 인계서는
|
||||
현재 작업 트리에서 제거했으며 병합 직후 commit `762bd4b`의 `phases/`와 `HANDOFF.md`에서
|
||||
원문을 복원할 수 있다. 현재 계약과 미해결 사항은 기능별 README가 소유한다.
|
||||
|
||||
2026-10-18 사용자 지시로 `reference/temp`는 검증에 사용하지 않는다. 정식 경로에 없는
|
||||
`shellNL-meshfine`, `shellNL-meshfine_02`, `shellNL-meshfine-pressure` 자료는 복사·복원하지 않는다.
|
||||
해당 실제 비교는 자료 미확보로 미완료이며 테스트를 skip 처리하거나 통과로 바꾸지 않는다.
|
||||
전체 Debug 검증·독립 수치 검토·정식 자료 비교의 현재 진행은 아래 T5 중간 기록과 구분한다.
|
||||
정리 전 필수 검증을 충족하지 못하면 테스트 삭제와 최종 병합 완료 판정을 진행하지 않는다.
|
||||
T4 문서 갱신 자체로 build/test를 추가 실행하지 않았다.
|
||||
Native와 CMake/Ninja의 MSVC x64 Debug 전체 target build, public header111개의 독립 TU
|
||||
compile과 runtime DLL7개 대조가 통과했다. 양쪽 실제 discovery는 unit849·integration72·
|
||||
reference43, 총964개로 일치한다. 사용자 지시로 정적·공통631개(unit555·integration35·
|
||||
reference41)만 Native/CMake 직접 실행과 CTest에서 검증했고 failure/error/skip0이었다.
|
||||
Python 합성·정책145개도 통과했다. 비정적333개는 보존했으며 미검증이다.
|
||||
|
||||
### T5 최초 중간 snapshot — 2026-10-18 03:00 UTC, 이후 범위 변경 전 이력
|
||||
정식 정적5모델(beam, shell, shellNL, Hex8 linear/nonlinear static)은 fresh Refactor 기준·
|
||||
통합 Native·통합 CMake 실행물에서 같은 scratch 입력 bytes와 경로로 총15회 실행했다.
|
||||
등록 비교15개·보고서 검증15개·schema/identity/field parity5개를 포함한50단계가 exit0이었다.
|
||||
Beam6가족212행, shell2가족294행과 Hex8 정적 U/RF/S는 기존 판정 계약을 따랐다.
|
||||
ShellNL의 U blocking·UR warning-only, 내부 평형과 accepted free residual은 통과했으나
|
||||
RF/RM3가족은 false/review-only이며 stress mapping은 미판정이다.
|
||||
|
||||
2026-10-18에 전체 Native Debug 솔루션, CMake Debug configure/build와 Ninja dependency
|
||||
검사를 새로 실행해 모두 exit0을 확인했다. 제품102 compile unit의 dependency가 유효하고,
|
||||
양쪽 세 테스트 executable의 실제 identity는 unit849·integration72·reference43,
|
||||
CTest964개로 일치한다. Public header111개는 각각 독립 TU로 private/vendor include 경로 없이
|
||||
MSVC C++17 `/EHsc /W4 /WX /MDd /Zs` 검사를 통과했다. CLI·test의 네 runtime 디렉터리에서
|
||||
DLL7개의 SHA256이 같다. 제품274개와 정식 reference32개 bytes도 중간 기록 전에 재확인했다.
|
||||
`reference/temp`의12개 경로는 byte 검증 대상에서 제외했고 입력·CSV·결과를 사용하지 않았다.
|
||||
테스트·helper 삭제는0개다. 동등 대체나 폐기 구조 전용임을 입증하지 못한 항목은
|
||||
[정리 검토](test-cleanup-review.md)에 따라 유지했다. 이관표의 원래2,876행·12열을
|
||||
보존하고 최종 판단3열만 추가했다. 최종 단계는 문서만 변경했으므로 build/test/solver를
|
||||
반복하지 않고, 코드·검사·등록·실행물·입력 hash가 같은 정리 전 실제 근거를 재사용했다.
|
||||
독립 최종 검토는 차단사항0이며 전체 솔버 물리 검증 승인을 뜻하지 않는다.
|
||||
|
||||
Native unit 전체는 필터 없이 계속 실행 중이며 **전체 종료 코드와 XML은 아직 없다**.
|
||||
중간 stdout에서 완료57개 identity를 관측했으며 다음 개별 검사는 새로 PASS 종료했다.
|
||||
## 검증 기록과 후속 확인
|
||||
|
||||
- `ReducedManufacturedControllerKeepsExactInitialOrbit`: 396862ms.
|
||||
- `C08aRigidManufacturedOrbitReducedCoordinateTimeConvergence`: 7-grid, 7153515ms.
|
||||
- `C08bInitialPhysicalSpectrumProbe`: 716ms.
|
||||
- `PredictorStartCompletesPreviouslyFailingLumpedFreePlateGrid`: 539678ms.
|
||||
근거는 저장소 root의 `.build/merge-verification/refactor-integration-final-20261018-01/`에
|
||||
보존했다. `archive-inventory.json`은 원래 경로와 보관 위치·SHA256·크기를 연결한다.
|
||||
실행물9개·DLL35개·fresh Refactor source304개와 실패·중단 기록을 포함한1,379개 파일의
|
||||
복사 hash를 확인했다. `worker-raw/t7-20261018/final-static-state.json`,
|
||||
`final-review-ko.md`와 `post-merge-check.json`이 최종 검토·반영 결과를 기록한다.
|
||||
기록이 없는 다른 checkout에서 과거 통과를 현재 실행 결과로 취급하지 않는다.
|
||||
|
||||
현재 `C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants`의8-grid를 수행한다.
|
||||
h=1/64·1/128·1/256·1/512·1/1024의 계산 요약이 생성됐으나 남은8192·16384·32768증분
|
||||
fine-grid와 최종 시간수렴·물리 gate는 미완료다. 모든 grid의 총 증분수는57840이다.
|
||||
CPU/RSS 상승이나 부분 로그를 전체 통과 근거로 삼지 않는다. Native 나머지 executable,
|
||||
전체 CTest와 Python suite는 같은 직렬 큐에서 대기하며 임의 timeout·skip·필터를 추가하지 않았다.
|
||||
최초 integration 실행은 긴 TMP의260/261자 lease 경로 때문에 output-busy로 실패했다.
|
||||
동일 exe/identity에서 긴 TMP exit1→짧은 TMP exit0을 확인하고 양쪽 integration35개
|
||||
전체를 짧고 고유한 TMP에서 다시 실행해 통과했다. 원실패는 보존했으며 제품·검사·
|
||||
허용치는 바꾸지 않았다. 후속 실행도 짧고 고유한 TMP/TEMP를 사용한다.
|
||||
|
||||
Refactor 원본 밖 별도 source snapshot304개에서 Native Debug 기준 solver/CLI를 새로
|
||||
빌드해 exit0과 DLL7개 일치를 확인했다. 정적5모델을 포함한 정식 입력11개에 대해 기준·Native·
|
||||
CMake 실행물을 같은 scratch 입력 경로와 bytes에서 직렬 실행하고 schema·identity·각 field를
|
||||
대조하는 후속 큐를 준비했다. **새 실제 모델 실행·비교는 아직 시작하지 않았다.** 보고서 JSON의
|
||||
case·policy·quantity와 실제 exit를 확인하며, parity의 빈 결과·자료 부재·dtype 차이·불일치는
|
||||
nonzero로 남긴다. Exact field assertion의 불일치를 새 물리 허용치 위반으로 승격하지 않고
|
||||
출처·dtype·identity·rounding 차이를 분류한 뒤 기존 승인 기준과 대조한다. 임시 도구의 합성
|
||||
증거 하한 검사9건은 솔버나 물리 검증 통과가 아니다. 빈 결과·자료 누락의 옛 false-green을
|
||||
각각 exit0으로 재현하고 수정 후 exit1·exit2가 되는 것을 확인했다.
|
||||
|
||||
독립 수치 검토는 명백한 식 오류나 승인 기준 변경을 발견하지 못했으나 `CONCERNS`다.
|
||||
inverse→factor solve·Jet·eigen whitening·paired 산술과 spatial RM 변환은 rounding graph에
|
||||
영향이 있어 비트 보존을 가정하지 않는다. 특히 `hdf5_primitives.cpp`, dynamic/nonlinear HDF5
|
||||
writer의 `J^T m=g` LU action은 T2 영향 routing 누락을 T5 manifest에 보충하고 finite-rotation
|
||||
virtual-work·완전 inverse action·HDF5 reaction readback 검사 identity에 연결했다.
|
||||
이 정적 검토를 실제 전체 실행·reference closure의 승인으로 해석하지 않는다.
|
||||
|
||||
정식 `shellNL-meshfine`·`shellNL-meshfine-pressure`는 자료 미확보로 미실행이고,
|
||||
`shellNL-meshfine_02`는 자료 부재와 현재 comparator 연결 부재를 함께 남긴다.
|
||||
Thermal 새 필수 reference 부재와 기존 NT11 diagnostic/nonblocking 불일치도 유지한다.
|
||||
필수 gate를 충족하지 않았으므로 테스트 삭제·T6 진입·최종 병합 완료 판정을 진행하지 않는다.
|
||||
|
||||
중간 근거는 `.build/merge-verification/t5-20261018-01/before-prune/`에 있으며
|
||||
`running-checkpoint.json`과 `progress.jsonl`이 실행 큐·PID·현재 관측을 보존한다.
|
||||
파일 manifest의 `t5_before_prune_verification`은 이 중간 snapshot을 기록하며 T1/T2/T3 원필드는 보존했다.
|
||||
|
||||
|
||||
### T5 사용자 승인 정적 범위 — 검증 완료, 제한 유지
|
||||
|
||||
사용자는 장시간 HHT 동해석 검증을 중단하고 정적 해석 검증 후 다음 단계로 진행하도록
|
||||
범위를 변경했다. 위 최초 snapshot의 전체 큐·미완료 gate 설명은 당시 이력이다. 현재는
|
||||
HHT·solid dynamic·eigen/frequency·transient thermal 실제 수치 실행을 유예하고 해당 테스트를
|
||||
보존한다. 기존 전체 큐와 후속 watcher는 `user_cancelled_static_only`로 종료했으며,
|
||||
부분 stdout·미생성 XML·취소 근거를 보존했다. 이를 수치 실패나 통과로 계산하지 않는다.
|
||||
|
||||
현재964개 identity를 source body·경로·행·SHA256에 대응시켜 정적·공통631개(unit555,
|
||||
integration35, reference41)를 선택하고333개를 유예했다. 과거 정적553개는 분류 근거로만
|
||||
읽었으며 그중11개를 유예하고 현재 추가 공통89개를 포함했다. 순수 SO3 미분·좌표변환,
|
||||
mock 수명·dispatch, parser/mapping 및 합성 comparator 정책 검사는 포함하고 실제 비정적
|
||||
procedure를 호출하는 검사는 제외했다. 선택표는 `before-prune/static-only/selection.json`에 있다.
|
||||
|
||||
새 직렬 실행은 Native·CMake의 선택631개, 명시적 목록 CTest631개 및 Python 합성·정책
|
||||
검사다. 고유 C++ 검사 수는631개이며 실행 경로별 수를 합쳐 고유 검사 수로 보고하지 않는다.
|
||||
Native·CMake 각631개 및 CTest631개가 실제 exit0·skip0으로 확인됐다. Native/CMake의
|
||||
unit555·reference41은 처음 실행에서 통과했고 integration35는 아래 환경 대조 후 전부 통과했다.
|
||||
CTest JUnit의 실제 이름을 canonical identity로 역매핑해 선택631개와 누락·중복0을 확인했다.
|
||||
Python 합성·정책145개도 exit0·failure/error/skip0이며 실제 비정적 물리 검증으로 세지 않는다.
|
||||
정식 정적5모델도 fresh Refactor 기준·통합 Native·통합 CMake에서 같은 scratch 입력 bytes/경로로
|
||||
총15번 실행했고 등록 비교15개·보고서 검증15개·schema/identity/field parity5개가 모두 exit0이다.
|
||||
추가 정식 shellNL 자료의 부재와 `_02` comparator 연결 부재는 미완료로 유지하며, 확보된
|
||||
정적 범위의 gate가 충족되면 다음 단계로 진행할 수 있다는 사용자 지시를 따른다.
|
||||
|
||||
임시 parity 도구의0길이 dataset만 있는 파일 false-green도 실제 exit0으로 재현했다.
|
||||
필수 inventory와 파일 전체의 비어있지 않은 data 검사를 추가한 도구는 같은 경우 exit1,
|
||||
의미있는 합성 동일값 exit0·불일치 exit1을 보였다. 개별0길이 dataset은 허용한다.
|
||||
이는 임시 도구 검증이며 제품 물리·reference 통과를 대신하지 않는다. 현재 근거 경로는
|
||||
`.build/merge-verification/t5-20261018-01/before-prune/static-only/run-20261018-01/`이다.
|
||||
|
||||
|
||||
정적 모델의 beam은 U/UR·RF/RM·section actions6가족212행, shell은 U blocking·UR warning-only
|
||||
2가족294행을 기존 기준으로 비교했다. ShellNL은 translation blocking·rotation warning-only와
|
||||
내부 force/moment balance·accepted free residual을 통과했다. RF/RM3가족의 수치 비교는
|
||||
**false/review-only**로 보존하며 stress mapping은 여전히 미판정이다. Hex8 선형·비선형 정적은
|
||||
각 Step-1/increment10의 U(length)·RF(force)·S(force/length²)를 원본 CSV·source identity와
|
||||
기존5%/1% 기준으로 비교했다. 개별 quantity/frame/policy·원본/실행물/결과 hash 및 literal
|
||||
argv/cwd/env는 manifest와 raw `final-static-summary.json`·각 closed execution record에 있다.
|
||||
|
||||
초기 Native/CMake integration에서는 같은 application 검사1개가 각각 output-busy로 실패했다.
|
||||
Native 실패 lock 경로261자, CMake260자였으며 동일 Native exe·동일 identity에서 TMP/TEMP만
|
||||
바꾼 대조가 긴 경로 exit1→짧은 task-owned 경로 exit0을 보였다. 짧은 고유 TMP에서 양쪽
|
||||
integration35개 전체를 다시 실행해 identity35·exit0·failure/error/skip0을 확인했다. 원래
|
||||
실패 XML/log와 최초 큐 aggregate exit1은 환경/경로 한계로 보존했다. 제품·테스트·허용치는
|
||||
바꾸지 않았다. 모델 input/result/lock 길이도 사전 확인했으며 최대193자다.
|
||||
|
||||
독립 정적 수치 보충 검토는 `CONCERNS / required_static_missing=false`다. 선택631개의
|
||||
정적 수치 필수 coverage 누락은 발견하지 못했으며, 이를 RF/RM·stress mapping 또는 유예
|
||||
기능의 물리 승인으로 확대하지 않는다. 사용자 수정 범위의 정리 전 정적 gate는 충족했으므로
|
||||
다음 단계로 진행할 수 있다. 비정적333개·누락 정식 fine/_02/pressure 비교·열해석 새 reference
|
||||
부재와 기존 NT11 diagnostic 제한은 미완료로 유지한다. 테스트 정리·최종 병합은 아직 수행하지 않았다.
|
||||
|
||||
### T6 정적 범위 검사 정리 — 삭제 0개
|
||||
|
||||
[최종 정리 검토](test-cleanup-review.md)에 따라 검사·helper를 모두 보존했다.
|
||||
실제 본문에서 public/private owner, 실패 뒤 출력·factor 보존, TLS·FP flags·비트 및
|
||||
독립 frozen oracle의 경계가 달라 동등 대체를 입증하지 못했다. 폐기 구조만 검사한다고
|
||||
확정할 근거도 없었다. 비정적333개와 자료 없는 fine/_02/pressure 관련 검사는 보존한다.
|
||||
이관표2,876행의 원래12열은 그대로 두고 최종 판정·근거 연결3열만 추가했다.
|
||||
|
||||
검사 source·helper·양쪽 등록 변경이0이므로 문서 전용 정적 검토만 수행했다.
|
||||
T6 raw `.build/merge-verification/t6-20261018/`는 원셀 보존, 현재964개 body와 선택631개,
|
||||
Native/CMake 등록·제품274개·T5 실행물/hash 보존을 확인한다. T5 당시 실행 결과를
|
||||
새 실행으로 보고하지 않으며 전체964개 PASS도 주장하지 않는다. 최종 정적 검증과
|
||||
병합 완료 판정은 T7에 남긴다.
|
||||
|
||||
|
||||
### T7 최종 정적 검증과 근거 보존 — 통합 승인 전
|
||||
|
||||
이 절이 위의 최초 전체 실행 snapshot·T5/T6 진행 상태보다 최신이다. T6/T7에서 코드·검사·
|
||||
helper·비교 도구·빌드 등록을 바꾸지 않았으므로 문서 전용 변경에 대한 지침에 따라 build/test와
|
||||
모델을 반복 실행하지 않았다. 대신 T5 검증 commit `4841f122`와 최종 코드 상태 `4846206e`의
|
||||
해당 입력 집합이 같음을 확인하고 실제 실행물·DLL·입력·결과의 hash를 대조했다. 이 확인을
|
||||
통과한 **T5 실제 실행 근거를 재사용**하며 T7의 새 실행으로 세지 않는다.
|
||||
|
||||
새 정적 검토는 제품274개 Refactor bytes,964개 검사 body·631개 선택/333개 보존, 이관표
|
||||
원셀·정리 판정, 양쪽 등록과 실행물, 성공 XML8개와 정적5모델×3실행물의 closed record15개·
|
||||
전체50단계 exit0을 확인했다. Formulation23개와 상대 링크397개, 루트 AGENTS/CLAUDE 동일성,
|
||||
원래 두 저장소 pin과 정식 reference32개를 확인했다. 최초 보호 목록55개 중 temp12개를
|
||||
읽기·hash 대상에서 제외하고 나머지43개 원본·로그·설정·과거 계획을 대조했다.
|
||||
삭제한 검사·helper는0개이며 전체964개 또는 유예333개를 통과로 보고하지 않는다.
|
||||
|
||||
원시 근거는 작업 worktree 정리 뒤에도 유지하도록 원래 FESADev root의
|
||||
`.build/merge-verification/refactor-integration-final-20261018-01/`에 복사했다.
|
||||
`archive-inventory.json`은 원래 절대 경로→보존 위치·SHA256·크기를 연결한다. Worker raw,
|
||||
base의 문서/독립 수치 검토 raw, 실제 실행물9개·runtime DLL35개(5디렉터리×7개), 새로 빌드한
|
||||
Refactor 기준 source304개 등1,379개 파일의 복사 hash를 확인했다. 기존 실패·중단·옛 임시 도구
|
||||
기록도 포함하며 원본을 이동·삭제하거나 과거 argv/cwd를 다시 쓰지 않았다. 현재 근거는
|
||||
`worker-raw/t7-20261018/final-static-state.json`과 `archive-integrity.json`에서 찾을 수 있다.
|
||||
|
||||
HHT 등 비정적 검증과 미확보 fine/_02/pressure 비교, ShellNL RF/RM false/review-only·응력
|
||||
mapping 미판정, 열해석 reference/NT11 제한은 그대로 남는다. 승인된 정적 범위의 최종 상태를
|
||||
확인했으며 독립 최종 검토와 사용자 통합 승인 후 원래 dev에 반영한다. 아직 원래 dev 병합·
|
||||
원격 push를 수행하지 않았다.
|
||||
HHT 전체 큐는 사용자 요청 중단으로 보존하며 수치 FAIL/PASS로 세지 않는다.
|
||||
HHT·solid dynamic·eigen/frequency·transient thermal 수치 실행, 정식 fine/_02/pressure
|
||||
자료 누락과 `_02` comparator 연결 부재, 열해석 새 reference와 NT11 diagnostic 제한은
|
||||
미완료다. `reference/temp`는 검증에 사용하지 않는다. 정적 통과를 이 범위의 완료나
|
||||
테스트 삭제 근거로 확대하지 않는다. 수치 변경의 독립 검토도 rounding graph 변화와
|
||||
실제 runtime 미검증 영역을 구분하며 과거 Dev와 bit 동일성을 보장하지 않는다.
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
# T6 검사 정리 판정 — 승인된 정적 범위
|
||||
# 2026-10-18 병합 테스트 정리 근거
|
||||
|
||||
삭제는 **0개**다. 검사 본문·helper·CMake/MSVC 등록을 변경하지 않았다.
|
||||
같은 행동·실패 경계·수치 조건의 동등 대체 또는 폐기된 내부 구조만 검사한다는 근거가
|
||||
충분한 후보를 찾지 못했다. 모든 검사가 서로 독립적이라고 증명했다는 뜻은 아니다.
|
||||
판정이 불충분한 검사를 보존한다는 R6 계약을 적용했다.
|
||||
동등한 대체 또는 폐기 구조 전용임을 입증하지 못한 검사는 보존한다는 기준을 적용했다.
|
||||
|
||||
[이관표](test-migration.tsv)의 기존 2,876행·12열·identity·assertion 셀은 보존하고
|
||||
`cleanup_decision`, `cleanup_reason_id`, `cleanup_evidence` 3열만 덧붙였다.
|
||||
Dev/Refactor의 같은 최종 검사로 연결되는 두 행은 출처 이력이며 실행 중복이 아니다.
|
||||
삭제가 없으므로 대체 identity도 없다. 아래 identity는 **대체 지정이 아닌 비교 검토 대상**이다.
|
||||
`disposition`, `final_sha256` 등 옛 셀과 T3 manifest는 당시 이력으로 그대로 둔다.
|
||||
`disposition`, `final_sha256` 등 옛 셀과 manifest의 이관 당시 기록은 그대로 둔다.
|
||||
|
||||
## R-DEFER
|
||||
|
||||
@@ -78,7 +78,7 @@ dtype/shape·없는 자료의 not-run도 solver 실제 실행과 다른 합성
|
||||
|
||||
## R-STATIC
|
||||
|
||||
현재 정적·공통 선택 identity는 유지한다. T5의 source body/행/hash와 현재 본문을
|
||||
정리 당시 정적·공통 선택 identity는 유지했다. 정리 전 source body/행/hash와 최종 본문을
|
||||
대조하고 이관표의 최종 macro identity에 연결했다. 완전한 대체의 행동·실패 경계·수치
|
||||
조건을 입증하지 못했으므로 기존 assertion과 독립 oracle를 보존한다. 실행 성공·장시간·
|
||||
과거 제외 여부를 삭제 근거로 사용하지 않았다.
|
||||
@@ -90,15 +90,17 @@ dtype/shape·없는 자료의 not-run도 solver 실제 실행과 다른 합성
|
||||
변경이 만든 orphan은 없다. 기존 helper의 모든 간접 참조를 의미적으로 입증했다고
|
||||
주장하지 않으며, 참조 없는 폐기 구조라고 확정할 근거가 부족한 항목도 보존한다.
|
||||
|
||||
## 정적 검증과 인계
|
||||
## 검증 기록과 최종 반영
|
||||
|
||||
T6 raw는 `.build/merge-verification/t6-20261018/`다. `audit.py`는 솔버/테스트를 실행하지
|
||||
않고 TSV 원셀·전체 최종 행 분류, T5 964개 body 및 631/333 선택, 양쪽 source 등록,
|
||||
제품274개 Refactor bytes, T5 실행물·기준자료·원본 manifest 보존을 검사한다.
|
||||
구체 명령·exit·hash·검사 수는 `audit.json`과 manifest의 `t6_test_cleanup`에 기록한다.
|
||||
검사 source·등록 변화가 0이므로 AGENTS의 문서 전용 규칙에 따라 build/test를 재실행하지 않았다.
|
||||
당시 정적 감사 자료는 저장소 root의
|
||||
`.build/merge-verification/refactor-integration-final-20261018-01/worker-raw/t6-20261018/`에
|
||||
보존했다. `audit.py`와 `audit.json`은 TSV 원셀·최종 분류, 964개 body·631/333 선택,
|
||||
양쪽 등록·제품274개·실행물·기준자료의 보존을 확인한 당시 명령과 결과다.
|
||||
옛 절대 경로와 보관 위치의 대응은 상위 보관 폴더의 `archive-inventory.json`에서 찾는다.
|
||||
문서 전용 변경에 새 build/test를 실행한 기록은 아니다.
|
||||
|
||||
T5 Native/CMake/CTest 각631·Python145, 정식 정적5모델의 기존 실행 근거를 그대로
|
||||
인계한다. T6 정적 검토를 새 solver 실행·전체964개 PASS로 보고하지 않는다.
|
||||
정리 전 실제 Native/CMake/CTest 각631개·Python145개와 정적5모델 근거를 최종 상태와
|
||||
대조했고 `762bd4b`로 dev에 반영했다. 전체964개 PASS를 뜻하지 않는다.
|
||||
비정적333·fine/_02/pressure·thermal 새 reference와 NT11 제한, ShellNL RF/RM
|
||||
false/review-only와 stress mapping 미판정은 유지한다. T7 최종 정적 검증은 별도 작업이다.
|
||||
false/review-only와 stress mapping 미판정은 유지한다. 최종 실행 범위와 자료 위치는
|
||||
[병합 결과](README.md#병합-결과와-검증-범위)에 정리했다.
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
# 기능 개발 문서와 컨텍스트 예상량
|
||||
|
||||
2026-10-18 작업 트리의 UTF-8 텍스트를 기준으로 한 대략값이다. 모델별 tokenizer 실측이
|
||||
아니며 대화·시스템 지침·도구 정의·새 로그·작성 중인 코드와 답변은 포함하지 않는다.
|
||||
같은 자료를 다시 출력하면 그만큼 더 사용하므로 아래 표는 파일을 한 번씩 읽는 경우다.
|
||||
|
||||
## 작업별 문서 묶음
|
||||
|
||||
먼저 [기능 색인](README.md)의 변경별 읽기 범위에 따라 필요한 자료를 선택한다.
|
||||
루트 지침은 읽기 묶음마다 한 번만 계산하며 AGENTS.md와 동일한 CLAUDE.md를 중복 합산하지 않는다.
|
||||
저장소의 지침24개를 모두 읽는 대신 실제 변경 경로의 상위 지침과 관련 영역 지침을 선택한다.
|
||||
|
||||
| 읽는 범위 | 예상 토큰 |
|
||||
| --- | ---: |
|
||||
| 루트 AGENTS.md 하나 | 약 2천~4천 |
|
||||
| 루트 → src/fesa → analysis 지침 한 경로 | 약 3천~6천 |
|
||||
| 일반 beam C++ 개발 문서 | 약 6천~1만2천 |
|
||||
| 위 문서와 beam formulation 원문 전체 | 약 1만8천~3만4천 |
|
||||
| HHT 현행 수식 문서 묶음 전체 | 약 2만9천~5만4천 |
|
||||
| 일반 beam 개발 문서와 아래 소스·테스트3개 전체 | 약 2만2천~3만8천 |
|
||||
|
||||
일반 beam 묶음은 루트 지침·색인·beam README, include/fesa·src/fesa·elements·tests 지침과
|
||||
solver-core의 개발 교훈·검증 경계 절이다. 수식 변경 예시는 책임·수명 절과 formulation 전체를
|
||||
추가했다. API·I/O·빌드가 바뀌면 해당 공통 절과 consumer를 더 확인해야 한다.
|
||||
|
||||
HHT 묶음은 관련 기본 지침·README·공통 수명/검증 절과 현행 관성·축소 좌표·고정 null 기저·
|
||||
carried-A noise 원문이다. 과거 full-coordinate/consistent 수식과 미채택 연구까지 일괄 포함한
|
||||
값은 아니다. 실제 변경에 해당하는 절만 읽으면 원문 전체를 읽는 예시보다 줄일 수 있다.
|
||||
|
||||
소스 포함 예시는 [공개 beam header](../include/fesa/elements/euler_beam_3d.h),
|
||||
[beam 구현](../src/fesa/elements/euler_beam_3d.cpp),
|
||||
[요소 테스트](../tests/unit/elements/euler_beam_3d_test.cpp) 전체를 읽는 경우다.
|
||||
다른 기능의 소스·테스트·실행 출력 크기는 다르므로 이 값을 전체 기능의 고정 예산으로 쓰지 않는다.
|
||||
|
||||
기존의 공통 요약 전체를 기본 필독으로 읽던 같은 beam 예시는 약 9천~1만7천 토큰이었다.
|
||||
관련 절을 고르는 현재 안내는 그 예시의 중간 추정량을 약 25~30% 줄인다. 수식과 검증 기준을
|
||||
삭제해서 얻는 감소가 아니며, 코드·도구 출력까지 포함한 전체 세션의 절감률도 아니다.
|
||||
|
||||
## 통째로 읽을 때 큰 자료
|
||||
|
||||
| 자료 | 예상 토큰 |
|
||||
| --- | ---: |
|
||||
| 현재 관리 Markdown64개, 생성물·보관본 제외, CLAUDE 중복·조건부 스킬 포함 | 약 18만~34만 |
|
||||
| 병합 manifest JSON + 테스트 이관 TSV, 약4.74MB | 추가 약 100만~168만 |
|
||||
|
||||
Manifest는 초기 목록과 후속 단계의 검증을 누적한 감사 자료다. 필요한 key를 선택하고,
|
||||
이관표는 `original_identity`·`final_identity`·`final_path` 등으로 해당 행만 찾는다.
|
||||
전체 자료를 기본 개발 컨텍스트로 넣지 않는다. 상세 수식·역사적 연구는 관련 쟁점을
|
||||
검토할 때 읽으며, 과거 PASS와 미검증 범위는 각 기능 README에서 확인한다.
|
||||
|
||||
## 추정 방법과 한계
|
||||
|
||||
실제 문자 수를 ASCII·한글 음절/자모·기타 Unicode로 나눴다. ASCII는 3~5문자당1토큰,
|
||||
한글은 문자당1~2토큰, 기타 문자는0.5~2토큰이라는 넓은 가정으로 범위를 계산했다.
|
||||
중간값은 각각4문자당1·문자당1.5·문자당1로 두었다. 이 계수는 예측을 위한 가정이며
|
||||
특정 모델의 토큰 분할 규칙이 아니다. 영어 식별자·LaTeX·숫자·한글 혼합 비율에 따라 달라진다.
|
||||
|
||||
실제 세션에는 사용자 요청·이전 대화·플랫폼 지침과 도구 결과가 더해진다. 문서 추정량을
|
||||
모델의 전체 context 한도나 요금으로 해석하지 않는다. 큰 테스트 파일·JSON·반복 실행 로그는
|
||||
필요한 구간을 먼저 검색하고, 수식 변경에는 관련 유도·가정·실패 경계와 독립 검증을 생략하지 않는다.
|
||||
@@ -1,5 +1,8 @@
|
||||
# Hex8 정식화와 검증 불변량
|
||||
|
||||
> 현재 구현·검증은 [기능 요약](README.md)을 먼저 따른다. 아래 준비 상태·owner 인계와
|
||||
> 옛 source 문서명은 작성 당시 이력이며, 원문은 Git 이력에서 확인한다.
|
||||
|
||||
적용: [PRD](README.md)의 FEM-REQ-HEX8-002–007,012–018,021.
|
||||
물리 선택은 [ADR](README.md)에 있다. 이 문서는 승인된 식의 구현용 유도이며
|
||||
외부 결과에 맞추어 physics를 바꾸는 권한이 아니다. 수치 controls는
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Hex8 동해석 high+low 정식화
|
||||
|
||||
2026-10-11 질량 정책 변경: [HEX8-ADR-010](README.md)에 따라 현재 고유치·HHT는 lumped mass를 사용한다. 아래 consistent 질량을 전제로 한 수식 후보·검토·PASS/FAIL은 해당 시점의 이력이다. 변경본 통과로 승계하지 않으며 현재 수식은 [formulation](formulation.md), 재검증 상태는 [PRD](README.md)의 현재 checklist를 따른다.
|
||||
2026-10-11 질량 정책 변경: [HEX8-ADR-010](README.md)에 따라 현재 고유치·HHT는 lumped mass를 사용한다. 아래 consistent 질량을 전제로 한 수식 후보·검토·PASS/FAIL은 해당 시점의 이력이다. 변경본 통과로 승계하지 않으며 현재 수식은 [formulation](formulation.md), 현재 구현·재검증 상태는 [기능 요약](README.md)을 먼저 따른다. 아래 준비 상태·owner 인계와 옛 source 문서명은 작성 당시 이력이며 원문은 Git 이력에서 확인한다.
|
||||
|
||||
적용: 사용자가 2026-10-09 선택 A로 승인한 [정밀도 제안](README.md).
|
||||
기본 물리식·DOF·부호·적분점 순서는 [formulation](formulation.md), 판정 원본은
|
||||
|
||||
@@ -8,7 +8,7 @@ MITC4 shell의 유한회전 기하비선형 동해석이다. S4/S4R은 FESA-MITC
|
||||
shell schema v2**다. 과거 consistent 질량·full-coordinate v1 근거를 변경본 통과로 승계하지 않는다.
|
||||
|
||||
2026-10-13 기록에서 ADR-018의 실제 C09와 공식 Release C08a 7-grid는 통과했다.
|
||||
최신 전체 Debug는 856개 중 44개 PASS 후 사용자 중단됐고 Release C08b도 중단됐다.
|
||||
당시 전체 Debug는 856개 중 44개 PASS 후 사용자 중단됐고 Release C08b도 중단됐다.
|
||||
당시 원본 Release 해석은 증분99·t=9.9까지 accepted 로그만 남아 HDF5 비교가 불가능했다.
|
||||
사용자 중단 exit -1은 수치 FAIL이나 PASS가 아니다. 이후 2026-10-14 성능 baseline은
|
||||
원본을6372.325621초/native0으로 완료하고 schema v2·729nodes/101frames를 확인했다.
|
||||
@@ -18,9 +18,11 @@ shell schema v2**다. 과거 consistent 질량·full-coordinate v1 근거를 변
|
||||
|
||||
## 채택 방법과 산술 의미
|
||||
|
||||
[기본 정식화](formulation.md), [관성](formulation-inertia.md),
|
||||
[축소 좌표](formulation-reduced-coordinate.md), [고정 null 기저](formulation-fixed-null-basis.md)가
|
||||
수식의 상세 원본이다. 초기 null과 실제 free 공간의 교집합에서 고정 sparse 열 Lp/Lz를
|
||||
현재 물리·관성은 [관성 상세](formulation-inertia.md), 시간적분·graph는
|
||||
[축소 좌표](formulation-reduced-coordinate.md), plane basis·scaling은
|
||||
[고정 null 기저](formulation-fixed-null-basis.md)를 순서대로 읽는다.
|
||||
[기본 정식화](formulation.md)의 full-coordinate recurrence는 비교 이력이다.
|
||||
초기 null과 실제 free 공간의 교집합에서 고정 sparse 열 Lp/Lz를
|
||||
만들고 coupled graph root를 풀어 full `q=Q(p,t)`를 재구성한다. v와 physical a는 Q의
|
||||
chain rule로 복원한다. 부분 회전구속을 full clamp로 바꾸거나 모든 node에 동일 reduced
|
||||
차원을 강제하지 않는다. Fixed patch 밖에서 검증된 history transport가 없으면 실패한다.
|
||||
@@ -36,7 +38,7 @@ Lumped는 회전 block의 scalar diagonal 치환이 아니다. Epsilon inertia
|
||||
Primitive hidden-gradient authority, tiny director increment와 coefficient-first inertia contraction은
|
||||
큰 병진과 작은 회전의 소실을 줄이는 구현이다. Force·tangent·recovery는 같은 state/energy를
|
||||
사용한다. [Carried-A 산술](formulation-carried-a-noise.md)은 noise indicator의 범위를,
|
||||
[가속도 복구 후보](formulation-acceleration-recovery.md)는 채택 경로와 다른 후보를 설명한다.
|
||||
[가속도 복구 후보](formulation-acceleration-recovery.md)는 미채택 후보의 과거 연구를 설명한다.
|
||||
|
||||
## 입력·출력·reference 계약
|
||||
|
||||
@@ -134,13 +136,10 @@ C08b finer-grid·최신 최적화 source의 원본 HDF5 비교·전체 회귀·
|
||||
[ShellHhtIntegrator](../../src/fesa/analysis/hht_reduced_integrator.h)는 predictor/rate 복원을,
|
||||
[EquilibriumStep](../../src/fesa/analysis/equilibrium_algorithm.h)은0부터 시작하는 correction과
|
||||
typed pending을 분리한다. History는 procedure가 소유하고 동일 acceptance 뒤 commit한다.
|
||||
빌드·선별 검사 결과는 [통합 현황](../cpp-object-oriented-modular-refactoring/README.md)을 따르며,
|
||||
과거 interrupted run·finest binary64 noise의 미판정을 새 전체 통과로 바꾸지 않는다.
|
||||
|
||||
## 이번 병합 검증의 사용자 변경
|
||||
|
||||
2026-10-18 사용자가 장시간 HHT 검증을 중단하고 정적해석만 검증해 다음 단계로
|
||||
진행하도록 변경했다. Native 전체 실행의 부분 stdout·기존 결과는 보존하되 현재 HHT
|
||||
전체 PASS나 수치 FAIL로 계산하지 않는다. 비정적 테스트는 삭제하지 않는다. 완료된 개별
|
||||
검사와 중단된 C08b의 범위·근거는 [병합 현황](../cpp-object-oriented-modular-refactoring/README.md)에
|
||||
구분한다. 이 실행 범위 변경은 정식화·허용치·시간수렴 요구 자체의 변경이 아니다.
|
||||
진행하도록 변경했다. Native 전체 실행의 부분 stdout·기존 결과와 비정적 테스트는
|
||||
보존했다. 당시 interrupted run·finest binary64 noise의 미판정은 현재 HHT 전체 PASS나
|
||||
수치 FAIL로 승계하지 않았다. 완료된 개별 검사와 중단된 C08b 및 병합 선별 검사의
|
||||
범위·근거는 [통합 현황](../cpp-object-oriented-modular-refactoring/README.md)을 따른다.
|
||||
이 실행 범위 변경은 정식화·허용치·시간수렴 요구 자체의 변경이 아니다.
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
# 제약 일관 가속도 복구 후보
|
||||
|
||||
2026-10-11 질량 정책 변경: [HHT-ADR-012](README.md)에 따라 현재 고유치·HHT는 lumped mass를 사용한다. 아래 consistent 질량을 전제로 한 수식 후보·검토·PASS/FAIL은 해당 시점의 이력이다. 변경본 통과로 승계하지 않으며 현재 수식은 [formulation](formulation.md), 재검증 상태는 [PRD](README.md)의 현재 checklist를 따른다.
|
||||
읽기 구분: 2026-09-26의 미채택 acceleration-recovery 후보 기록이다. 아래 기존 적분·검토·실패는 당시 consistent/full-coordinate 경로를 가리킨다. 현재 reduced physical-rate 복원은 [축소 좌표](formulation-reduced-coordinate.md), 채택·검증 상태는 [기능 요약](README.md)을 따른다.
|
||||
|
||||
- 상태: `candidate-for-independent-review; not-adopted`, 2026-09-26.
|
||||
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
|
||||
|
||||
2026-10-11 질량 정책 변경: `HHT-ADR-012`([현재 요약](README.md))에 따라 현재 고유치·HHT는 lumped mass를 사용한다. 아래 consistent 질량을 전제로 한 수식 후보·검토·PASS/FAIL은 해당 시점의 이력이다. 변경본 통과로 승계하지 않으며 현재 수식은 [formulation](formulation.md), 재검증 상태는 [기능 요약](README.md)의 현재 검증 경계를 따른다.
|
||||
|
||||
- 작성 당시 상태: `candidate-for-independent-review; not-adopted`, 2026-09-26.
|
||||
- Owner: `formulation-agent`. 할당 범위는 이 문서이며 source·시험·상위 계약은 변경하지 않는다.
|
||||
- 기준: [프로젝트 지침](../../AGENTS.md), [프로젝트 PRD](../solver-core/README.md), [공통 ADR](../solver-core/README.md), [Feature PRD](README.md), [시간적분](formulation.md), [관성 상세](formulation-inertia.md).
|
||||
- 발견 근거: [구현 수치 검토 NR-009 이후](README.md), [C08](README.md), [N1–N7](README.md).
|
||||
- 기준: [프로젝트 지침](../../AGENTS.md), [솔버 공통 요약](../solver-core/README.md), [공통 계약 요약](../solver-core/README.md), [기능 요약](README.md), [시간적분](formulation.md), [관성 상세](formulation-inertia.md).
|
||||
- 발견 근거: `구현 수치 검토 NR-009 이후`, `C08`, `N1–N7`.
|
||||
|
||||
## 1. 제안과 변경 경계
|
||||
|
||||
@@ -25,7 +29,7 @@
|
||||
|
||||
각 admissible nodal null은 `[0;J_l(phi)^(-1)d]`다. 현재 total rotation-vector chart, geometry 및 swing/twist 유효성과 일정 null rank, 양의 physical mass 및 bounded algebraic inverse가 전 구간에서 필요하다. Partial BC는 null과 free 공간의 **교집합**을 구한다. N의 constrained 성분을 단순 삭제하거나 작은 positive mass를 null로 재분류하지 않는다. Empty null에서는 `a_rec=a_h`; all-fixed 모델도 empty recovery로 처리한다.
|
||||
|
||||
이 문서의 N은 [N3/N4](README.md)의 고정 scale `D=diag(ell I3,I3)`, `x=D^-1 q`, 연속 정규화 analytic basis Z와 **`N=D_f Z(x)`**로 대응한다. 따라서 `psi=N^T g_f=Z^T(D^Tg)_f`, `g=f_int-F`. 미분 시 basis도 현재 q의 함수로 미분한다. N은 시간 grid와 무관한 같은 정의·source 순서를 사용하며 eigen/SVD 부호 변경으로 선택하지 않는다.
|
||||
이 문서의 N은 `N3/N4`의 고정 scale `D=diag(ell I3,I3)`, `x=D^-1 q`, 연속 정규화 analytic basis Z와 **`N=D_f Z(x)`**로 대응한다. 따라서 `psi=N^T g_f=Z^T(D^Tg)_f`, `g=f_int-F`. 미분 시 basis도 현재 q의 함수로 미분한다. N은 시간 grid와 무관한 같은 정의·source 순서를 사용하며 eigen/SVD 부호 변경으로 선택하지 않는다.
|
||||
|
||||
## 3. 복구 방정식과 필요한 미분
|
||||
|
||||
@@ -115,7 +119,7 @@ Basis 표현에도 주의한다. `tilde psi=S(q,t)psi`에서 연속 2차 미분
|
||||
|
||||
## 6. 독립 검토용 반증 사례
|
||||
|
||||
아래는 추가 검증 제안이며 [기존 C08/N7](README.md)의 grid·전체 시점·원 정확도 요구를 바꾸지 않는다. 기존 a_h와 후보 a_rec를 함께 보존하고 실패 결과를 대체하지 않는다.
|
||||
아래는 추가 검증 제안이며 `기존 C08/N7`의 grid·전체 시점·원 정확도 요구를 바꾸지 않는다. 기존 a_h와 후보 a_rec를 함께 보존하고 실패 결과를 대체하지 않는다.
|
||||
|
||||
| ID | 모델/조작 | 반드시 확인할 결과 |
|
||||
| --- | --- | --- |
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
# C08b Newton 잔차 재정식화 후보
|
||||
|
||||
상태: 연구 후보이며 production 채택·수치 정확도 승인이 아니다. 2026-10-12 formulation owner 작업은 이 문서만 소유한다. 질량·시간적분·내력·초기화·tolerance·원본을 바꾸지 않는다. 독립 numerical review와 실제 prototype 결과는 별도 owner가 소유한다.
|
||||
읽기 구분: 2026-10-12 full-coordinate C08b의 잔차 후보 연구다. 아래 현재·기존·미해결은 연구 당시의 상태이며 이 후보 전체의 채택을 뜻하지 않는다. 현재 Newton·graph 경로는 [축소 좌표](formulation-reduced-coordinate.md)·[고정 null 기저](formulation-fixed-null-basis.md), 검증 상태는 [기능 요약](README.md)을 따른다.
|
||||
|
||||
계약: [기존 정식화](formulation.md), [관성·null 상세 §4](formulation-inertia.md#4-mass-null과-초기-일관성), [ADR-010/012](README.md). 실제 trial은 [analysis.json](README.md)에 있으며 아래 기전 설명은 그 수치를 바탕으로 한 조사 후보이다.
|
||||
작성 당시 상태: 연구 후보이며 production 채택·수치 정확도 승인이 아니다. 2026-10-12 formulation owner 작업은 이 문서만 소유한다. 질량·시간적분·내력·초기화·tolerance·원본을 바꾸지 않는다. 독립 numerical review와 실제 prototype 결과는 별도 owner가 소유한다.
|
||||
|
||||
계약: [기존 정식화](formulation.md), [관성·null 상세 §4](formulation-inertia.md#4-mass-null과-초기-일관성), `ADR-010/012`. 조사 당시 원자료 `analysis.json`의 실제 trial 수치를 근거로 하며 아래 기전 설명은 그 수치를 바탕으로 한 조사 후보이다. 현재 README는 원자료 JSON을 제공하지 않으며 [현재 요약](README.md)으로만 연결한다.
|
||||
|
||||
## 1. 적용 가정과 보존량
|
||||
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
# Carried-A HHT의 arithmetic/noise 인계
|
||||
|
||||
상태: `implementation-ready-estimator; independent-review-pending`, 2026-10-12. [축소 좌표 정식화](formulation-reduced-coordinate.md)와 별개로, 동일 full-coordinate HHT에서 A를 직접 갱신하는 산술을 다룬다. 기존 [N7](README.md)의 separation 기준을 완화하지 않는다. Half-ULP `q-qp-sA` closure는 이전 predictor·seed·update 오차 또는 history bound가 아니다.
|
||||
읽기 구분: 현재 CA radius 계산이 참조하는 산술 원본이다. 아래 full-coordinate carried-A 연산 경로 자체는 비교 이력이며, 현재 reduced Ar·pair update와 basis radius 적용 범위는 [축소 좌표](formulation-reduced-coordinate.md)·[고정 null 기저](formulation-fixed-null-basis.md)를 따른다. 현재 검증은 [기능 요약](README.md)에서 확인한다.
|
||||
|
||||
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
|
||||
|
||||
작성 당시 상태: `implementation-ready-estimator; independent-review-pending`, 2026-10-12. [축소 좌표 정식화](formulation-reduced-coordinate.md)와 별개로, 동일 full-coordinate HHT에서 A를 직접 갱신하는 산술을 다룬다. 기존 `N7`의 separation 기준을 완화하지 않는다. Half-ULP `q-qp-sA` closure는 이전 predictor·seed·update 오차 또는 history bound가 아니다.
|
||||
|
||||
## 1. 실제 연산 경로
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
# 대수좌표 제거 DAE 연구: 수식과 실행 결과
|
||||
|
||||
상태: 연구 후보·독립 검토 대기. Owner: formulation, 2026-10-12. [연구의 권장 후보](README.md)를 소형 문제로 비교했다. Production·tests·PRD·ADR·reference·tolerance는 수정하지 않았다. 실제 shell 검증이나 새 적분법 채택이 아니다.
|
||||
읽기 구분: 2026-10-12 소형 DAE 연구 당시의 결과와 capability gap을 보존한다. 아래 현재·미구현·미결정은 그 시점의 기술이다. 이후 채택된 shell 경로는 [축소 좌표](formulation-reduced-coordinate.md)·[고정 null 기저](formulation-fixed-null-basis.md), 현재 검증은 [기능 요약](README.md)을 따른다.
|
||||
|
||||
재현 자료는 [Decimal80 probe](README.md), [실제 native 기록](README.md), [stdout](README.md), [전체 grid·오차·조건 결과](README.md)다. `python -B compare.py` 실행 native0이며 FESA build/CTest는 실행하지 않았다. 모든 문제는 `t∈[0,1]`, `h=1/16,...,1/256`, exact frame0의 q/v/a와 `A0=a0`, `alpha=-.05,beta=.275625,gamma=.55`를 사용했다. 초기 구간을 제외하지 않고 모든 `n+1` endpoint의 component infinity-norm 최대 오차를 구했다. 이 raw absolute error는 FESA N7의 normalized/noise-certified metric이 아니다.
|
||||
작성 당시 상태: 연구 후보·독립 검토 대기. Owner: formulation, 2026-10-12. `연구의 권장 후보`를 소형 문제로 비교했다. Production·tests·PRD·ADR·reference·tolerance는 수정하지 않았다. 실제 shell 검증이나 새 적분법 채택이 아니다.
|
||||
|
||||
당시 원자료는 `Decimal80 probe`, `실제 native 기록`, `stdout`, `전체 grid·오차·조건 결과`였다. 이 문서에 그 원자료 경로는 제공하지 않으며 [현재 요약](README.md)은 현재 기능 상태를 안내한다. `python -B compare.py` 실행 native0이며 FESA build/CTest는 실행하지 않았다. 모든 문제는 `t∈[0,1]`, `h=1/16,...,1/256`, exact frame0의 q/v/a와 `A0=a0`, `alpha=-.05,beta=.275625,gamma=.55`를 사용했다. 초기 구간을 제외하지 않고 모든 `n+1` endpoint의 component infinity-norm 최대 오차를 구했다. 이 raw absolute error는 FESA N7의 normalized/noise-certified metric이 아니다.
|
||||
|
||||
## 1. 관찰과 범위
|
||||
|
||||
@@ -110,9 +112,9 @@ Exact reduced 해는 `y=sin(t),ydot=cos(t),yddot=-sin(t)`이며 Decimal80 sin/co
|
||||
- 같은 계수와 exact frame0을 쓴다고 reduced history가 승인된 full-coordinate history와 같아지지 않는다. Production 채택에는 수식·수치 검토와 명시적인 algorithm/state 결정이 필요하다. Tolerance/reference 변경은 제안하지 않는다.
|
||||
- Full E·반력·hidden0/1/2·물리적 a와 공간 rate·energy/P/L·현행 C08·원본 비교는 각각 필수 evidence다. 이 oscillator는 frequency1이므로 C08b의 stiff-mode 시간 해상도 문제를 해결하지 않는다.
|
||||
|
||||
## 6. 실제 shell chart 후보와 구현-ready capability gap
|
||||
## 6. 연구 당시 실제 shell chart 후보와 구현-ready capability gap
|
||||
|
||||
현재 source는 읽기만 했다. [shell evaluator API](README.md)와 [내부 Jet·scalar constraint](README.md), [관성 API](README.md)를 대조했다. 소형 prototype가 구현한 것은 해석적으로 알려진 polynomial Q와 독립 scalar reduced HHT뿐이다. Actual shell algebraic branch solver·Q 미분·reduced trial/state·assembly·tangent는 **구현하지 않았다**.
|
||||
연구 당시 source는 읽기만 했다. [shell evaluator API](../../include/fesa/elements/nonlinear_mitc4_shell.h)와 내부 Jet·scalar constraint, 관성 API를 대조했다. 소형 prototype가 구현한 것은 해석적으로 알려진 polynomial Q와 독립 scalar reduced HHT뿐이다. Actual shell algebraic branch solver·Q 미분·reduced trial/state·assembly·tangent는 **구현하지 않았다**.
|
||||
|
||||
### 6.1 Chart 선택과 물리 동등성의 조건
|
||||
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
# 고정 초기 null 기저의 sparse reduced HHT 정식화
|
||||
|
||||
상태: `implementation-ready; independent-review-and-runtime-pending`, 2026-10-13.
|
||||
승인 범위는 [고정 null 기저 제안](README.md)과
|
||||
[HHT-ADR-018](README.md)의 사용자 결정이다. 본 문서는 수식·연산 계약이며
|
||||
읽기 구분: 현재 고정 null 기저·sparse lift·augmented scaling의 수식 원본이다. [축소 좌표](formulation-reduced-coordinate.md)를 전제로 읽는다. 아래 인계 당시의 대기·미구현 표현은 그 시점의 기록이며 현재 구현·검증은 [기능 요약](README.md)을 따른다.
|
||||
|
||||
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
|
||||
|
||||
작성 당시 상태: `implementation-ready; independent-review-and-runtime-pending`, 2026-10-13.
|
||||
승인 범위는 `고정 null 기저 제안`과
|
||||
`HHT-ADR-018`([현재 요약](README.md))의 사용자 결정이다. 본 문서는 수식·연산 계약이며
|
||||
자기 수치 승인이나 현재 production PASS 기록이 아니다.
|
||||
[기존 축소 정식화](formulation-reduced-coordinate.md)의 fully-free rotation
|
||||
component selector를 아래 고정 ON 기저로 대체한다. 기존
|
||||
[N1–N7](README.md), [제한 Newton](README.md),
|
||||
[독립 검토](README.md)와 허용값은 유지한다.
|
||||
`N1–N7`, `제한 Newton`,
|
||||
`독립 검토`와 허용값은 유지한다.
|
||||
|
||||
## 1. 적용 가정과 물리 계약
|
||||
|
||||
@@ -217,10 +221,10 @@ scale underflow/overflow는 실패다. 역변환 `d=Sx dhat` 후 다음 map을
|
||||
|
||||
N2-L의 분자/분모는 **실제로 factor/solve한 operator**에서
|
||||
`||Khat dhat-bhat||inf / || |Khat||dhat|+|bhat| ||inf`, 원 `1e-12`다.
|
||||
대조 시점의 read-only source augmented assembly/solve는 raw `Kaug,baug`를 전달하고
|
||||
explicit FB-06이 없다. Raw 검산 evidence는 FB-06 scaled 검산의 증거가 아니다.
|
||||
FB-06은 승인된 scaled-operator 계약의 동등 representation으로 구현하며 actual
|
||||
scaling/undo를 source 및 focused evidence로 닫아야 한다. Full physical N2 residual/correction은 기존 global
|
||||
정식화 작성 당시 read-only source는 raw `Kaug,baug`를 전달했다. 현재
|
||||
`AssembleAugmentedReducedSystem`은 FB-06의 row/unknown scaling을 구성하고
|
||||
`MapAugmentedCorrection`이 물리 보정을 복원한다. 구현의 존재와 해당 revision의
|
||||
focused/full runtime 검증은 구분하며 현재 범위는 [기능 요약](README.md)을 따른다. Full physical N2 residual/correction은 기존 global
|
||||
free channels에서 FB-07로 평가하며 selector `Ep`만으로 endpoint를 통과시키지 않는다.
|
||||
|
||||
ADR-017 restricted operator는 **actual scaled** `Khat[J,J]`이며 J에는 angular p와
|
||||
@@ -497,9 +501,10 @@ full defect solve 실패를 restricted 성공으로 대신하지 않는다. Read
|
||||
2/4/8-step 진단, C08a7/C08b8 원 grid/hidden/physical q-v-a/P-E-L/N7,
|
||||
configured full Debug/CTest와 원101-frame reference. 실행은 fresh source identity에 연결한다.
|
||||
|
||||
남은 증거: actual diagonal scaling, 비영 private 초기상태 roundtrip 운용,
|
||||
정식화 인계 당시 남긴 확인 항목: actual diagonal scaling, 비영 private 초기상태 roundtrip 운용,
|
||||
새 basis coefficient CA, condition/transversality 실측 및 전체 runtime 항목은
|
||||
implementation owner와 독립 review가 확인한다. 새 tolerance/physics/schema/reference
|
||||
implementation owner와 독립 review의 확인 대상이었다. 현재 구현 존재와 최신 검증의
|
||||
구분은 [기능 요약](README.md)을 따른다. 새 tolerance/physics/schema/reference
|
||||
변경은 정하지 않았다. Empty null은 원 full-coordinate HHT로, all-fixed는 empty
|
||||
free solve와 원 full reaction으로 환원한다. 문서 정적 대조만 수행했으며
|
||||
build/test·외부 solver는 실행하지 않았다.
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
# ADR-018 graph BL/solve certificate controller draft
|
||||
|
||||
Status: private design only. Shared test source is frozen while the configured
|
||||
Debug focused run is active.
|
||||
읽기 구분: 2026-10-12 test-local graph certificate 설계 초안이다. 수식 범위는 [고정 null 기저의 certificate 계약](formulation-fixed-null-basis.md#51-고정-basis-coefficient-radius의-실행-계약), 현재 구현·검증은 [기능 요약](README.md)을 따른다. 아래 작업 동결·추가 계획은 초안 작성 당시 기록이다.
|
||||
|
||||
상태: 과거 private 설계 초안이다. 작성 당시 configured Debug focused run 중에는
|
||||
shared test source를 동결했다. 현재 test-local certificate 구현의 존재와
|
||||
최신 실행 검증 범위는 구분하며 [기능 요약](README.md)을 따른다.
|
||||
|
||||
## Scope
|
||||
|
||||
@@ -53,7 +56,7 @@ Undo any actual rate scaling before using `Bx` in physical lifted radii.
|
||||
|
||||
## Tests
|
||||
|
||||
Add only after the current focused run closes:
|
||||
초안 작성 당시 focused run 종료 뒤 추가하려던 검사 목록:
|
||||
- small chart with plane coefficient value zero / positive BL, proving BG/BP
|
||||
remain nonzero after an omitted-BL mutation;
|
||||
- 1x1 and 4x4 source-order graph replay, N2-L checked;
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
# HHT implicit dynamics 정식화
|
||||
|
||||
- 상태: `independently-reviewed-candidate; physics-and-validation-pending`.
|
||||
보존본: 2026-10-04 문서 정리 시점의 consistent/full-coordinate 후보 원문이다. 아래 현재·이번·미결정 표현은 당시 상태이며, 현행 lumped/reduced/fixed-null 채택·검증은 [기능 요약](README.md)을 따른다. 수식·유도는 비교 이력으로 보존한다.
|
||||
|
||||
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
|
||||
|
||||
- 작성 당시 상태: `independently-reviewed-candidate; physics-and-validation-pending`.
|
||||
- Owner: `formulation-agent`, 2026-09-22. 문서 gate 산출물이며 구현 승인이나 수치 검증 통과가 아니다.
|
||||
- 기준: [프로젝트 지침](../../AGENTS.md), [제품 PRD](../solver-core/README.md), [공통 ADR](../solver-core/README.md), [Feature PRD](README.md), [요구사항](README.md), [연구](README.md).
|
||||
- 관성의 전개식·초기 일관성·정확도 근거는 [formulation-inertia](formulation-inertia.md)가 소유한다. 영속 schema, C++ 저장 구조와 tolerance는 정의하지 않는다.
|
||||
- 기준: [프로젝트 지침](../../AGENTS.md), [솔버 공통 요약](../solver-core/README.md), [공통 계약 요약](../solver-core/README.md), [기능 요약](README.md), 당시 요구사항, 당시 연구 기록.
|
||||
- 관성의 전개식·초기 일관성·정확도 근거는 [formulation-inertia](formulation-inertia-historical-docs-cleanup-20261004.md)가 소유한다. 영속 schema, C++ 저장 구조와 tolerance는 정의하지 않는다.
|
||||
|
||||
## 1. 결론과 적용 범위
|
||||
|
||||
**추천 후보는 유한회전 kinetic energy에서 유도한 관성력과, 물리적 가속도 `a` / 알고리즘 가속도 `A`를 분리하는 HHT 확장이다.** 일정 질량의 표준 HHT force weighting으로 정확히 환원한다. 단순히 `M(q)`를 기존 일정 질량 잔차에 대입하는 식은 추천하지 않는다. 이 차이는 [상세 §5](formulation-inertia.md#5-시간-정확도와-대안의-경계)에 유도한다.
|
||||
**추천 후보는 유한회전 kinetic energy에서 유도한 관성력과, 물리적 가속도 `a` / 알고리즘 가속도 `A`를 분리하는 HHT 확장이다.** 일정 질량의 표준 HHT force weighting으로 정확히 환원한다. 단순히 `M(q)`를 기존 일정 질량 잔차에 대입하는 식은 추천하지 않는다. 이 차이는 [상세 §5](formulation-inertia-historical-docs-cleanup-20261004.md#5-시간-정확도와-대안의-경계)에 유도한다.
|
||||
|
||||
**사용자가 shell 속도 보간의 운동에너지를 그대로 적분하는 consistent mass를 선택했다.** 따라서 HHT 기본값과 이번 구현 범위는 consistent mass다. 같은 운동학의 scalar-moment nodal lumped 식은 비교용 이론 및 기존 eigen 회귀 참고이며 이번 HHT 구현 요구가 아니다. 선행 eigen 결과나 동적 reference와의 적합도로 선택한 것이 아니다. 유한회전 지원 범위를 작은 회전으로 축소하지 않는다.
|
||||
|
||||
@@ -56,7 +60,7 @@ x(\xi,\eta,\zeta;q)=\sum_i N_i(X_i+u_i+z d_i),\quad z=t\zeta/2,
|
||||
\ddot d_i=\dot\omega_i\times d_i+\omega_i\times(\omega_i\times d_i).
|
||||
\]
|
||||
|
||||
따라서 `v_phi`와 `a_phi`는 공간 각속도·각가속도가 아니다. `A_phi`는 이 물리 회복식에 넣지 않는다. `J_l`과 미분의 구현 가능한 정의는 [상세 §1](formulation-inertia.md#1-회전과-관성의-미분)에 있다.
|
||||
따라서 `v_phi`와 `a_phi`는 공간 각속도·각가속도가 아니다. `A_phi`는 이 물리 회복식에 넣지 않는다. `J_l`과 미분의 구현 가능한 정의는 [상세 §1](formulation-inertia-historical-docs-cleanup-20261004.md#1-회전과-관성의-미분)에 있다.
|
||||
|
||||
물리 내력은 기존 [비선형 정식화 §§6–13](../nonlinear-static-newton-raphson/formulation.md)를 따른다. Green–Lagrange strain의 MITC assumed shear와 fixed-reference local engineering strain
|
||||
`ē=[E11,E22,2E12,2E13,2E23]`에 대해
|
||||
@@ -106,7 +110,7 @@ T_L=\frac12\sum_i\left(m_i|v_{ui}|^2+2s_i v_{ui}\cdot B_iv_{\phi i}
|
||||
\qquad F(t)=F^\star\ (t\ge0+).
|
||||
\]
|
||||
|
||||
이는 parent `rho_0 ẍ=Div_0 P`, `P=F_def S`의 가상일 이산화다. 강형의 `F_def`는 deformation gradient이며 nodal force `F`와 구별한다. 물리적 damping은 0이다. Tangent에는 `DM·a`, convective force의 configuration/velocity 미분을 모두 포함한다. 구체적인 matrix block, quadrature, derivative action과 null 조건은 [상세 §§1–4](formulation-inertia.md)에 고정한다.
|
||||
이는 parent `rho_0 ẍ=Div_0 P`, `P=F_def S`의 가상일 이산화다. 강형의 `F_def`는 deformation gradient이며 nodal force `F`와 구별한다. 물리적 damping은 0이다. Tangent에는 `DM·a`, convective force의 configuration/velocity 미분을 모두 포함한다. 구체적인 matrix block, quadrature, derivative action과 null 조건은 [상세 §§1–4](formulation-inertia-historical-docs-cleanup-20261004.md)에 고정한다.
|
||||
|
||||
## 4. 초기화와 HHT 시간적분 후보
|
||||
|
||||
@@ -117,9 +121,9 @@ T_L=\frac12\sum_i\left(m_i|v_{ui}|^2+2s_i v_{ui}\cdot B_iv_{\phi i}
|
||||
\beta=\frac14(1-\alpha)^2.
|
||||
\]
|
||||
|
||||
기본값은 `alpha=−0.05`, `beta=0.275625`, `gamma=0.55`다. [공개 기본값 근거](README.md)와 [Sandia의 결합계수](https://www.sandia.gov/files/sierra/SM_Users_5_20/main/implicit/integration.html)를 따른다. `alpha=0`은 평균가속도 Newmark다. 이 범위는 일반 유한회전 문제의 무조건 안정성이나 큰 시간간격의 정확도를 보증하지 않는다. 별도 `beta/gamma` 입력을 승인한 의미도 아니다.
|
||||
기본값은 `alpha=−0.05`, `beta=0.275625`, `gamma=0.55`다. `공개 기본값 근거`와 [Sandia의 결합계수](https://www.sandia.gov/files/sierra/SM_Users_5_20/main/implicit/integration.html)를 따른다. `alpha=0`은 평균가속도 Newmark다. 이 범위는 일반 유한회전 문제의 무조건 안정성이나 큰 시간간격의 정확도를 보증하지 않는다. 별도 `beta/gamma` 입력을 승인한 의미도 아니다.
|
||||
|
||||
**FESA 초기화 후보 계약:** frame 0은 `t=0+`, `q_0=v_0=0`, 전값 `F_0=F*`다. `M_ff(q_0)a_f0=F_f0−f_int,f(q_0)`와 [mass-null 일관성](formulation-inertia.md#4-mass-null과-초기-일관성)을 함께 풀어 `a_0`를 구한다. `A_0=a_0`, `g_0=f_int(q_0)−F_0`를 정의한다. `g_0=0` 또는 `a_0=0`을 임의 대입하지 않는다. 이는 공개 STEP 의미에 맞춘 FESA 계약 제안이며 Abaqus의 숨은 첫 history 생성 절차를 확인한 주장이 아니다.
|
||||
**FESA 초기화 후보 계약:** frame 0은 `t=0+`, `q_0=v_0=0`, 전값 `F_0=F*`다. `M_ff(q_0)a_f0=F_f0−f_int,f(q_0)`와 [mass-null 일관성](formulation-inertia-historical-docs-cleanup-20261004.md#4-mass-null과-초기-일관성)을 함께 풀어 `a_0`를 구한다. `A_0=a_0`, `g_0=f_int(q_0)−F_0`를 정의한다. `g_0=0` 또는 `a_0=0`을 임의 대입하지 않는다. 이는 공개 STEP 의미에 맞춘 FESA 계약 제안이며 Abaqus의 숨은 첫 history 생성 절차를 확인한 주장이 아니다.
|
||||
|
||||
[Brüls–Arnold (2008), 식 (5)–(8)](https://orbi.uliege.be/bitstream/2268/27088/1/pa_BrulsArnold2008_TheGeneralizedAlphaSchemeAsALinearMultistepIntegrator.pdf)의 보조가속도 형식을 `alpha_m=0`, `alpha_f=−alpha`로 전문화한다. 아래 `a`는 물리적 좌표 가속도, `A`는 시간적분 보조변수다:
|
||||
|
||||
@@ -210,6 +214,6 @@ W_{0\to n}=F^{\star T}(q_n-q_0),\quad
|
||||
| 구현 lifecycle | 동일 state tangent, 실패 rollback, time/frame 순서, deterministic assembly와 반복 결과 |
|
||||
| 외부 reference | 지정 원본 101 frames × 9 nodes, frame/instance/node/component의 exact mapping; U blocking / UR warning-only 및 공통 TOLERANCE. V/A/energy correctness는 해당 CSV에 coverage 없음 |
|
||||
|
||||
수식 후보의 [독립 검토](README.md)는 완료되었으며 표시된 수식에서 새 오류는 발견되지 않았다. 질량 선택은 consistent로 확정되었다. 구현 전 남은 계약은 (1) HHT 확장·초기화의 FESA 채택과 나머지 physics 범위, (2) initial algebraic regularity와 trial 실패 판정의 수치 기준, (3) 공식 output 의미의 공개 범위/I/O다. 이 선택 후 구현할 수 있는 수식 후보이며, 실제 유한회전 shell의 drilling DAE·관성 tangent·q/v/a 시간 수렴은 **구현 후 기능 acceptance에 필요한 검증**이다. 부모 문헌의 nonsingular-mass 조건을 shell mass-null에 자동 적용하지 않되, 모든 shell DAE의 보편적 수렴 증명을 코드 작성의 선행 조건으로 요구하지 않는다. 현재 문서 완료나 제한된 probe를 전체 solver 승인·검증 통과로 표시하지 않는다.
|
||||
수식 후보의 `독립 검토`는 완료되었으며 표시된 수식에서 새 오류는 발견되지 않았다. 질량 선택은 consistent로 확정되었다. 구현 전 남은 계약은 (1) HHT 확장·초기화의 FESA 채택과 나머지 physics 범위, (2) initial algebraic regularity와 trial 실패 판정의 수치 기준, (3) 공식 output 의미의 공개 범위/I/O다. 이 선택 후 구현할 수 있는 수식 후보이며, 실제 유한회전 shell의 drilling DAE·관성 tangent·q/v/a 시간 수렴은 **구현 후 기능 acceptance에 필요한 검증**이다. 부모 문헌의 nonsingular-mass 조건을 shell mass-null에 자동 적용하지 않되, 모든 shell DAE의 보편적 수렴 증명을 코드 작성의 선행 조건으로 요구하지 않는다. 현재 문서 완료나 제한된 probe를 전체 solver 승인·검증 통과로 표시하지 않는다.
|
||||
|
||||
이번 owner 작업은 기존 정식화·source 대조, 일차 문헌 대조와 수식 유도 및 문서 정적 검토다. [독립 시간정확도 검산](README.md)은 variable-mass SDOF와 moving-null 예제에서 추천 후보의 약 2차 q/v/physical-a 수렴을 관찰했고 naive 확대의 약 1차 오차를 구별했다. 이는 shell solver 검증이나 일반 drilling DAE 증명을 대신하지 않는다. Build/test·solver/reference 실행은 문서 작업 범위가 아니므로 미실행이다. 독립 검산과 Numerical Review 결과는 해당 owner의 보고서가 소유하며 본 문서가 스스로 승인하지 않는다.
|
||||
이번 owner 작업은 기존 정식화·source 대조, 일차 문헌 대조와 수식 유도 및 문서 정적 검토다. `독립 시간정확도 검산`은 variable-mass SDOF와 moving-null 예제에서 추천 후보의 약 2차 q/v/physical-a 수렴을 관찰했고 naive 확대의 약 1차 오차를 구별했다. 이는 shell solver 검증이나 일반 drilling DAE 증명을 대신하지 않는다. Build/test·solver/reference 실행은 문서 작업 범위가 아니므로 미실행이다. 독립 검산과 Numerical Review 결과는 해당 owner의 보고서가 소유하며 본 문서가 스스로 승인하지 않는다.
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
# 유한회전 관성·초기화·HHT 상세
|
||||
|
||||
[주 정식화](formulation.md)의 구현 수식 상세다. 상태와 미결정 항목은 주 문서를 따른다. 아래 전개는 명시한 FESA 운동학에서의 자체 유도이며 Abaqus 내부 절차의 기술이 아니다.
|
||||
보존본: 2026-10-04 문서 정리 시점의 consistent/full-coordinate 후보 원문이다. 아래 현재·이번·미결정 표현은 당시 상태이며, 현행 lumped/reduced/fixed-null 채택·검증은 [기능 요약](README.md)을 따른다. 수식·유도는 비교 이력으로 보존한다.
|
||||
|
||||
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
|
||||
|
||||
[당시 주 정식화](formulation-historical-docs-cleanup-20261004.md)의 구현 수식 상세다. 상태와 미결정 항목은 주 문서를 따른다. 아래 전개는 명시한 FESA 운동학에서의 자체 유도이며 Abaqus 내부 절차의 기술이 아니다.
|
||||
|
||||
사용자 선택에 따라 이번 HHT 기본 및 구현 질량은 consistent `T_C/M_C`다. Lumped 식은 비교용 이론·기존 eigen 회귀 참고로 보존하며 이번 HHT 구현·검증 요구를 추가하지 않는다. 다른 physics·알고리즘·공개 output의 승인은 이 선택과 별개다.
|
||||
|
||||
@@ -196,7 +200,7 @@ v_{n+1}-v_n=h\{-\alpha(1-\gamma)a_{n-1}
|
||||
|
||||
세 coefficient 합은 1, `a_(n−1),a_n,a_(n+1)`의 시간 offset `−1,0,+1`에 대한 first moment는 `alpha+gamma=1/2`다. 여기에는 `Mdot` 잔여항이 없다. Endpoint equation이 nonsingular mass의 smooth `a=f(q,v,t)`를 정의하면 q/v의 2차 일관성과 안정성 검토를 할 수 있고 physical a도 같은 해의 정확도를 따른다. 이는 nonlinear mass의 smooth manufactured verification을 요구하는 근거이며 독립 수치 검토를 대신하지 않는다.
|
||||
|
||||
문헌의 nonsingular mechanical solve 및 regular index-3 조건과 달리 본 shell은 drilling direction에서 singular `M`을 가진다. §4의 `psi_qN` regularity와 constant rank의 실제 지원 범위, redundant full-coordinate 구현에서의 hidden-constraint drift·q/v/a 정확도는 **구현 후 필수 검증 항목**이다. 이 조건으로 reduced smooth dynamics를 설명할 수 있는 범위를 확인하되 모든 shell에 대한 보편 정리를 요구하지 않는다. [독립 검토](README.md)는 현 수식 후보를 대조했고, [독립 검산](README.md)의 smooth variable-mass / moving-null 예제는 이를 지지한다. 이 제한된 evidence가 실제 shell/drilling 검증을 대신하지 않으며 유한회전 지원 범위를 축소하는 근거도 아니다.
|
||||
문헌의 nonsingular mechanical solve 및 regular index-3 조건과 달리 본 shell은 drilling direction에서 singular `M`을 가진다. §4의 `psi_qN` regularity와 constant rank의 실제 지원 범위, redundant full-coordinate 구현에서의 hidden-constraint drift·q/v/a 정확도는 **구현 후 필수 검증 항목**이다. 이 조건으로 reduced smooth dynamics를 설명할 수 있는 범위를 확인하되 모든 shell에 대한 보편 정리를 요구하지 않는다. `독립 검토`는 현 수식 후보를 대조했고, `독립 검산`의 smooth variable-mass / moving-null 예제는 이를 지지한다. 이 제한된 evidence가 실제 shell/drilling 검증을 대신하지 않으며 유한회전 지원 범위를 축소하는 근거도 아니다.
|
||||
|
||||
### 5.3 다른 후보와 채택하지 않은 이유
|
||||
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
# 유한회전 관성·초기화·HHT 상세
|
||||
|
||||
[주 정식화](formulation.md)의 구현 수식 상세다. 상태와 미결정 항목은 주 문서를 따른다. 아래 전개는 명시한 FESA 운동학에서의 자체 유도이며 Abaqus 내부 절차의 기술이 아니다.
|
||||
읽기 구분: 현재 채택한 nodal-lumped kinetic 관성의 수식 원본이다. Consistent 식과 full-coordinate 시간정확도 논의는 비교 이력이다. 현재 시간적분은 [축소 좌표](formulation-reduced-coordinate.md)·[고정 null 기저](formulation-fixed-null-basis.md), 구현·검증 상태는 [기능 요약](README.md)을 따른다.
|
||||
|
||||
2026-10-11 승인 [HHT-ADR-012](README.md)에 따라 이번 HHT 질량은 nodal lumped `T_L/M_L`다. Consistent 식은 비교와 미분 유도 이력으로 보존한다. 다른 physics·알고리즘·공개 output의 승인은 이 선택과 별개다.
|
||||
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
|
||||
|
||||
[주 정식화](formulation.md)의 구현 수식 상세다. 현재 채택·구현·검증 상태는 [기능 요약](README.md)을 따른다. 아래 전개는 명시한 FESA 운동학에서의 자체 유도이며 Abaqus 내부 절차의 기술이 아니다.
|
||||
|
||||
2026-10-11 승인 `HHT-ADR-012`([현재 요약](README.md))에 따라 이번 HHT 질량은 nodal lumped `T_L/M_L`다. Consistent 식은 비교와 미분 유도 이력으로 보존한다. 다른 physics·알고리즘·공개 output의 승인은 이 선택과 별개다.
|
||||
|
||||
## 1. 회전과 관성의 미분
|
||||
|
||||
@@ -218,7 +222,7 @@ v_{n+1}-v_n=h\{-\alpha(1-\gamma)a_{n-1}
|
||||
|
||||
세 coefficient 합은 1, `a_(n−1),a_n,a_(n+1)`의 시간 offset `−1,0,+1`에 대한 first moment는 `alpha+gamma=1/2`다. 여기에는 `Mdot` 잔여항이 없다. Endpoint equation이 nonsingular mass의 smooth `a=f(q,v,t)`를 정의하면 q/v의 2차 일관성과 안정성 검토를 할 수 있고 physical a도 같은 해의 정확도를 따른다. 이는 nonlinear mass의 smooth manufactured verification을 요구하는 근거이며 독립 수치 검토를 대신하지 않는다.
|
||||
|
||||
문헌의 nonsingular mechanical solve 및 regular index-3 조건과 달리 본 shell은 drilling direction에서 singular `M`을 가진다. §4의 `psi_qN` regularity와 constant rank의 실제 지원 범위, redundant full-coordinate 구현에서의 hidden-constraint drift·q/v/a 정확도는 **구현 후 필수 검증 항목**이다. 이 조건으로 reduced smooth dynamics를 설명할 수 있는 범위를 확인하되 모든 shell에 대한 보편 정리를 요구하지 않는다. [독립 검토](README.md)는 현 수식 후보를 대조했고, [독립 검산](README.md)의 smooth variable-mass / moving-null 예제는 이를 지지한다. 이 제한된 evidence가 실제 shell/drilling 검증을 대신하지 않으며 유한회전 지원 범위를 축소하는 근거도 아니다.
|
||||
문헌의 nonsingular mechanical solve 및 regular index-3 조건과 달리 본 shell은 drilling direction에서 singular `M`을 가진다. §4의 `psi_qN` regularity와 constant rank의 실제 지원 범위, redundant full-coordinate 구현에서의 hidden-constraint drift·q/v/a 정확도는 **구현 후 필수 검증 항목**이다. 이 조건으로 reduced smooth dynamics를 설명할 수 있는 범위를 확인하되 모든 shell에 대한 보편 정리를 요구하지 않는다. `독립 검토`는 현 수식 후보를 대조했고, `독립 검산`의 smooth variable-mass / moving-null 예제는 이를 지지한다. 이 제한된 evidence가 실제 shell/drilling 검증을 대신하지 않으며 유한회전 지원 범위를 축소하는 근거도 아니다.
|
||||
|
||||
### 5.3 다른 후보와 채택하지 않은 이유
|
||||
|
||||
@@ -228,4 +232,4 @@ v_{n+1}-v_n=h\{-\alpha(1-\gamma)a_{n-1}
|
||||
| Ambient director | 독립 `y=(u_i,d_i)`에 일정 moment mass, `d_i·d_i=1` holonomic constraint와 drill orientation의 algebraic equation을 둔 HHT | Newmark ambient director rates의 constraint drift, rotation-vector state와의 정확한 rate mapping, additional multiplier/drill coordinate가 필요. 기존 6DOF state와 단순 동치라고 볼 수 없음 |
|
||||
| Physical/algorithmic acceleration 분리 | 주 문서 후보; current `M_C(q)`만으로 physical endpoint equation을 풀며 null을 보존 | Shell mass-null의 시간 정확도·regularity 검증 필요. Consistent mass 선택이 이 시간적분 후보의 채택 승인까지 의미하지는 않음 |
|
||||
|
||||
기존 source는 nonlinear 내부력의 second derivative까지 계산하지만 관성 tangent에는 director의 third derivative가 필요하다. 기존 [small-rotation mass kernel](../../src/fesa/elements/mitc4_shell.cpp)의 moment는 재사용 가능한 기준이고 그 initial global mass를 유한회전 전체에 고정하는 것은 본 후보가 아니다. [정적 상태](../../include/fesa/analysis/nonlinear_analysis_state.h)는 `a/A` distinction을 제공하지 않으므로 현재 구현이 이 알고리즘을 지원한다고 보고하지 않는다.
|
||||
기존 source는 nonlinear 내부력의 second derivative까지 계산하지만 관성 tangent에는 director의 third derivative가 필요하다. 기존 [small-rotation mass kernel](../../src/fesa/elements/mitc4_shell.cpp)의 moment는 재사용 가능한 기준이고 그 initial global mass를 유한회전 전체에 고정하는 것은 본 후보가 아니다. 최초 정식화 당시의 [정적 상태](../../include/fesa/analysis/nonlinear_analysis_state.h)는 `a/A` distinction을 제공하지 않았다. 현재 [동적 상태](../../include/fesa/analysis/dynamic_analysis_state.h)와 채택 경로는 [기능 요약](README.md)을 따르며, 구현의 존재는 최신 전체 수치 검증 통과를 뜻하지 않는다.
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
# C08b linear momentum: 정확한 이산 불변량과 판정 후보
|
||||
|
||||
상태: 수식 검토 후보·독립 numerical review 및 사용자 결정 대기. Owner: formulation, 2026-10-12. 공식 acceptance·tolerance·tests·production은 변경하지 않았다. 현재 C08b FAIL을 유지한다. 이 문서는 새 수치 tolerance를 정하지 않는다.
|
||||
읽기 구분: 2026-10-12 full-coordinate C08b의 불변량·acceptance 검토 후보 기록이다. 이 문서는 acceptance 변경의 채택을 뜻하지 않는다. 현재 reduced 경로는 [축소 좌표](formulation-reduced-coordinate.md)·[고정 null 기저](formulation-fixed-null-basis.md), 현재 검증은 [기능 요약](README.md)을 따른다.
|
||||
|
||||
기준은 [현재 시간적분 정식화](formulation.md), [lumped 관성 상세](formulation-inertia.md), [현재 연구](README.md)다. 별도 [DAE 비교](formulation.md)는 full-coordinate와 reduced 시간적분의 구별을 소유한다. 아래 증명은 **현재 C08b의 원 full-coordinate HHT**에 대한 자체 유도이며 reduced 후보를 자동 포함하지 않는다.
|
||||
작성 당시 상태: 수식 검토 후보·독립 numerical review 및 사용자 결정 대기. Owner: formulation, 2026-10-12. 공식 acceptance·tolerance·tests·production은 변경하지 않았다. 연구 당시 C08b FAIL은 해당 이력으로 유지한다. 이 문서는 새 수치 tolerance를 정하지 않는다.
|
||||
|
||||
기준은 [당시 full-coordinate 시간적분 정식화](formulation.md), [lumped 관성 상세](formulation-inertia.md), [연구 위치의 현재 요약](README.md#보존한-과거-수식과-연구의-위치)다. 별도 [DAE 비교](formulation-dae-research-20261012.md)는 full-coordinate와 reduced 시간적분의 구별을 소유한다. 아래 증명은 **2026-10-12 연구 당시 C08b의 full-coordinate HHT**에 대한 자체 유도이며 reduced 후보를 자동 포함하지 않는다.
|
||||
|
||||
## 1. 가정과 검산
|
||||
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
# Shell 축소 좌표 HHT 정식화
|
||||
|
||||
상태: `implementation-ready; independent-review-and-shell-verification-pending`, 2026-10-12. 사용자는 실제 shell의 축소 좌표 HHT 구현·검증과 full A의 진단용 filter-combination 의미/schema 구분을 승인했다. 본 문서는 수식 인계이며 구현 또는 수치 통과를 승인하지 않는다. [기존 정식화](formulation.md), [현재 관성](formulation-inertia.md), [실험·실패 보고](README.md)를 전제로 한다. Carried-A의 동일 full-coordinate HHT 산술은 [별도 N7 상세](formulation-carried-a-noise.md)가 소유한다.
|
||||
읽기 구분: 현재 축소 적분·graph·physical-rate 복원의 수식 원본이다. Fully-free rotation의 component selector는 [고정 null 기저](formulation-fixed-null-basis.md)가 대체한다. 아래 구현 제안·검토 대기는 작성 당시의 기록이며 현재 구현·검증은 [기능 요약](README.md)을 따른다.
|
||||
|
||||
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
|
||||
|
||||
작성 당시 상태: `implementation-ready; independent-review-and-shell-verification-pending`, 2026-10-12. 사용자는 실제 shell의 축소 좌표 HHT 구현·검증과 full A의 진단용 filter-combination 의미/schema 구분을 승인했다. 본 문서는 수식 인계이며 구현 또는 수치 통과를 승인하지 않는다. [기존 정식화](formulation.md), [현재 관성](formulation-inertia.md), `실험·실패 보고`를 전제로 한다. Carried-A의 동일 full-coordinate HHT 산술은 [별도 N7 상세](formulation-carried-a-noise.md)가 소유한다.
|
||||
|
||||
## 1. 물리와 좌표
|
||||
|
||||
@@ -53,7 +57,7 @@ Empty null에서는 `Q(p)=L_p p`, `J=L_p`, `Q_t=Q''=Q'''=0`이며 원 full-coord
|
||||
않는다. Primitive의 source-ordered assembly와 안정적인 contraction으로 같은 수식을
|
||||
계산하고, physical mass range solve 및 original/reconstructed frame0의 full residual
|
||||
판정은 유지한다. 이 산술 정정의 원인·실행 범위는
|
||||
[후속 검증 기록](README.md)을 따른다.
|
||||
`후속 검증 기록`을 따른다.
|
||||
|
||||
\[
|
||||
Ar_{n+1}=(1+\alpha)ap_{n+1}-\alpha ap_n,\quad
|
||||
@@ -178,7 +182,7 @@ scaled norm과 private `delta Ar`를 검사한다. Public
|
||||
고정된다. N7에서도 augmented defect의 모든 auxiliary block을 위 식으로
|
||||
변환해야 한다. `delta p`만 남기거나 hidden defect를 무시하면 해당 noise
|
||||
판정은 유효하지 않다. 독립 소형 Schur 검산과 실제 shell 검증의 범위는
|
||||
[수치 검토](README.md)에 구분하여 기록한다.
|
||||
`수치 검토`에 구분하여 기록한다.
|
||||
|
||||
### 5.2 Newton 좌표 증분과 carried Ar의 산술 표현
|
||||
|
||||
@@ -212,15 +216,15 @@ Predictor의 inherited bound와 초기 low를 포함하고 accepted high의 unce
|
||||
다음 step으로 넘긴다. 기존 pp+Ar 또는 plain p addition bound를 이 새 경로의
|
||||
완전한 evidence로 승계하거나 radius를 reset/clamp하지 않는다. 이는 같은 수학
|
||||
recurrence의 산술 표현이며 stored high가 원 N3를 만족하지 못하면 여전히 실패다.
|
||||
독립 exact replay와 적용 한계는 [수치 검토](README.md)를 따른다.
|
||||
독립 exact replay와 적용 한계는 `수치 검토`를 따른다.
|
||||
|
||||
위 high-only 실패 정책은 승인 이전 evidence다. [HHT-ADR-016](README.md)에 따라
|
||||
위 high-only 실패 정책은 승인 이전 evidence다. `HHT-ADR-016`([현재 요약](README.md))에 따라
|
||||
reduced whole/requested 두 증분은 실제 candidate pair의 increment
|
||||
`(p_high+p_low)-old_accepted_high`를 EFT expansion으로 비교하고, 저장 high의
|
||||
RN-even 일치를 별도로 검사한다. 원래 각 scale와 `1e-12`, zero-scale exact-zero,
|
||||
독립 requested trace와 CA radius는 유지한다. Raw high-only 실패값을 보존하며
|
||||
승인 이전 FAIL을 변경본 PASS로 승계하지 않는다. 상세 범위와 표현 경계 검증은
|
||||
[승인된 제안](README.md)을 따른다.
|
||||
`승인된 제안`을 따른다.
|
||||
|
||||
## 6. 필요한 local operator와 시간 항
|
||||
|
||||
@@ -244,7 +248,10 @@ T[(u,0),(v,1),(v,1)]
|
||||
|
||||
Fixed-time Newton에는 RC-15의 T만 필요하므로 **F'''는 불필요하다**. 일반 pure Qttt 요청에는 F'''가 필요하지만 이번 구현에서 요청하지 않는다. Constant public CLOAD에서는 F'=F''=0이다. Generalized rotational F가 nonzero이면 n의 pure-q 미분은 여전히 필요하다. C08a oracle에 Fdot/Fddot=0을 대입하면 잘못된 구현이다. External time-mixed second contraction은 n의 nodal Hessian에서 계산하며 force finite difference로 대체하지 않는다.
|
||||
|
||||
## 7. 최소 구현 인계
|
||||
## 7. 당시 최소 구현 인계
|
||||
|
||||
다음 파일명과 인터페이스는 2026-10-12 제안이며 현재 파일 배치를 뜻하지 않는다.
|
||||
현재 source flow는 [기능 요약](README.md)을 따른다.
|
||||
|
||||
| Owner / 파일 제안 | 대응 operator / 책임 |
|
||||
| --- | --- |
|
||||
@@ -265,6 +272,6 @@ Private interface는 `EvaluateAlgebraicOperators(q,t,F,Fdot,Fddot,v)`, `SolveEmb
|
||||
- C08a all-time full q/v/physical-a 차수와 실제 shell C08b physical high-frequency convergence는 별개다. 축소법의 null-rate 개선만으로 C08b finest fixed-grid 기준 통과를 주장하지 않는다. Original reference 비교·현재 full suite는 implementation owner가 수행한다.
|
||||
- Fixed component graph는 general chart/rank transport, smoothness가 깨진 null cutting BC, nonprincipal branch, nonsmooth F를 지원하지 않는다. 이 경계는 fail-closed 구현과 진단으로 드러나야 하며 tolerance/rank clipping으로 숨기지 않는다.
|
||||
|
||||
Owner의 [Decimal96 polynomial probe](README.md)는 explicit-time coupled 2-constraint graph의 RC-07/09와 RC-10/11을 세 상태에서 계산했다. [결과](README.md), [native0 기록](README.md)을 보존한다. Implicit derivatives를 polynomial Q의 직접 미분과 비교하고, 원 평형 밖의 임의 smooth covector에서 exact tangent와 central difference를 비교하여 `delta J` 생략 효과가 nonzero임을 확인했다. 이는 수식 bookkeeping 검산이며 실제 shell 물리 모델·production 실행 또는 독립 numerical review가 아니다.
|
||||
당시 원자료 `Decimal96 polynomial probe`는 explicit-time coupled 2-constraint graph의 RC-07/09와 RC-10/11을 세 상태에서 계산했다. 원자료명 `결과`, `native0 기록`은 당시 evidence를 가리키며 이 문서에서 원자료 경로를 제공하지 않는다. [현재 요약](README.md)은 현재 기능 상태를 안내한다. Implicit derivatives를 polynomial Q의 직접 미분과 비교하고, 원 평형 밖의 임의 smooth covector에서 exact tangent와 central difference를 비교하여 `delta J` 생략 효과가 nonzero임을 확인했다. 이는 수식 bookkeeping 검산이며 실제 shell 물리 모델·production 실행 또는 독립 numerical review가 아니다.
|
||||
|
||||
독립 numerical reviewer가 RC-01–15와 actual implementation operator/BC/branch 대응을 검토해야 한다. Public A/schema details는 I/O owner의 승인 계약을 참조하며 본 수식 문서가 새로운 영속 문자열을 정하지 않는다.
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
# HHT implicit dynamics 정식화
|
||||
|
||||
- 상태: `independently-reviewed-candidate; physics-and-validation-pending`.
|
||||
읽기 구분: 물리 유도와 과거 full-coordinate 시간적분 기록이다. 아래 후보 상태·구현 전 판단은 최초 정식화 당시의 것이며, 현재 채택·입출력·검증은 [기능 요약](README.md)을 따른다. 현재 시간적분은 [축소 좌표](formulation-reduced-coordinate.md)와 [고정 null 기저](formulation-fixed-null-basis.md)를 읽는다.
|
||||
|
||||
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
|
||||
|
||||
- 작성 당시 상태: `independently-reviewed-candidate; physics-and-validation-pending`.
|
||||
- Owner: `formulation-agent`, 2026-09-22. 문서 gate 산출물이며 구현 승인이나 수치 검증 통과가 아니다.
|
||||
- 기준: [프로젝트 지침](../../AGENTS.md), [제품 PRD](../solver-core/README.md), [공통 ADR](../solver-core/README.md), [Feature PRD](README.md), [요구사항](README.md), [연구](README.md).
|
||||
- 기준: [프로젝트 지침](../../AGENTS.md), [솔버 공통 요약](../solver-core/README.md), [공통 계약 요약](../solver-core/README.md), [기능 요약](README.md), 당시 요구사항, 당시 연구 기록.
|
||||
- 관성의 전개식·초기 일관성·정확도 근거는 [formulation-inertia](formulation-inertia.md)가 소유한다. 영속 schema, C++ 저장 구조와 tolerance는 정의하지 않는다.
|
||||
|
||||
2026-10-12 사용자는 actual shell의 축소 좌표 HHT 구현·검증과 full A의 진단용 filter-combination 의미/schema 구분을 승인했다. 채택 방향의 수식은 [축소 좌표 HHT](formulation-reduced-coordinate.md)가 소유한다. 아래 full-coordinate recurrence는 기존 구현과 비교 이력이며 축소법의 full q/v update 식으로 승계하지 않는다. 승인과 actual solver 검증 완료는 구분한다.
|
||||
@@ -11,7 +15,7 @@
|
||||
|
||||
**추천 후보는 유한회전 kinetic energy에서 유도한 관성력과, 물리적 가속도 `a` / 알고리즘 가속도 `A`를 분리하는 HHT 확장이다.** 일정 질량의 표준 HHT force weighting으로 정확히 환원한다. 단순히 `M(q)`를 기존 일정 질량 잔차에 대입하는 식은 추천하지 않는다. 이 차이는 [상세 §5](formulation-inertia.md#5-시간-정확도와-대안의-경계)에 유도한다.
|
||||
|
||||
**2026-10-11 사용자가 고유치·HHT lumped mass를 승인했다([HHT-ADR-012](README.md)).** HHT는 아래 nodal kinetic measure의 `T_L/M_L`을 채택하고 기존 shell eigen nodal block lumping을 유지한다. `T_C/M_C`는 비교·유도 이력으로 보존한다. 선행 eigen 결과나 동적 reference와의 적합도로 선택한 것이 아니다. 유한회전 지원 범위를 작은 회전으로 축소하지 않는다.
|
||||
**2026-10-11 사용자가 고유치·HHT lumped mass를 승인했다(`HHT-ADR-012`([현재 요약](README.md))).** HHT는 아래 nodal kinetic measure의 `T_L/M_L`을 채택하고 기존 shell eigen nodal block lumping을 유지한다. `T_C/M_C`는 비교·유도 이력으로 보존한다. 선행 eigen 결과나 동적 reference와의 적합도로 선택한 것이 아니다. 유한회전 지원 범위를 작은 회전으로 축소하지 않는다.
|
||||
|
||||
아래 HHT 확장과 `0+` 초기화는 HHT-ADR-009에서 채택한 계약을 유지한다. 이번 lumped mass 선택은 그 밖의 physics·알고리즘·공개 output 범위를 확대하지 않는다.
|
||||
|
||||
@@ -79,7 +83,7 @@ U_{drill}=\frac12\sum_{e,i}k_{de}\chi_{ei}(q)^2,\quad
|
||||
f_{int}=\nabla_q(U_{phys}+U_{drill}),\quad K_{int}=\nabla_q^2(U_{phys}+U_{drill}).
|
||||
\]
|
||||
|
||||
Drilling stiffness는 물리적 회전 관성이 아니다. `U_phys`와 `U_drill`을 구별하여 에너지 evidence를 계산하고, drill stress/resultant를 만들지 않는다. 재료 내부변수·소성 update는 없다. 재사용 대상 [evaluator](../../src/fesa/elements/nonlinear_mitc4_shell.cpp)의 `PhysicalEnergy`, `DrillingEnergy`, `EvaluateInternalResidualAndTangent`도 이 구분에 대조한다. 현재 공개 equilibrium/recovery 결과는 `physical_strain_energy`만 노출하므로 drill energy evidence의 전달은 후속 구현 작업이며 현 API가 이를 이미 제공한다고 보지 않는다.
|
||||
Drilling stiffness는 물리적 회전 관성이 아니다. `U_phys`와 `U_drill`을 구별하여 에너지 evidence를 계산하고, drill stress/resultant를 만들지 않는다. 재료 내부변수·소성 update는 없다. 재사용 대상 [evaluator](../../src/fesa/elements/nonlinear_mitc4_shell.cpp)의 `PhysicalEnergy`, `DrillingEnergy`, `EvaluateInternalResidualAndTangent`도 이 구분에 대조한다. 최초 정식화 당시 공개 equilibrium/recovery 결과는 `physical_strain_energy`만 노출했다. 현재 dynamic frame은 `drilling_energy`를 별도로 보존하며 공개 결과 계약은 [기능 요약](README.md)을 따른다.
|
||||
|
||||
## 3. 질량·관성·연속 평형
|
||||
|
||||
@@ -119,7 +123,7 @@ T_L=\frac12\sum_i\left(m_i|v_{ui}|^2+2s_i v_{ui}\cdot B_iv_{\phi i}
|
||||
\beta=\frac14(1-\alpha)^2.
|
||||
\]
|
||||
|
||||
기본값은 `alpha=−0.05`, `beta=0.275625`, `gamma=0.55`다. [공개 기본값 근거](README.md)와 [Sandia의 결합계수](https://www.sandia.gov/files/sierra/SM_Users_5_20/main/implicit/integration.html)를 따른다. `alpha=0`은 평균가속도 Newmark다. 이 범위는 일반 유한회전 문제의 무조건 안정성이나 큰 시간간격의 정확도를 보증하지 않는다. 별도 `beta/gamma` 입력을 승인한 의미도 아니다.
|
||||
기본값은 `alpha=−0.05`, `beta=0.275625`, `gamma=0.55`다. `공개 기본값 근거`와 [Sandia의 결합계수](https://www.sandia.gov/files/sierra/SM_Users_5_20/main/implicit/integration.html)를 따른다. `alpha=0`은 평균가속도 Newmark다. 이 범위는 일반 유한회전 문제의 무조건 안정성이나 큰 시간간격의 정확도를 보증하지 않는다. 별도 `beta/gamma` 입력을 승인한 의미도 아니다.
|
||||
|
||||
**FESA 초기화 후보 계약:** frame 0은 `t=0+`, `q_0=v_0=0`, 전값 `F_0=F*`다. `M_ff(q_0)a_f0=F_f0−f_int,f(q_0)`와 [mass-null 일관성](formulation-inertia.md#4-mass-null과-초기-일관성)을 함께 풀어 `a_0`를 구한다. `A_0=a_0`, `g_0=f_int(q_0)−F_0`를 정의한다. `g_0=0` 또는 `a_0=0`을 임의 대입하지 않는다. 이는 공개 STEP 의미에 맞춘 FESA 계약 제안이며 Abaqus의 숨은 첫 history 생성 절차를 확인한 주장이 아니다.
|
||||
|
||||
@@ -198,7 +202,7 @@ W_{0\to n}=F^{\star T}(q_n-q_0),\quad
|
||||
6. `time,increment,q,v,a,A,orientation,forces,recovery,evidence`가 한 identity를 이루는 candidate만 원자적으로 commit한다. 모든 101 accepted frames를 보존한다. Newton iteration은 time frame이 아니다.
|
||||
7. 비수렴·invalid chart/geometry·nonfinite·선형 solve·회복·출력 실패는 trial을 폐기하고 마지막 committed 상태/history와 기존 최종 HDF5를 보존한다. 고정 `DIRECT`를 cutback/adaptive로 바꾸거나 실패 frame을 성공으로 내보내지 않는다.
|
||||
|
||||
공식 출력은 lexical sibling `<stem>_results.h5`다. `U/UR`, 물리적 `v/a`, `omega/omega_dot`, algorithmic `A`, 반력과 에너지의 **공개 여부 및 영속 schema는 미결정**이다. Algorithmic `A`를 physical acceleration이라는 이름으로 공개해서는 안 된다. 출력 선택과 무관하게 검증에는 서로 구별되는 내부 quantity가 필요하다.
|
||||
공식 출력은 lexical sibling `<stem>_results.h5`다. `U/UR`, 물리적 `v/a`, `omega/omega_dot`, algorithmic `A`, 반력과 에너지의 공개 여부 및 영속 schema는 최초 정식화 당시 미결정이었다. 현재 공개 계약은 [기능 요약](README.md)의 shell schema v2를 따른다. Algorithmic `A`를 physical acceleration이라는 이름으로 공개해서는 안 된다. 출력 선택과 무관하게 검증에는 서로 구별되는 내부 quantity가 필요하다.
|
||||
|
||||
## 7. 검증 인계와 미해결 결정
|
||||
|
||||
@@ -212,6 +216,6 @@ W_{0\to n}=F^{\star T}(q_n-q_0),\quad
|
||||
| 구현 lifecycle | 동일 state tangent, 실패 rollback, time/frame 순서, deterministic assembly와 반복 결과 |
|
||||
| 외부 reference | 지정 원본 101 frames × 9 nodes, frame/instance/node/component의 exact mapping; U blocking / UR warning-only 및 공통 TOLERANCE. V/A/energy correctness는 해당 CSV에 coverage 없음 |
|
||||
|
||||
수식 후보의 [독립 검토](README.md)는 완료되었으며 표시된 수식에서 새 오류는 발견되지 않았다. 현재 질량 선택은 HHT-ADR-012의 nodal lumped로 대체되었다. 이후 구현 전 상태를 설명하는 이 문단은 최초 정식화 당시의 기록이며 변경본 검증의 통과를 뜻하지 않는다. 구현 전 남은 계약은 (1) HHT 확장·초기화의 FESA 채택과 나머지 physics 범위, (2) initial algebraic regularity와 trial 실패 판정의 수치 기준, (3) 공식 output 의미의 공개 범위/I/O다. 이 선택 후 구현할 수 있는 수식 후보이며, 실제 유한회전 shell의 drilling DAE·관성 tangent·q/v/a 시간 수렴은 **구현 후 기능 acceptance에 필요한 검증**이다. 부모 문헌의 nonsingular-mass 조건을 shell mass-null에 자동 적용하지 않되, 모든 shell DAE의 보편적 수렴 증명을 코드 작성의 선행 조건으로 요구하지 않는다. 현재 문서 완료나 제한된 probe를 전체 solver 승인·검증 통과로 표시하지 않는다.
|
||||
수식 후보의 `독립 검토`는 완료되었으며 표시된 수식에서 새 오류는 발견되지 않았다. 현재 질량 선택은 HHT-ADR-012의 nodal lumped로 대체되었다. 이후 구현 전 상태를 설명하는 이 문단은 최초 정식화 당시의 기록이며 변경본 검증의 통과를 뜻하지 않는다. 구현 전 남은 계약은 (1) HHT 확장·초기화의 FESA 채택과 나머지 physics 범위, (2) initial algebraic regularity와 trial 실패 판정의 수치 기준, (3) 공식 output 의미의 공개 범위/I/O다. 이 선택 후 구현할 수 있는 수식 후보이며, 실제 유한회전 shell의 drilling DAE·관성 tangent·q/v/a 시간 수렴은 **구현 후 기능 acceptance에 필요한 검증**이다. 부모 문헌의 nonsingular-mass 조건을 shell mass-null에 자동 적용하지 않되, 모든 shell DAE의 보편적 수렴 증명을 코드 작성의 선행 조건으로 요구하지 않는다. 현재 문서 완료나 제한된 probe를 전체 solver 승인·검증 통과로 표시하지 않는다.
|
||||
|
||||
이번 owner 작업은 기존 정식화·source 대조, 일차 문헌 대조와 수식 유도 및 문서 정적 검토다. [독립 시간정확도 검산](README.md)은 variable-mass SDOF와 moving-null 예제에서 추천 후보의 약 2차 q/v/physical-a 수렴을 관찰했고 naive 확대의 약 1차 오차를 구별했다. 이는 shell solver 검증이나 일반 drilling DAE 증명을 대신하지 않는다. Build/test·solver/reference 실행은 문서 작업 범위가 아니므로 미실행이다. 독립 검산과 Numerical Review 결과는 해당 owner의 보고서가 소유하며 본 문서가 스스로 승인하지 않는다.
|
||||
이번 owner 작업은 기존 정식화·source 대조, 일차 문헌 대조와 수식 유도 및 문서 정적 검토다. `독립 시간정확도 검산`은 variable-mass SDOF와 moving-null 예제에서 추천 후보의 약 2차 q/v/physical-a 수렴을 관찰했고 naive 확대의 약 1차 오차를 구별했다. 이는 shell solver 검증이나 일반 drilling DAE 증명을 대신하지 않는다. Build/test·solver/reference 실행은 문서 작업 범위가 아니므로 미실행이다. 독립 검산과 Numerical Review 결과는 해당 owner의 보고서가 소유하며 본 문서가 스스로 승인하지 않는다.
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# 3D Isoparametric Euler–Bernoulli Beam Formulation
|
||||
|
||||
> 현재 구현·검증은 [기능 요약](README.md)을 먼저 따른다. 아래 준비 상태·owner 인계와
|
||||
> 옛 source 문서명은 작성 당시 이력이며, 원문은 Git 이력에서 확인한다.
|
||||
|
||||
## Metadata
|
||||
|
||||
- feature_id: `3d-isoparametric-euler-beam`
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# FESA Linear Static MITC4 Shell Formulation
|
||||
|
||||
> 현재 구현·검증은 [기능 요약](README.md)을 먼저 따른다. 아래 준비 상태·owner 인계와
|
||||
> 옛 source 문서명은 작성 당시 이력이며, 원문은 Git 이력에서 확인한다.
|
||||
>
|
||||
> 적용 경계: 물리 정식화와 당시 수치 stabilization 유도를 구분한다. 현재 공변 trace-average
|
||||
> scale·frozen lifecycle은 [고유치 질량·stabilization](../mitc4-shell-feast-eigen2/formulation-mass-stabilization.md)을
|
||||
> 함께 따른다. 이전 minimum-diagonal 식을 현재 기준으로 재도입하지 않으며 S3 partial-BC 보류를 유지한다.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# MITC4 질량·축소·stabilization 유도 근거
|
||||
|
||||
이 폴더는 이전 MFE baseline의 유도·반례 근거다. 현재 구현 계약은 [eigen2](../mitc4-shell-feast-eigen2/README.md)이며 채택·비채택 범위는 그 정식화에서 명시한다. 아래 과거 controls·reference portfolio·pass를 자동 승계하지 않는다.
|
||||
이 폴더는 이전 MFE baseline의 유도·반례 근거다. 현재 구현 계약은 [eigen2](../mitc4-shell-feast-eigen2/README.md)이며 채택·비채택 범위는 그 정식화에서 명시한다. 아래 과거 controls·reference portfolio·pass를 자동 승계하지 않는다. 아래 준비 상태·owner 인계와 옛 source 문서명도 작성 당시 이력이며 원문은 Git 이력에서 확인한다.
|
||||
|
||||
<a id="formulation"></a>
|
||||
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# 구속된 lumped pencil, FEAST와 modal 복구
|
||||
|
||||
> 현재 구현·검증은 [기능 요약](README.md)을 먼저 따른다. 아래 준비 상태·owner 인계와
|
||||
> 옛 source 문서명은 작성 당시 이력이며, 원문은 Git 이력에서 확인한다.
|
||||
|
||||
Feature `mitc4-shell-feast-eigen2`, formulation r1. [기본 보고서](formulation.md)와
|
||||
[질량·stabilization](formulation-mass-stabilization.md)의 기호를 사용한다.
|
||||
Intel evidence는 [research R04/G01/G02](README.md)에 따른다.
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# 질량과 공변 numerical stabilization
|
||||
|
||||
> 현재 구현·검증은 [기능 요약](README.md)을 먼저 따른다. 아래 준비 상태·owner 인계와
|
||||
> 옛 source 문서명은 작성 당시 이력이며, 원문은 Git 이력에서 확인한다.
|
||||
|
||||
Feature `mitc4-shell-feast-eigen2`, formulation r1. [기본 보고서](formulation.md)의 적용·채택 경계를 따른다.
|
||||
|
||||
## M1. 운동학과 physical stiffness
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# MITC4 질량·공변 stabilization·FEAST 정식화
|
||||
|
||||
> 현재 구현·검증은 [기능 요약](README.md)을 먼저 따른다. 아래 준비 상태·owner 인계와
|
||||
> 옛 source 문서명은 작성 당시 이력이며, 원문은 Git 이력에서 확인한다.
|
||||
|
||||
- Feature: `mitc4-shell-feast-eigen2`; Owner: `formulation-agent`; 정식화 revision: `r1`.
|
||||
- 입력: [requirements r1](README.md), [근거](README.md), [Feature ADR](README.md).
|
||||
- 기준: [프로젝트 지침](../../AGENTS.md), [PRD](../solver-core/README.md), [ADR-028](../solver-core/README.md), [ARCHITECTURE](../solver-core/README.md).
|
||||
|
||||
@@ -81,5 +81,6 @@ local trial은 [ShellTrialElement](../../include/fesa/elements/element_capabilit
|
||||
Kernel은 immutable·stable-address borrowed object이고 accepted candidate는 procedure 소유다.
|
||||
Full Newton의 typed pending·iteration 순서는 [모듈화 요약](../cpp-object-oriented-modular-refactoring/README.md)을 따른다.
|
||||
정식 `reference/shellNL-meshfine/`와 `reference/shellNL-meshfine_02/` 자료가 없어 해당 비교는 미완료다.
|
||||
2026-10-18 사용자 지시에 따라 `reference/temp`로 대체하지 않는다. 정식 자료가 확보되어야
|
||||
hash·source identity·comparator 지원을 확인하고 실제 비교를 재개할 수 있다.
|
||||
2026-10-18 사용자 지시에 따라 `reference/temp`로 대체하지 않는다. Fine 사례는 정식 자료 확보 후
|
||||
hash·source identity를 확인해야 비교를 재개할 수 있다. `_02`는 별도로 comparator의 case identity와
|
||||
전용 비교 계약도 구현되어 있지 않으므로 자료 확보만으로 비교를 재개할 수 없다.
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# Nonlinear Static Newton–Raphson 정식화
|
||||
|
||||
> 현재 구현·검증은 [기능 요약](README.md)을 먼저 따른다. 아래 준비 상태·owner 인계와
|
||||
> 옛 source 문서명은 작성 당시 이력이며, 원문은 Git 이력에서 확인한다.
|
||||
>
|
||||
> 적용 경계: 물리 정식화와 당시 수치 stabilization 유도를 구분한다. 현재 공변 trace-average
|
||||
> scale·frozen lifecycle은 [고유치 질량·stabilization](../mitc4-shell-feast-eigen2/formulation-mass-stabilization.md)을
|
||||
> 함께 따른다. 이전 minimum-diagonal 식을 현재 기준으로 재도입하지 않으며 S3 partial-BC 보류를 유지한다.
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# Shell Surface Pressure Load Formulation
|
||||
|
||||
> 현재 구현·검증은 [기능 요약](README.md)을 먼저 따른다. 아래 준비 상태·owner 인계와
|
||||
> 옛 source 문서명은 작성 당시 이력이며, 원문은 Git 이력에서 확인한다.
|
||||
|
||||
## 1. Metadata
|
||||
|
||||
- feature_id: `shell-surface-pressure-load`
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# Shell 과도 열전달 정식화
|
||||
|
||||
> 현재 구현·검증은 [기능 요약](README.md)을 먼저 따른다. 아래 준비 상태·owner 인계와
|
||||
> 옛 source 문서명은 작성 당시 이력이며, 원문은 Git 이력에서 확인한다.
|
||||
|
||||
- 상태: **2026-09-29 승인된 물리·방법을 반영한 구현용 정식화**.
|
||||
독립 검토의 판정과 검증 기준은 [numerical-review](README.md)를 따른다.
|
||||
- 담당 범위: `FEM-REQ-SHELL-THERMAL-001`–`018`의 수식·물리 의미와 검증 함의.
|
||||
@@ -623,7 +626,8 @@ strip은 두께 경계층을 포함한 독립 해 또는 동등한 조건의 ora
|
||||
Slab 해석해에 대한 두께 오차와 초기 `sqrt(αt)` 열침투 깊이를 확인해야 한다. 더 미세한
|
||||
두께 모델은 독립 검증용 oracle이며 제품 입력의 온도점 수 확대를 뜻하지 않는다.
|
||||
Reference CSV 한 시점은 다른 4개 온도점, flux, reaction 또는 전체 이력의 evidence가 아니다.
|
||||
Consistent C와 본 적분·초기화 선택이 reference 정확도에 미치는 영향은 아직 측정되지 않았다.
|
||||
정식화 작성 당시에는 consistent C와 본 적분·초기화 선택이 reference 정확도에 미치는 영향을 측정하지 않았다.
|
||||
이후 확인한 87/729행 diagnostic FAIL과 새 필수 reference 미확보 상태는 [기능 요약](README.md)을 따른다.
|
||||
|
||||
Residual backward error는 `||r_f||/(||A_ff|| ||T_f||+||b_f||)`로, physical balance
|
||||
defect는 `|ΔE−δ(1ᵀQ+1_cᵀR_c)|`를 저장·입력·반력 항 절댓값 합으로 정규화한다.
|
||||
|
||||
@@ -86,17 +86,14 @@ Debug/Release의 binary·DLL·검사 목록·실행 근거를 섞지 않는다.
|
||||
source에만 적용하며 CRT·정밀도·source·link·runtime DLL과 검사 identity를 두 경로에서 대조한다.
|
||||
`fesa_docs`는 Doxygen을 찾았을 때만 생기는 선택적 target이다.
|
||||
|
||||
이번 통합 검증은 2026-10-18 사용자 변경에 따라 정적해석·공통 계약 검사로 한정한다.
|
||||
전체 등록 identity를 대조하되 실제 선택/제외 목록과 이유를 기록하고, 새로 이관한 정적 검사도
|
||||
포함한다. 위 명령은 일반 전체 실행 예시이며 이번에는 명시적 정적 선택 목록을 사용한다.
|
||||
정식 정적5모델(beam·linear/nonlinear shell·linear/nonlinear Hex8)을 새 기준 실행물과
|
||||
Native/CMake에서 비교한다. Python 정책·합성 비교기는 실제 비정적 solver를 실행하는지
|
||||
확인해 별도로 검사한다. HHT·solid dynamic·eigen/frequency·transient thermal 실행은 제외하고
|
||||
미검증으로 남긴다. 과거 정적 PASS도 현재 실행으로 승계하지 않는다. Native/CTest는
|
||||
서로 다른 실행 전용 TMP/TEMP와 raw 출력 경로를 사용해 직렬 실행한다. 상속된 필터·sharding을
|
||||
제거하고 실제 identity·수·exit·XML/log를 discovery와 대조한다. Skip·0건·자료 누락은 PASS가 아니다.
|
||||
모델은 hash가 확인된 새 작업 복사본에서만 실행한다. `reference/temp`는 검증에 사용하지 않는다.
|
||||
현재 진행 결과와 미완료 비교는 [병합 현황](../cpp-object-oriented-modular-refactoring/README.md)에 기록한다.
|
||||
위 명령은 일반 전체 실행 예시다. 실행 범위를 한정할 때는 선택/제외 identity와 이유를 기록한다.
|
||||
2026-10-18 병합은 사용자 지시로 정적·공통 검사와 정식 정적5모델만 검증했다.
|
||||
그 결과와 비정적 미검증 범위는 [병합 현황](../cpp-object-oriented-modular-refactoring/README.md#병합-결과와-검증-범위)에 있으며 이후 기능 검증의 기본 범위를 제한하지 않는다.
|
||||
|
||||
Native/CTest는 짧고 고유한 TMP/TEMP와 raw 출력 경로를 분리해 직렬 실행한다. 긴 lease 경로는
|
||||
output failure를 일으킬 수 있다. 상속된 필터·sharding을 제거하고 실제 identity·수·exit·XML/log를
|
||||
discovery와 대조한다. Python 합성 비교와 실제 solver 실행을 구분한다. Skip·0건·자료 누락은
|
||||
PASS가 아니다. 모델은 hash가 확인된 새 작업 복사본에서만 실행한다. `reference/temp`는 검증에 사용하지 않는다.
|
||||
|
||||
## 공통 procedure와 결과 경계
|
||||
|
||||
|
||||
Reference in New Issue
Block a user