docs(mitc4): record drilling choices and current verification limits

This commit is contained in:
KOKO\Mimi
2026-10-20 15:17:40 +09:00
parent 45ac118d68
commit f09b3e1249
20 changed files with 378 additions and 20 deletions
+24 -1
View File
@@ -2,6 +2,22 @@
## 범위와 현재 상태
2026-10-20 현재 drilling 기본값은 `gamma_i=d_i0·phi_i`의 직접 작은 스프링이며
기존 상대 비틀림도 모델 전체의 코드 설정으로 선택한다. 직접 경로는 drilling용
polar/swing/twist를 생략하고 physical 회전·관성·고정 null 기저·시간적분은 유지한다.
직접 hidden scalar는 실제 cubic 관성이 계산한 normalized null `n_i(phi)`에 대해
`sum_e kd*gamma_ei*(n_i·d_i0)-n_i·Fext_rot`다. 그 같은 식의 gradient·Hessian·
필요한 3차 방향미분을 사용한다. 초기 director를 현재 null로 고정하지 않는다.
현재 source `6bbbb2b`를 전체 실행한 Debug Native/CTest는 각각1035개 중
1024 PASS·기존10 FAIL·1 INCONCLUSIVE SKIP이며 별도 Python164개는 PASS다.
정식729node·101frame Direct Release 해석과 외부9node U의101 families 비교는
CLI0/비교0, 최대 정규화 RMS0.2282326248391787%로 통과했고 UR 경고200개를 유지했다.
기존 방식은 별도 Debug의 관련 검사와 실제 소형3frame HHT 출력을 확인했다.
729node 기존 방식의 외부 U 재해석은 이번에 하지 않았다. 과거 결과를 현재 PASS로 승계하지 않는다.
기존10개 물리 실패·N7 미판정·정식 자료 누락이 남으므로 전체 검증 완료는 아니다.
아래 2026-10-19 수용 기록은 이전 수렴 실험의 결정이며 현재 전체 PASS를 뜻하지 않는다.
2026-10-19 후속 사용자 승인으로 이번 수렴 규칙 실험은 **Abaqus 변위 검증 통과·실패10개 보류로 조건부 완료**한다.
[수용 범위](../tracking/decisions/0011-tolerance-experiment-acceptance.md)를 따르며, 아래 미해결 물리 검사·
N7와 실제 FAIL/SKIP은 보존한다. 전체 상태729절점·101프레임 진단과 관측 시간 비교는
@@ -76,7 +92,7 @@ Schema identity는 `(hht-implicit-dynamics,hht-implicit-dynamics,2)`다.
`reduced-coordinate-HHT-with-physical-rate-reconstruction`,
`mass_formulation=nodal-lumped-kinetic`,
`acceleration_convention=physical-endpoint-and-auxiliary-separated`다.
모든 result dataset version도 2이며 A의 quantity_semantics는
기존 schema2 result dataset의 version은2이며 A의 quantity_semantics는
`full-chart-HHT-filter-combination-not-predictor-driver`다. 잘못된 marker·혼합 version·mass·
inventory·nonfinite는 dynamic-output-schema 실패다. Historical v1 reader branch는
과거 full-coordinate 결과만 읽으며 marker를 보충하거나 v2로 재표시하지 않는다.
@@ -92,6 +108,13 @@ inventory·nonfinite는 dynamic-output-schema 실패다. Historical v1 reader br
| nodal/reaction | [N,6]; support-on-structure spatial RF/RM, moment는 Jl^-T 변환 |
| element/shell/local_frame, generalized_strain, section_resultant, stress | [E,4,3,3], [E,4,8], [E,4,8], [E,4,3,3]; stress는 bottom/middle/top × S11/S22/S12 |
| global/energy, global/equilibrium | [5] kinetic/physical/drill/work/defect, [6] 관성 포함 force/moment balance |
| global/drilling_moment, global/equilibrium_with_drilling | [3] 내부 spatial drilling moment, [6] raw force와 raw moment에서 drilling moment를 차감한 진단; frame0 포함 |
새 MITC4 출력에는 실제 방식의 UTF-8 `mitc4_drilling_formulation`과 U64LE
`drilling_diagnostics_version=1`을 metadata에 추가한다. 기존 schema2와 raw equilibrium은
유지한다. 직접 방식의 기존 전역 gate만 보정 moment를 사용하고 기존 방식은 raw 판정이다.
Marker 없는 옛 결과는 방식 미상이며 새 진단을 추정하지 않는다. 변위 비교기는 새 진단의
모든 frame을 사전검사하지만 새 평형 수치 family나 verdict를 만들지 않는다.
Row는 model source inventory와 결합한다. Generalized moment와 spatial moment, physical a와
A, drilling force와 physical stress를 혼합하지 않는다. 영 BC는 q/v/a/A exact zero다.
@@ -16,12 +16,18 @@ component selector를 아래 고정 ON 기저로 대체한다. 기존
## 1. 적용 가정과 물리 계약
Total Lagrangian MITC4, 큰 변위·유한회전·작은 탄성 변형률, 등방 선형 탄성,
objective drilling potential, `nodal-lumped-kinetic`, 기존 공간 적분·두께 적분과
선택한 drilling potential, `nodal-lumped-kinetic`, 기존 공간 적분·두께 적분과
fixed-initial total rotation vector를 유지한다. 재료 history update는 없다.
관성·내력·공간 각속도·단면력은 [기존 물리 정식화](formulation.md)와
[관성 상세](formulation-inertia.md)가 소유한다. 좌표 변경은 constitutive law,
mass measure, drilling stiffness 또는 recovery formula를 바꾸지 않는다.
2026-10-20 기본 직접 스프링은 별도로 승인한 numerical potential 변경이다.
고정 기저·partial-BC 교집합·graph/rate 복원·regularity 계약은 유지하며, hidden primitive만
직접 힘과 실제 cubic 관성 null에서 일관되게 계산한다. 기존 objective twist를 선택하면
그 현행 계산과 판정을 보존한다. 현재 null을 초기 director로 고정하거나 partial BC를
full clamp로 바꾸어 새 스프링의 rank/regularity 실패를 피하지 않는다.
Full node-major ordering은 `q_i=(u_x,u_y,u_z,phi_X,phi_Y,phi_Z)`다.
`u`: length, `phi`: rad, `v=dot q`, `a=ddot q`이며 `v_phi`와 `a_phi`는
공간 각속도·각가속도가 아니다. Zero fixed BC를 제거한 공간에서
@@ -10,6 +10,14 @@
## 1. 회전과 관성의 미분
2026-10-20 drilling 선택 변경은 아래 관성의 수학 유도나 현행 cubic 근사 차수를 바꾸지
않는다. 기본 직접 스프링의 hidden 미분은 실제 cubic 관성 null을 사용한다. 아래 정확
SO(3) 유도와 현재 근사 구현의 D3/null 항등식 검증 상태를 구분한다.
직접 스프링은 유한 강체 회전에서 인공 내부 spatial moment `Mdrill`을 허용하므로,
아래 objective total energy의 무일 가정은 직접 drilling에 적용하지 않는다.
Raw 관성 포함 평형을 보존하고 직접 방식의 기존 전역 gate에는 moment에서 `Mdrill`을
차감한다. 기존 방식은 raw 판정이며 physical mass·momentum·a/A·history 정의는 그대로다.
`P=[phi]_×`, `theta=|phi|`에 대해
\[
@@ -15,7 +15,16 @@ physics와 graph/rate 계약은 유지하되, identity-coordinate 전용 설명
그대로 적용하지 않는다. 실제 augmented scaling·초기화·CA/N7의 새 basis 경계는
해당 상세 문서를 따른다.
기존 Total Lagrangian MITC4, objective numerical drilling potential, isotropic linear elasticity, nodal lumped kinetic measure, 공간 적분과 fixed-initial global chart를 유지한다. 좌표는 node-major `q=(u_x,u_y,u_z,phi_X,phi_Y,phi_Z)`, `v=dot q`, `a=ddot q`; 병진 단위는 length, 회전은 rad다. 질량 추가, damping, stiffness modification, stress averaging은 없다. 공개 load subset은 기존 constant global force, 구속은 fixed zero다. 아래 smooth F(t)의 시간미분은 C08a 내부 manufactured oracle에만 해당한다.
기존 Total Lagrangian MITC4, 선택한 numerical drilling potential, isotropic linear elasticity, nodal lumped kinetic measure, 공간 적분과 fixed-initial global chart를 유지한다. 좌표는 node-major `q=(u_x,u_y,u_z,phi_X,phi_Y,phi_Z)`, `v=dot q`, `a=ddot q`; 병진 단위는 length, 회전은 rad다. 질량 추가, damping, stress averaging은 없다. 공개 load subset은 기존 constant global force, 구속은 fixed zero다. 아래 smooth F(t)의 시간미분은 C08a 내부 manufactured oracle에만 해당한다.
2026-10-20 기본 직접 스프링의 primitive는
`psi_ei=kd*(d_i0·phi_i)*(n_actual(phi_i)·d_i0)`다. `n_actual`은 기존
`EvaluateDynamicRotation`의 cubic Exp/Jacobian에서 계산한 `normalize(J_cubic^-1*d_cubic)`를
사용하며, 아래 정확 SO(3)의 closed 식으로 대체하지 않는다. Shared node에서 요소별
primitive를 source 순서로 합하고 `n_actual·Fext_rot`을 한 번만 뺀다.
Gradient·Hessian·3차 방향미분도 같은 primitive와 실제 null에서 유도한다.
Metric은 `sum_e kd*grad(gamma_ei)*grad(gamma_ei)^T`다. Force의 일정 접선을 이유로
null의 고차 미분을 지우지 않는다. 다음 `k*S*gamma`는 기존 상대 비틀림 방식의 유도다.
Zero constrained 성분을 정확히 제거한 free 공간에서
@@ -32,7 +41,14 @@ S_i=1/\|J_l^{-1}d_i\|.
\tag{RC-02}
\]
이는 기존 `drilling_constraint`의 scalar이며 raw twist gamma가 아니다. Physical force의 null work가 0인 정확 identity를 사용하므로 energy의 4차 tensor는 필요 없다. Translation force의 null work는 0이다. Shared node external term은 한번만 추가한다.
이는 기존 `drilling_constraint`의 scalar이며 raw twist gamma가 아니다. 이 유도는 physical force의 null work가 0인 정확 identity를 사용하므로 energy의 4차 tensor는 필요 없다. Translation force의 null work는 0이다. Shared node external term은 한번만 추가한다.
현재 cubic 관성에서는 별도로 계산한 physical force의 null 투영이 이 정확 identity를
항상 만족하지 않는다. 직접 방식의 hidden scalar를 `n^T(fphysical+fdrill-Fext)`로
재구성하면 primitive 미분과 다른 식이 되므로 canonical scalar를 그대로 사용한다.
Full mass/null·physical residual·triad acceptance는 별도로 유지하며 근사 오차를 숨기지 않는다.
빈 admissible null inventory에는 scalar를 요구하지 않고, 필요한 null이 있을 때 미평가
scalar를0으로 치환하거나 사용할 수 없는 directional 응답을 재사용하지 않는다.
## 2. Fixed graph와 부분 구속