docs: record field-policy validation failures and adoption limits
This commit is contained in:
+1
-1
@@ -38,5 +38,5 @@ Formulation의 수식·가정은 원문으로 보존한다. 문서 안의 ready/
|
||||
- [Hex8 구조해석](hex8-structural-analysis/README.md)
|
||||
- [Shell 열전달](shell-transient-heat-transfer/README.md)
|
||||
- [계산 성능](calculation-performance/README.md)
|
||||
- [Abaqus 수렴 허용치 조사와 FESA 적용 계획](abaqus-tolerance/README.md)
|
||||
- [Abaqus 수렴 허용치 조사와 FESA 적용 실험](abaqus-tolerance/README.md)
|
||||
- [C++ 모듈화·Refactor 병합 현황과 이관 근거](cpp-object-oriented-modular-refactoring/README.md)
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
# Abaqus 수렴 허용치 조사와 FESA 대응
|
||||
|
||||
조사일: 2026-10-18. FESA 조사 기준: `43867d0`.
|
||||
상태: 문헌·코드 조사와 승인된 후보 정책의 수식 계약이다. 구현·성능 실험 통과 보고가 아니다.
|
||||
2026-10-19 실험 branch에서 공개 field 규칙을 MITC4 HHT의 실제 종료에 연결했다.
|
||||
Native/CTest 전체는 각각987 PASS·10 FAIL·1 SKIP이며, 공식 후보 성능 비교는 미성립이다.
|
||||
구현·물리 검증·측정의 상세 근거와 한계는 [실험 결과](results.md)에 기록했다.
|
||||
|
||||
승인된 후보의 시험 가능한 수식·분기 우선순위·평균 이력·로그 계약은
|
||||
[외부 field 수렴 정식화](formulation-convergence.md)를 따른다. 아래는 조사 당시 코드와
|
||||
공개 기본값의 비교이며, 후보 구현 완료를 뜻하지 않는다. 정식화는 2025 공개 STRICT
|
||||
공개 기본값의 비교다. 현재 후보는 이 정식화를 실제 사용한다. 정식화는 2025 공개 STRICT
|
||||
규칙과 비공개 부분의 명시적 FESA 대응을 구분하며 실제 2024 설정과의 동일성을 주장하지 않는다.
|
||||
|
||||
## 조사 결론
|
||||
|
||||
Abaqus/Standard의 일반 비선형 평형 기준은 잔차 비율 **0.005**, 해 보정 비율
|
||||
**0.01**이다. 병진과 회전을 각각 검사한다. FESA의 현재 MITC4 HHT는 힘·모멘트
|
||||
잔차와 q/v/a/A 보정량에 **1e-10**을 사용한다. 완화 실험을 검토할 근거는 있으나,
|
||||
**0.01**이다. 병진과 회전을 각각 검사한다. 조사 당시 `43867d0`의 MITC4 HHT는 힘·모멘트
|
||||
잔차와 q/v/a/A 보정량에 **1e-10**을 사용했다. 완화 실험을 검토할 근거는 있으나,
|
||||
양쪽의 정규화와 검사 대상이 달라 숫자의 비로 정확도나 실행시간을 예측할 수 없다.
|
||||
일반 기준값의 근거는 [Abaqus 공식 해석 지침의 제어값 설명][S1]이다.
|
||||
|
||||
@@ -146,9 +148,9 @@ Abaqus에는 수렴 실패 상태도 받아들이는 `DIRECT=NO STOP`이 있지
|
||||
Explicit 안정시간 기준을 모두 열거한 문서는 아니다. 공개 문헌에서 확인하지 않은
|
||||
Abaqus 내부 직접분해·pivot·rank 판정 숫자는 추측하지 않았다.
|
||||
|
||||
## 6. 현재 FESA 기준과 소유 위치
|
||||
## 6. 조사 시점 FESA 기준과 소유 위치
|
||||
|
||||
| 대상 | 현재 판정 | 근거/실험 시 취급 |
|
||||
| 대상 | 조사 시점 판정 | 근거/실험 시 취급 |
|
||||
| --- | --- | --- |
|
||||
| MITC4 비선형 정적 | 잔차·보정 상대 1e-2; 외력 또는 증분 scale=0에서 typed absolute 1e-3 | [공개 기준](../../include/fesa/analysis/nonlinear_static_control.h), [실제 분기](../../src/fesa/analysis/nonlinear_static_control.cpp); 동해석과 별도 |
|
||||
| Shell HHT 외부 Newton 잔차 | 병진/회전 별 `max|r|/max(scale) <=1e-10` | [조립과 scale](../../src/fesa/analysis/hht_dynamic_assembly.cpp), [ResidualRecord](../../src/fesa/analysis/hht_reduced_procedure.cpp) |
|
||||
@@ -162,20 +164,26 @@ Abaqus 내부 직접분해·pivot·rank 판정 숫자는 추측하지 않았다.
|
||||
| hidden 위치/rate·rank·null | 별도 1e-10/1e-12 등의 물리·대수 검사 | [algebra](../../src/fesa/analysis/hht_dynamic_algebra.cpp), [기능 요약](../hht-implicit-dynamics/README.md); 일괄 완화 제외 |
|
||||
| 선형 정적·고유치·열 | 각 기능별 독립 기준 | 이번 MITC4 동해석 실험의 자동 변경 대상 아님 |
|
||||
|
||||
HHT의 scale은 외력과 요소별 physical/drilling force, convective inertia 및 질량×가속도
|
||||
항들의 **상쇄 전 크기**를 누적한다. Abaqus의 q̃와 동일하지 않다. 현재 보정 기준도
|
||||
조사 당시 HHT의 scale은 외력과 요소별 physical/drilling force, convective inertia 및 질량×가속도
|
||||
항들의 **상쇄 전 크기**를 누적한다. Abaqus의 q̃와 동일하지 않다. 당시 보정 기준도
|
||||
`δq/Δq`가 아니라 특성길이·시간간격에 기반하므로 `1e-10 → 0.01`은 단순 완화 이상의
|
||||
의미 변경이다. 정적은 이미 상대 1e-2이므로 Abaqus의 Rn=5e-3 채택이 숫자상 더 엄격할
|
||||
수도 있다. “FESA 전체가 Abaqus보다 엄격하다”로 일반화할 수 없다.
|
||||
|
||||
현재 실험 후보는 이 표의 외부 종료를 field 평균·증분 대비 보정으로 교체했고 기존 strict
|
||||
잔차·q/v/a/A 크기는 진단으로 보존했다. 내부 산술·frame0·전역 평형은 별도로 유지한다.
|
||||
|
||||
## 7. 성능 가설과 적용 전 확인
|
||||
|
||||
확인된 사실은 엄격한 HHT 종료 기준과, 외부 Newton 외에도 비용이 큰 내부 root·
|
||||
요소 도함수·조립 경로가 존재한다는 점이다. 허용치가 실제 장시간 실행의 주원인인지는
|
||||
현재 측정하지 않았다. [기존 성능 기록](../calculation-performance/README.md)의
|
||||
조사 당시에는 측정하지 않았다. 이후 같은 local 근사본의 strict 공식 실행은
|
||||
6350.7895521초/native0을 확보했지만, 물리 실패가 남아 공식 후보100증분은 미실행이다.
|
||||
첫 증분의 호출 수 감소만으로 전체 병목이나 가속을 확정하지 않는다.
|
||||
[기존 성능 기록](../calculation-performance/README.md)의
|
||||
6372.325621초는 과거 source의 단일 baseline으로 최신 revision의 측정값이 아니다.
|
||||
|
||||
다음 실험에서 외부/내부 반복 수, 요소 평가 수, factor/solve 수, 단계별 시간과
|
||||
추가 실험에서 전체 증분의 외부/내부 반복 수, 요소 평가 수, factor/solve 수, 단계별 시간과
|
||||
종료를 지연시킨 채널을 함께 측정해야 한다. 내부 구속 solve가 대부분의 시간을 쓰면
|
||||
외부 Newton 기준만 바꿔도 효과가 작을 수 있다. 기준을 넓혀 성공한 것과 해의 정확도가
|
||||
유지된 것을 구분하고, U 비교와 별도로 V/physical a·구속·시간수렴을 확인해야 한다.
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
# MITC4 HHT에 Abaqus 수렴 규칙을 적용하는 실행 계획
|
||||
|
||||
작성일: 2026-10-18. 조사 기준 source: 43867d0.
|
||||
상태: 실제 구현·측정·검증을 위한 개정안. 이번 ready에서는 계획 문서만 수정한다.
|
||||
수정안 승인 후 go는 **실제 코드 수정·빌드·FESA 실행·성능 측정·정확도 검증**을 수행한다.
|
||||
이 계획의 Abaqus 외부 Newton 규칙 구현·측정은 아직 실행하지 않았다.
|
||||
2026-10-19 승인된 실행 결과: 외부 field 규칙을 실제 HHT 종료에 연결하고 strict 기준 실행,
|
||||
1증분 후보 진단, 두 Debug 경로 전체 검사와 별도 비교를 수행했다.
|
||||
Native/CTest는 각각987 PASS·10 FAIL·1 SKIP이다. 물리 실패 분기에 따라 공식 후보100증분은
|
||||
미실행이며 전체 가속·정식 채택은 미확정이다. 상세 실행 증거는 [실험 결과](results.md)에 있다.
|
||||
아래는 재현할 실행 순서와 유지 조건이며, 미충족 검증을 완료로 바꾸지 않는다.
|
||||
|
||||
2026-10-18 후속 사용자 지시로 별도 [요소 local 근사 실험](local-kernel-experiment.md)을
|
||||
먼저 적용했다. 아래 요소 수식·질량 보존 조건의 명시적 예외는 polar 1회, 회전/Jacobian
|
||||
@@ -23,7 +25,7 @@ MITC4 implicit dynamics의 외부 Newton 종료에 **Abaqus/Standard 2025의 공
|
||||
T1의 [외부 field 수렴 정식화](formulation-convergence.md)가 T3/T4의 수치·분기·로그 계약이다.
|
||||
요소 signed total과 source occurrence 개수, current trial 평균 후보와 accepted commit,
|
||||
보정/증분 chart, 비이차 검출의 명시적 FESA 대응 및 독립 oracle 경계를 이 문서에 고정했다.
|
||||
이는 수식 계약 완료이며 실제 후보 구현이나 정확도 검증 완료를 뜻하지 않는다.
|
||||
이 수식 계약은 실제 후보에 연결했다. 후보의 비선형 시간 정확도와 전체 물리 검증은 미완료다.
|
||||
|
||||
공개 규칙을 FESA의 기존 물리량에 대응하는 실험이다. 잔차는 기존 full free endpoint
|
||||
E=I+fint-F, field는 병진 u와 total rotation-vector φ, 회전 flux는 generalized moment다.
|
||||
@@ -110,8 +112,10 @@ Probe를 추가하더라도 공식 실행에서는 꺼져야 하며 수학 계
|
||||
|
||||
## 정확도·전체 회귀·실패의 처리
|
||||
|
||||
q/v/physical a의 마지막 두 refinement 감소·차수≥1.8, finest normalized error≤1e-4,
|
||||
기존 N7 해상도 판정을 유지한다. C08b 미판정이나 일반 비선형 HHT의 energy 의미를
|
||||
q/v/physical a의 마지막 두 refinement 감소·차수≥1.8과 기존 N7 해상도 판정을 유지한다.
|
||||
후속 승인에 따른 관련 테스트 오차는1e-3이다. 기존 strict algebra의 finest1e-4 검사도
|
||||
그대로 통과했으나 이를 실제 비선형 후보의 정확도 증거로 대신하지 않는다.
|
||||
C08b 미판정이나 일반 비선형 HHT의 energy 의미를
|
||||
결과에 맞춰 다시 정의하지 않는다. 기존 물리 기준을 통과하지 못하면 수치 부적합으로 보고한다.
|
||||
|
||||
관련 검사 후 전체 MSVC x64 Debug build와 unit/integration/reference 세 executable,
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
# 외부 수렴 정책 실험 결과 — T2 기준과 T6 후보 보존
|
||||
# MITC4 HHT 외부 field 수렴 정책 실험 결과
|
||||
|
||||
기록일: 2026-10-19. **정상 strict 기준은 확보했으나 전체 실험·물리 검증은 미완료**다.
|
||||
T6 후보는 별도 1증분 개발 진단과 계측 OFF Release 실행물 보존까지 수행했다.
|
||||
공식 100증분 후보 실행·reference 비교·성능 비교는 미성립이며 가속률이나 채택 가능성을 주장하지 않는다.
|
||||
기록일: 2026-10-19. **실제 종료 정책은 구현했으나 수치 부적합과 검증 공백이 남아 있다.**
|
||||
MITC4 HHT 양의 증분은 `abaqus2025-field-on-fesa-v1`로 판정하며 `hht-log-v2`를 기록한다.
|
||||
Native Debug와 CMake Debug/CTest 전체는 각각 998개 중 **987 PASS·10 FAIL·1 SKIP**이다.
|
||||
Python 145개와 별도 정식 Hex8 5모델 비교는 통과했다. 공식 MITC4 후보 100증분 실행·
|
||||
reference 비교·성능 비교는 미성립이며 전체 검증 완료·가속 확인·정식 채택으로 보고하지 않는다.
|
||||
|
||||
## 기준과 원시 증거
|
||||
|
||||
@@ -223,7 +225,8 @@ inertia=internal−failure, solve=RHS와 exclusive ns 합=procedure inclusive를
|
||||
|
||||
같은 짧은 입력의 strict ON과 후보 ON HDF5 frame0/1의 40개 numeric dataset을
|
||||
shape/type/finite 및 inventory 확인 후 비교했다. 22개는 정확 byte 일치하고
|
||||
frame1의18개는 달라 **정확 byte parity는 미통과**다. nodal q/v/physical a/A의
|
||||
frame1의18개는 달랐다. 후보와 strict의 동일 bytes를 요구하는 합격 검사는 아니며,
|
||||
정책 변경에 따른 전체 state 차이 진단이다. nodal q/v/physical a/A의
|
||||
최대 절대차는 각각 `2.0328790734103208e-20`, `3.552713678800501e-15`,
|
||||
`5.684341886080802e-14`, `5.684341886080802e-14`이며 energy는
|
||||
`8.171241461241152e-14`다. Angular velocity/acceleration·triad·director와
|
||||
@@ -257,3 +260,110 @@ Field21개와 T4 후보 종료/물리 후속 gate 및 T5 강체 oracle identity
|
||||
T6은 공식 장시간 성능과 reference 통과를 확정하지 못한 **DONE_WITH_CONCERNS**다.
|
||||
수치 부적합 해결·기준 완화는 수행하지 않았다. T7의 전체 Native Debug·CMake CTest·
|
||||
별도 Python·필수 reference 검증은 후속 범위이며 이 한정 진단이 대체하지 않는다.
|
||||
|
||||
## 실제 구현과 유지한 경계
|
||||
|
||||
수치 계약은 [field 정식화](formulation-convergence.md), 실제 물리 검증은
|
||||
[물리 검증 기록](physics-validation.md)에 보존했다. Private field 계산의 독립 경계 검사
|
||||
21개, 실제 종료·rollback·로그 연결 검사 11개와 강체 병진의 독립 물리 oracle 1개를 추가했다.
|
||||
개발 probe 검사 4개는 별도 ON 구성에서 검증했으며 기본 OFF의 998개 등록에는 포함하지 않는다.
|
||||
|
||||
힘/병진과 generalized moment/total rotation-vector를 분리해 일반·zero-flux·linear·
|
||||
estimated correction·nonquadratic 규칙을 실제 종료에 연결했다. 평균은 요소 signed
|
||||
internal+physical inertia와 외부 source occurrence로 계산하고 accepted 증분에서 한 번 갱신한다.
|
||||
실제 full endpoint 보정/증분을 사용하며 기존 q/v/a/A `1e-10` 크기는 strict 진단으로 남겼다.
|
||||
`PrivateCorrectionEqual`, frame0, inner/hidden/rank, 선형·update `1e-12`, 전역 평형 `1e-8`,
|
||||
기존 HDF5 schema2와 최종 파일 보호는 유지했다. 수렴 뒤 후속 검사 실패를 자동 완화하지 않는다.
|
||||
|
||||
출력 성공 전 accepted state를 복사해 commit을 검증하고 로그 flush 뒤 state·private history·
|
||||
flux history를 함께 공개한다. 누적 frame 이력 복사 비용이 있으며 공식 후보 시간 측정 시
|
||||
포함해야 한다. 이번에는 그 전체 비용을 측정하지 않았다.
|
||||
2025 공개 규칙의 FESA 대응이며 비공개 Abaqus 요소·관성·회전·특성길이까지 같다는 뜻은 아니다.
|
||||
2024 모델 생성 당시 실제 solver 설정도 미확인이다.
|
||||
|
||||
## 구성된 전체 회귀 실행
|
||||
|
||||
실행 revision은 `710ab39059ab73518e63968067683791a5c8b558`, 실행 증거 commit은
|
||||
`818046c3975684d37ddd6bcb827099bd27652acf`다. 후자는 tracked 파일 변경 없는 실행 기록이다.
|
||||
제품 source는 실제 종료 연결 revision `dd54b0a` 이후 바뀌지 않았다.
|
||||
원시 자료의 기준 경로는 `.build/tolerance-experiment/go-20261018/T7/`다.
|
||||
|
||||
| 실행 | 실제 수 | PASS | FAIL | SKIP | native exit |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: |
|
||||
| MSVC x64 Debug unit | 883 | 872 | 10 | 1 | 1 |
|
||||
| MSVC x64 Debug integration | 72 | 72 | 0 | 0 | 0 |
|
||||
| MSVC x64 Debug reference | 43 | 43 | 0 | 0 | 0 |
|
||||
| CMake Debug 전체 CTest | 998 | 987 | 10 | 1 | 8 |
|
||||
| 별도 Python suite | 145 | 145 | 0 | 0 | 0 |
|
||||
|
||||
Native 전체도 합계 998개, 987 PASS·10 FAIL·1 SKIP이다. Native build와 CMake
|
||||
configure/build/discovery는 각각 exit0이다. 실제 실행 identity 998개씩을 discovery와
|
||||
대조했고 누락·중복은 없었다. 실패 10개와 N7 skip의 identity도 두 경로에서 같다.
|
||||
Timeout·abort·필터 제외는 없었다. 제품·검사 compile source 223개와 실행 파일 옆 DLL 7개의
|
||||
SHA가 양쪽에서 일치했다. C++17·Debug CRT와 전용 Hex8 source만 AVX2인 범위도 확인했다.
|
||||
Native 명시 `/fp:Precise`, CMake 명시 fp 옵션 없음은 실제 설정 관측값으로 남겼다.
|
||||
|
||||
실제 명령은 `commands.json`, Native 세 `fesa_*_tests.xml`, `ctest.xml`, 각
|
||||
`*.raw.txt`/`*.exit.txt`, `registration-and-timeout.json`, `build-configuration-comparison.json`,
|
||||
`toolchain-environment.json`으로 추적한다. Python은 기존 CP311 캐시 패키지를 쓰는
|
||||
`run_cached_python.py -m pytest tests -q`로 실행했으며 `python-suite.raw.txt`에 결과가 있다.
|
||||
패키지를 다운로드하거나 기본 Python의 import 실패를 전체 환경 부재로 처리하지 않았다.
|
||||
|
||||
Native unit 뒤 실행 보조 도구가 TMP 이름을 잘라 만든 충돌로 integration 시작 전에 중단됐다.
|
||||
제품 executable은 시작되지 않았고 고유 TMP 생성만 수정해 남은 단계부터 재개했다.
|
||||
이미 끝난 build/unit을 반복하지 않았으며 `driver-interruption.json`에 원인·해결을 보존했다.
|
||||
검사 중 source 574개와 정식 reference 34개의 전체 inventory·SHA는 전후 동일하다.
|
||||
|
||||
## 실패·건너뜀과 후보 정확도 한계
|
||||
|
||||
| 실제 실패 묶음 | 수 | 관측과 분류 |
|
||||
| --- | ---: | --- |
|
||||
| DynamicRotation D3 독립 미분·80자리 anchor | 2 | 대표 오차 약0.228로 승인된 1e-3 초과 |
|
||||
| ExactDrillingConstraint force gradient/Hessian | 1 | 대표 오차 약0.00329로 1e-3 초과 |
|
||||
| C08a pointwise·시간 controller·C08b | 5 | hidden defect 약0.00123 및 첫 격자에서 100회 보정 소진. 보존 strict도 같은 5개 실패 |
|
||||
| 실제 HHT LargeDirect·UniformTranslation | 2 | 후보 field 통과 뒤 각각 mass-null·유한회전 increment2의 triad 일관성 실패 |
|
||||
|
||||
마지막 두 identity의 strict 대조는 외부 보정 100회 소진이었다. 특히 strict UniformTranslation은
|
||||
첫 병진에서 실패해 후보의 후속 유한회전에 도달하지 않았다. 원인이 같다고 단정하지 않는다.
|
||||
전체 검사명·실패 메시지·build별 실행 identity는 `verification.json`과 XML에 있다.
|
||||
사용자 승인 local polar1/inertia3/mass gate1e-3와 관련 테스트 오차1e-3을 유지했으며,
|
||||
통과시키기 위한 추가 허용치·기대값 변경이나 실패 검사 삭제는 하지 않았다.
|
||||
|
||||
유일한 SKIP은 `HhtTemporalVerification.C04aFinestReductionComparisonIsNumericallyResolved`다.
|
||||
이는 binary64/solve 해상도 때문에 비교가 미판정인 N7 항목이며 PASS가 아니다.
|
||||
독립 강체 병진의 실제 후보 q/v/physical a/A·energy 검사는 통과했지만 상수 가속도 해다.
|
||||
기존 strict algebra의 시간수렴 통과와 함께 실제 비선형 후보의 q/v/physical a refinement,
|
||||
차수≥1.8·finest 오차·N7/물리 invariant closure를 대체하지 않는다. 이 범위는 여전히 미충족이다.
|
||||
|
||||
## 별도 정식 Hex8 비교와 미확보 자료
|
||||
|
||||
같은 최종 제품 source의 보존된 계측 OFF Release로 정식 원본의 hash 확인 새 복사본을 실행했다.
|
||||
아래 5개는 모두 새 HDF5, CLI exit0, 기존 comparator exit0, precheck·실행 검증·blocking PASS다.
|
||||
|
||||
| 모델 | CLI exit | comparator exit |
|
||||
| --- | ---: | ---: |
|
||||
| hexa_linearstatic | 0 | 0 |
|
||||
| hexa_nonlinearstatic | 0 | 0 |
|
||||
| hexa_freq | 0 | 0 |
|
||||
| hexa_dynlinear | 0 | 0 |
|
||||
| hexa_dynnonlinear | 0 | 0 |
|
||||
|
||||
보고서·입력·HDF5 SHA는 `objective-gate.json`과 `hex8-reference/<case>/`에 있다.
|
||||
Release EXE/PDB/7 DLL도 실행 전후 T6 manifest와 일치했다. 이 실행은 정확도 비교이며,
|
||||
개별 elapsed를 공식 성능이나 과거 baseline 대비 speedup으로 해석하지 않는다.
|
||||
기존 NT11 reference 검사는 불일치를 diagnostic으로 남기는 동작의 통과다. 외부 열 수치 일치가 아니다.
|
||||
|
||||
정식 shellNL-meshfine·shellNL-meshfine_02·shellNL-meshfine-pressure 자료는 없다.
|
||||
`_02`는 자료 부재와 전용 case identity/비교 계약 미구현이 함께 남는다. 새 필수 thermal
|
||||
reference도 미제공이다. `reference/temp`는 사용하지 않았다. 후보 MITC4 100증분 결과는
|
||||
앞서 설명한 수치 실패 분기로 미실행이며 strict baseline이나 1증분 결과로 대신하지 않는다.
|
||||
|
||||
## 판정과 다음 검증 조건
|
||||
|
||||
**구현됨·수치 부적합·일부 검증 미완료·공식 성능 비교 미성립**으로 판정한다.
|
||||
Strict 공식 6350.7895521초, 1증분 개발 호출 수 감소, 전체 회귀 실행 사실은 서로 다른 근거다.
|
||||
이를 합쳐 전체 가속이나 정식 채택 가능으로 보고하지 않는다.
|
||||
다음에는 local 근사의 독립 미분/물리 정확도와 후보 후속 acceptance 실패의 원인을 분리하고,
|
||||
실제 비선형 후보의 시간 정확도와 N7 판정을 확보해야 한다. 그 뒤 같은 조건의 공식 후보
|
||||
100증분과 정식 HHT 비교를 수행해야 전체 speedup을 판정할 수 있다.
|
||||
현재 branch와 원시 자료를 보존했으며 주 개발 branch 병합·외부 solver·release는 수행하지 않았다.
|
||||
|
||||
@@ -5,8 +5,11 @@
|
||||
2026-10-18 후속 사용자 지시로 polar 반복 12→1회, 관성 회전/Jacobian 급수 32→3차,
|
||||
질량 대칭·null/Gram·분해 복원 검사 1e-12→1e-3의 local 근사 실험을 적용했다.
|
||||
최초 엄격한 기준의 관련 요소 46개 중 5개가 실패했다. 후속 사용자 지시로 관성·접선·
|
||||
HHT 물리 테스트의 오차 기준을 1e-3으로 완화했으며 최신 선택 50개는 두 빌드 경로에서
|
||||
46 PASS·4 FAIL이다. 실제 해석 루틴의 수렴 조건은 이번 테스트 수정으로 바뀌지 않았다.
|
||||
HHT 물리 테스트의 오차 기준을 1e-3으로 완화했다. 이후 Abaqus2025 공개 field 규칙을
|
||||
양의 증분의 실제 종료에 연결하고 accepted 평균 이력·hht-log-v2를 구현했다.
|
||||
2026-10-19 Native Debug/CTest 전체는 각각998개 중987 PASS·10 FAIL·1 SKIP이다.
|
||||
새 정책의 실제 조기 종료·rollback·강체 병진 oracle는 통과했으나 D3·drilling·C08와
|
||||
후속 mass-null/triad 검사가 실패한다. 실제 비선형 후보 시간 정확도는 미검증이다.
|
||||
아래 정식화의 유한회전 항등식과 과거 검증을 이 근사본의 통과로 승계하지 않는다.
|
||||
변경 범위와 실제 검증 한계는 [실험 기록](../abaqus-tolerance/local-kernel-experiment.md)을 따른다.
|
||||
|
||||
@@ -21,8 +24,11 @@ shell schema v2**다. 과거 consistent 질량·full-coordinate v1 근거를 변
|
||||
사용자 중단 exit -1은 수치 FAIL이나 PASS가 아니다. 이후 2026-10-14 성능 baseline은
|
||||
원본을6372.325621초/native0으로 완료하고 schema v2·729nodes/101frames를 확인했다.
|
||||
9-node U blocking 비교는 PASS(최대 relative RMS .0022824245), UR은 경고200건이었다.
|
||||
이는 baseline source의 결과다. 최신 최적화 source의 새 원본 비교·C08b·전체 회귀·독립
|
||||
전체 물리 판정은 남아 있으며 전체 green이 아니다. [성능 요약](../calculation-performance/README.md)을 함께 본다.
|
||||
이는 과거 baseline source의 결과다. 2026-10-19 같은 승인 local 근사본의 strict 원본을
|
||||
6350.7895521초/native0으로 완료했고 정식 U 비교는 통과했다. 현재 field 후보는 수치 실패로
|
||||
공식100증분을 실행하지 않았으며 새 원본 비교·비선형 시간수렴·전체 물리 판정과 speedup은
|
||||
미성립이다. 전체 회귀는 위 수치대로 실제 실행했으며 전체 green이 아니다.
|
||||
[수렴 정책 실험 결과](../abaqus-tolerance/results.md)에 현재 근거를 보존했다.
|
||||
|
||||
## 채택 방법과 산술 의미
|
||||
|
||||
@@ -108,18 +114,27 @@ full accepted frame은 같은 acceptance 뒤 commit한다. Full residual·recove
|
||||
검증 전에 일부 이력을 commit하지 않는다. [DynamicHdf5ResultsWriter](../../src/fesa/io/hdf5/dynamic_hdf5_results_writer.cpp)는
|
||||
완결 이력을 write/close/reopen/self-check한 뒤 final을 교체한다. 실패 candidate는 기존 final을
|
||||
보존한다. Accepted history는 실행 중 메모리에 있어 강제 종료 로그만으로 복구되지 않는다.
|
||||
Field 평균 후보는 반복마다 재계산하고 accepted 증분에서 한 번 갱신한다. State의 staged
|
||||
copy에서 commit을 검증하고 로그 flush 성공 뒤 state·private/flux history를 공개한다.
|
||||
누적 frame 이력 복사 비용이 있으며 공식 후보 elapsed에 포함할 대상이다.
|
||||
|
||||
## 검증 기준·교훈·남은 한계
|
||||
|
||||
N2 full force/moment·q/v/a/A correction은 채널별 1e-10, 실제 scaled solve backward error는
|
||||
1e-12다. N3 update는 상쇄 전 same-unit scale의 1e-12와 exact-zero branch를 유지한다.
|
||||
현재 양의 증분은 `abaqus2025-field-on-fesa-v1`로 종료한다. 힘/모멘트 flux 평균과
|
||||
full endpoint u/total-φ의 실제 보정·증분을 사용하며 normal/zero-flux/linear/nonquadratic과
|
||||
추정 보정을 구분한다. 기존 N2 full force/moment·q/v/a/A의1e-10은 strict 진단이다.
|
||||
PrivateCorrectionEqual과 회전 전용 보정의 기존 strict 선택 자격은 유지했다.
|
||||
Frame0·후속 hidden/rank/regularity·전역 평형1e-8도 별도 gate다.
|
||||
실제 scaled solve backward error는1e-12다. N3 update는 상쇄 전 same-unit scale의1e-12와 exact-zero branch를 유지한다.
|
||||
Pair increment의 exact expansion 검사와 RN-even 저장 검사는 별도다. Hidden 위치 조건·rank/
|
||||
regularity를 유지하되 hidden rate 진단을 임의 Newton gate로 바꾸지 않는다. 일반 dynamic
|
||||
operator에 대칭성을 강제하지 않는다. 일반 nonlinear HHT energy에 매 frame 보존·감소를
|
||||
요구하거나 numerical dissipation을 physical damping으로 기록하지 않는다.
|
||||
|
||||
시간 검증은 q/v/physical a의 마지막 두 refinement 감소·차수 >=1.8 및 finest normalized
|
||||
error <=1e-4를 요구한다. N7 read-only linear/nonlinear defect solves와 arithmetic indicator는
|
||||
시간 검증은 q/v/physical a의 마지막 두 refinement 감소·차수 >=1.8을 요구한다.
|
||||
이번 승인 근사 실험의 관련 테스트 오차는1e-3이다. 기존 strict algebra의 finest1e-4
|
||||
검사도 그대로 통과했지만 실제 비선형 후보의 refinement·finest 오차 판정은 미완료다.
|
||||
N7 read-only linear/nonlinear defect solves와 arithmetic indicator는
|
||||
100배 separation을 확인하며 state polishing이 아니다. 원본의 성긴 dt/T1≈7.4567에서
|
||||
변위 일치와 시간 정확도를 구분한다.
|
||||
|
||||
@@ -128,7 +143,8 @@ error <=1e-4를 요구한다. N7 read-only linear/nonlinear defect solves와 ari
|
||||
정책으로 해소됐고 후속 C09/C08a7 통과와 구분한다. 최신 Debug h=1/64 완료 요약의 이전
|
||||
Release 일치는 전체 raw state bitwise나 전체 시간수렴 증거가 아니다. 원본 accepted residual
|
||||
최대 병진1.889238010e-15·회전1.452384011e-15도 Abaqus 변위 오차가 아니다.
|
||||
C08b finer-grid·최신 최적화 source의 원본 HDF5 비교·전체 회귀·전체 물리 closure가 남는다.
|
||||
C08b finer-grid·현재 field 후보의 원본 HDF5 비교·전체 물리 closure가 남는다.
|
||||
전체 회귀의 실제 실패와 해상도 SKIP을 과거 통과로 덮지 않는다.
|
||||
|
||||
## 보존한 과거 수식과 연구의 위치
|
||||
|
||||
|
||||
@@ -6,8 +6,9 @@
|
||||
1e-3을 적용했다. 변경 전 관련 기존 45개 PASS, 변경 후 46개 중 41 PASS·5 FAIL이다.
|
||||
추가 HHT 선택에서도 C08a 독립 물리 oracle와 큰 시간간격 100회 보정 종료가 실패했다.
|
||||
후속 사용자 지시로 관련 테스트 오차 기준도 1e-3으로 변경했으며 최신 동일 선택
|
||||
50개는 Native/CTest 각각46 PASS·4 FAIL이다. D3 오차 약0.228, drilling gradient
|
||||
약0.00329 및 C08a hidden defect/실제 평형 검사 실패가 남는다.
|
||||
50개는 당시 Native/CTest 각각46 PASS·4 FAIL이었다. 2026-10-19 외부 field 정책 연결 뒤
|
||||
전체998개를 양쪽에서 실행했고 동일10 FAIL·1 SKIP이 남는다. D3 오차 약0.228,
|
||||
drilling gradient 약0.00329 및 C08a hidden defect/실제 평형 검사 실패도 재현했다.
|
||||
- 영향: 회전 미분·analytic null·질량/에너지·drilling 항등식의 기존 정확도 검증을 만족하지
|
||||
못한다. 구현 완료를 solver correctness·시간수렴·성능 향상으로 보고할 수 없다.
|
||||
- 지금 해결하지 않는 이유: 요청한 근사값의 수치 영향이며 승인된 테스트 허용치1e-3보다
|
||||
@@ -15,14 +16,32 @@
|
||||
- 다음 접근: 원인 분리 실험과 정확도 손실의 별도 판정이 필요하다. 변경 범위·실제 로그·
|
||||
미검증 항목은 [local 실험 기록](../abaqus-tolerance/local-kernel-experiment.md)을 따른다.
|
||||
|
||||
## 비정적 검증 공백
|
||||
## MITC4 후보 후속 acceptance와 비선형 시간 정확도 미완료
|
||||
|
||||
- 조건·관측: 2026-10-18 통합에서 장시간 HHT 검증이 사용자 요청으로 중단되고 정적·공통
|
||||
631개만 검증됐다. 비정적 333개 등록은 보존됐으나 최신 통합본 전체 수치 실행 근거가 없다.
|
||||
- 영향: Shell HHT·solid dynamics·frequency·transient thermal의 전체 검증 완료를 선언할 수 없다.
|
||||
- 지금 해결하지 못한 이유: 장시간 solver·test 실행과 독립 물리 판정이 필요한 별도 검증 작업이다.
|
||||
- 다음 접근: source와 환경을 고정하고 미실행 identity별 필요한 물리·시간수렴·reference를
|
||||
묶어 검증한다. 중단된 C08b finer-grid와 기존 완료 개별 검사를 구분한다.
|
||||
- 조건·관측: 2026-10-19 구성된 전체 Native/CTest998개는 각각987 PASS·10 FAIL·1 SKIP이다.
|
||||
실제 후보 LargeDirect는 field 통과 뒤 mass-null, UniformTranslation은 유한회전 증분2에서
|
||||
triad 일관성이 실패한다. 같은 identity의 보존 strict는 외부100회 소진이므로 원인 동일로
|
||||
분류하지 않는다. C08 strict algebra의 시간 controller4개도 첫 격자에서 실패한다.
|
||||
- 영향: 강체 병진 oracle와 기존 algebra 시간수렴 통과만으로 실제 비선형 후보의
|
||||
q/v/physical a refinement·차수·finest 오차·N7/물리 invariant closure를 인증할 수 없다.
|
||||
N7 한 항목은 해상도 SKIP이다. 공식 후보100증분·정식 HHT 비교·전체 speedup은 미성립이다.
|
||||
- 지금 해결하지 못한 이유: 승인 local 근사본의 독립 정확도 실패가 동반되며 원인 분리가
|
||||
필요하다. 정해진 근사 수식을 자동 복원하거나 유지할 hidden·triad·평형 기준을 완화해
|
||||
성공시키는 것은 이번 실험의 변경 범위가 아니다. 추가 강제 보정이나 실패 frame commit도 하지 않는다.
|
||||
- 다음 접근: polar/inertia 근사 영향과 candidate 후속 gate 실패의 원인을 분리한다.
|
||||
유지할 물리 기준에서 실제 비선형 후보의 시간·불변량 검증을 확보한 뒤 공식100증분을 측정한다.
|
||||
전체 실행·실패 identity와 strict 대조 근거는 수렴 정책 결과의 원시 기록에 보존했다.
|
||||
|
||||
## 개발 계측의 정확 parity와 전체 비용 미확정
|
||||
|
||||
- 조건·관측: strict 공식 frame0/1과 짧은 개발 실행의 numeric dataset40개 중18개가 byte
|
||||
불일치했다. 보존한 동일 OFF 실행물의 짧은 대조도 불일치해 계측만의 영향으로 분리되지 않았다.
|
||||
전체100증분 개발 계측은 하지 않았으며, 후보와 strict의1증분 state 차이는 별도 정책 진단이다.
|
||||
- 영향: 개발 probe의 정확 byte parity 통과나 전체 병목 비중·전체 가속률을 확정할 수 없다.
|
||||
- 지금 해결하지 못한 이유: T 단축·반복·thread·컴파일 영향을 분리한 실행 근거가 없고,
|
||||
수치 부적합 상태에서 같은 장시간 실행을 근거 없이 반복하지 않는 실험 조건을 유지한다.
|
||||
- 다음 접근: 수치 적합성을 확보한 뒤 동일 입력·실행물·thread 조건으로 원인을 분리하고
|
||||
전체 증분 비용을 측정한다. 새 parity 허용치나 첫 증분의100배 외삽으로 대신하지 않는다.
|
||||
|
||||
## 정식 기준자료 부재와 추가 fine 비교기 부재
|
||||
|
||||
|
||||
+24
-20
@@ -1,15 +1,18 @@
|
||||
# 구현과 검증 상태
|
||||
|
||||
2026-10-18 후속 [MITC4 local 근사 실험](../abaqus-tolerance/local-kernel-experiment.md)은
|
||||
polar 1회·관성 회전/Jacobian 3차·질량 검사 1e-3을 적용했다. 두 Debug build는 성공했으나
|
||||
최초 관련 요소 46개 중 5 FAIL이었다. 후속 사용자 지시로 관련 테스트의 오차 기준을
|
||||
1e-3으로 변경했고, 최신 Native/CTest 동일 선택 50개는 각각46 PASS·4 FAIL이다.
|
||||
전체 965개 중 나머지 915개는 이번에 미실행이며 실제 해석 수렴 조건은 변경하지 않았다.
|
||||
아래 과거 검증을 이 변경본에 승계하지 않는다. Abaqus 외부 Newton 정책은 미구현이다.
|
||||
2026-10-19 현재 실험 branch는 polar1회·관성 회전/Jacobian3차·질량 gate와 관련 테스트
|
||||
오차1e-3을 유지하며, Abaqus2025 공개 field 규칙을 MITC4 HHT의 실제 종료에 연결했다.
|
||||
Accepted 평균 이력과 hht-log-v2도 구현했다. Native Debug와 CMake Debug/CTest 전체는
|
||||
각각998개 중987 PASS·10 FAIL·1 SKIP이다. Python145개와 별도 Release 정식 Hex8
|
||||
5모델 CLI/비교기는 통과했다. Native unit883개 중10 FAIL·1 SKIP, integration72개와
|
||||
reference43개는 모두 통과했다. 두 build 성공과 source/등록 identity/DLL 대조도 확보했다.
|
||||
물리 실패·N7 해상도 미판정·실제 비선형 후보 시간 정확도 미완료로 전체 검증 완료는 아니다.
|
||||
Strict 공식 기준6350.7895521초는 확보했으나 공식 후보100증분·speedup은 미성립이다.
|
||||
상세 revision·실행 증거는 [수렴 정책 실험 결과](../abaqus-tolerance/results.md)에 있다.
|
||||
|
||||
## 기준 시점
|
||||
## 과거 통합 기준 시점
|
||||
|
||||
2026-10-18 저장소 HEAD `945d899` 기준이다. 아래 통과 수치는 각 검증 당시 기록의 범위이며
|
||||
과거 통합 기준은 2026-10-18 HEAD `945d899`다. 과거 통과 수치는 각 검증 당시 기록의 범위이며
|
||||
후속 source에서 새로 실행한 결과로 승계하지 않는다.
|
||||
현재 용도는 개인 연구용 로컬 실행이며 장기 목표는 외부 사용자 배포다. 배포 형태·지원 환경·
|
||||
dependency 재배포 조건은 확정되지 않았다.
|
||||
@@ -18,14 +21,14 @@ dependency 재배포 조건은 확정되지 않았다.
|
||||
|
||||
| 영역 | 구현된 범위 | 확보된 검증과 한계 |
|
||||
| --- | --- | --- |
|
||||
| B33·MITC4 선형 정적 | 입력 → solve → 복구 → HDF5 | 2026-10-18 정식 정적 모델 실행·비교 범위에 포함. 일반 곡선 beam·광범위 distorted/curved shell 정확도를 뜻하지 않는다. |
|
||||
| MITC4 비선형 정적·압력 | Full Newton·trial/commit·정적 follower pressure | ShellNL 정식 기본 모델의 U blocking·UR warning·내부 평형 통과 기록. RF/RM은 review-only. Fine·추가 fine·pressure의 정식 자료가 없고 추가 fine 비교기 연결도 없다. |
|
||||
| Shell frequency | Lumped mass·실제 FEAST·null/finite 공간·전체 반환 pair 검증 | 2026-09-10 첫 구현의 417개 통과와 Value 10개 모드별 5% 기록. 최신 통합본의 frequency 수치 실행을 완료한 근거로 승계하지 않는다. |
|
||||
| Shell HHT | Nodal-lumped-kinetic·reduced-coordinate·fixed-null·schema2 | 과거 C09와 C08a 7-grid, baseline 원본 U 비교 기록. 최신 전체 회귀·C08b finer-grid·최신 원본 비교·전체 물리 판정은 미완료. 중단을 수치 실패나 통과로 세지 않는다. |
|
||||
| Hex8 | Mean-volume 강성·reference row-sum mass·정적/고유치/HHT·high+low | 2026-10-13 관련 C++ 91개·Python 96개와 보존 결과 5개 비교 기록. 2026-10-18에는 정적 2개를 재실행. 최신 고유치·동적 전체 검증은 별도다. |
|
||||
| DS4 thermal | 5 온도점·consistent capacity·BE·flux/reaction·원자적 출력 | 당시 추가 139개 검사 기록. 기존 NT11은 diagnostic 불일치이며 새 필수 외부 reference 검증은 미완료. 최신 통합본의 전체 열 수치 실행도 미완료다. |
|
||||
| 공통 구조·빌드 | Typed procedure/capability/outcome·private backend·Native/CMake | 2026-10-18 두 경로 전체 target build·공개 header 111개 독립 compile·runtime DLL 7개 대조 기록. 물리 기능 전체 검증과 구분한다. |
|
||||
| 성능 | MKL 행렬 연산·제한된 불변 cache·Hex8 SIMD·shell 산술 최적화 | 세 모델의 목표 달성은 미완료. 단일 개발 표본과 복원된 후보의 통과를 최종 성능으로 승계하지 않는다. |
|
||||
| B33·MITC4 선형 정적 | 입력 → solve → 복구 → HDF5 | 2026-10-19 두 Debug 경로의 구성된 reference 실행·비교 포함. 일반 곡선 beam·광범위 distorted/curved shell 정확도를 뜻하지 않는다. |
|
||||
| MITC4 비선형 정적·압력 | Full Newton·trial/commit·정적 follower pressure | 2026-10-19 정식 coarse 모델의 기존 비교를 포함한 구성 검사 실행. RF/RM은 review-only. Fine·추가 fine·pressure 자료 부재와 추가 fine 비교 계약 부재는 남는다. |
|
||||
| Shell frequency | Lumped mass·실제 FEAST·null/finite 공간·전체 반환 pair 검증 | 2026-10-19 구성된 두 Debug 경로 reference 실행에 포함. 한정된 Value 10개 모드별5% 계약을 다른 고유치 비교로 확대하지 않는다. |
|
||||
| Shell HHT | Reduced-coordinate·fixed-null·schema2·Abaqus2025 field 종료·log-v2 | 두 전체 경로에서 동일10 FAIL·N7 SKIP1. 실제 조기 종료·강체 oracle는 통과하나 비선형 시간 정확도와 후속 acceptance 실패는 미해결. Strict 원본 비교만 확보, 공식 후보 원본 비교는 미실행. |
|
||||
| Hex8 | Mean-volume 강성·reference row-sum mass·정적/고유치/HHT·high+low | 2026-10-19 구성된 두 Debug 경로 전체 실행과 별도 Release 정식5모델의 새 HDF5·기존 비교 통과. 공식 성능 비교가 아니다. |
|
||||
| DS4 thermal | 5 온도점·consistent capacity·BE·flux/reaction·원자적 출력 | 2026-10-19 구성된 unit/integration/reference 실행 완료. 기존 NT11 diagnostic 불일치와 새 필수 외부 reference 부재는 남는다. |
|
||||
| 공통 구조·빌드 | Typed procedure/capability/outcome·private backend·Native/CMake | 2026-10-19 두 Debug build 성공, compile source223개·실행 identity998개·runtime DLL7개 일치. 수치 검증 전체 통과와 구분한다. |
|
||||
| 성능 | MKL 행렬 연산·제한된 불변 cache·Hex8 SIMD·shell 산술 최적화 | Strict HHT 공식6350.7895521초 확보. 후보의1증분 호출 수 감소는 한정 진단이며 공식100증분 가속·목표 달성은 미확정. |
|
||||
|
||||
2026-10-18 통합 기록은 두 빌드 경로에서 unit 849·integration 72·reference 43, 총 964개
|
||||
등록 identity가 일치한다고 보고한다. 사용자 지시로 정적·공통 631개(unit 555·integration 35·
|
||||
@@ -46,9 +49,9 @@ Fresh Refactor·통합 Native·통합 CMake 실행물에서 같은 scratch 입
|
||||
|
||||
1. 정식 fine·추가 fine·pressure·새 thermal 기준자료의 제공 여부와 source/frame/hash 계약을
|
||||
확정한다. 추가 fine는 자료뿐 아니라 전용 case identity와 comparator 연결이 필요하다.
|
||||
2. 현재 source·compiler·build tree를 묶어 비정적 수치 검증을 수행한다. Shell HHT 시간수렴·
|
||||
원본 비교, solid dynamics, frequency, transient thermal을 선택된 정적 근거와 구분한다.
|
||||
자료가 필요한 외부 비교는 정식 자료 확보 뒤 수행한다.
|
||||
2. 구성된 전체 실행 결과를 바탕으로 MITC4 local 미분/물리 실패와 실제 후보 후속 gate 실패를
|
||||
분리한다. 후보 비선형 q/v/physical a 시간수렴·N7 및 후보 원본 비교를 확보한다.
|
||||
전체 검사 실행 사실과 미해결 수치 검증을 구분하고, 자료가 필요한 비교는 확보 뒤 수행한다.
|
||||
3. Eigen partial-BC 정적 평형 충돌과 thermal 외부 불일치의 영향을 각각 판정한다.
|
||||
기준 완화·질량 변경·원본 보정으로 해결하지 않는다.
|
||||
4. 같은 물리·허용치·출력·정밀도를 보존한 상태에서 성능 회귀 원인을 조사하고 최종 source의
|
||||
@@ -67,4 +70,5 @@ Fresh Refactor·통합 Native·통합 CMake 실행물에서 같은 scratch 입
|
||||
|
||||
Hex8 동적 개발 표본 117.7986225초는 native 0과 U 비교 통과였으나 100초 목표를 넘었다.
|
||||
Refactor 당시 ShellNL elapsed 회귀 Native +86.52%·CMake +120.91%는 과거 단일 기록이며
|
||||
원인·변산이 미확정이다. 최종 통합 source의 새 Release 성능 측정은 미완료다.
|
||||
원인·변산이 미확정이다. 2026-10-19 승인 local 근사본의 strict HHT는6350.7895521초였다.
|
||||
현재 field 후보의 공식 Release 시간과 speedup은 수치 실패로 미성립이다.
|
||||
|
||||
Reference in New Issue
Block a user