feat: adopt lumped mass and reduced-coordinate shell HHT
Integrate Hex8 mass verification and fixed-null-basis shell dynamics with numerical and physics handoff evidence. Preserve interrupted reference and full-validation status; full integration validation is deferred until after performance optimization.
This commit is contained in:
@@ -54,7 +54,11 @@ repository-conforming 이름 조정은 허용하며 physics/schema 수정은 아
|
||||
f[24], Kmat/Kgeo/Kt[24,24], strain energy와8 typed integration-point rows를 반환한다.
|
||||
Linear은 새 체적 평균 energy의 zero Hessian material=K0/geo=0,
|
||||
nonlinear은 같은 trial의 체적 평균 Green energy 미분이다. `ComputeMass()`는
|
||||
local consistent24×24 Matrix contribution이며 absent density이면 실패한다.
|
||||
full reference consistent24×24 matrix의 각 row sum을 대각에 둔 local lumped24×24
|
||||
Matrix contribution이며 absent density이면 실패한다. Row sum은 BC reduction 전에
|
||||
전체24 성분으로 계산하고 이후 실제 constraint mask로 restriction한다. Warped 요소에서
|
||||
동일한 `rho*V/8`을 모든 절점에 대신 배정하지 않는다. Eigen/HHT는 같은 reference mass를
|
||||
사용하며 시간·변형에 따라 재계산하는 current mass가 아니다.
|
||||
- Typed Solid point row는 internal element index, point ID1–8, natural/reference coordinate3,
|
||||
Cauchy stress6·infinitesimal/Green tensor strain6를 가진다. Identity/상수 coordinates를 trial마다
|
||||
다른 source row로 만들지 않는다. 저장 strain은 실제 kinematics의 strain이며 평균된
|
||||
@@ -92,6 +96,16 @@ Metadata의 추가 공개 의미는 다음과 같다.
|
||||
| `unit_system_label` | `user-consistent-unspecified` |
|
||||
| `coordinate_convention` | `global-cartesian; reference-strain; current-cauchy-stress` |
|
||||
| `component_order` | `node-major; UX,UY,UZ` |
|
||||
| `mass_formulation` | `lumped-reference`; full reference element matrix의 row-sum diagonal mass |
|
||||
|
||||
2026-10-11 사용자 승인으로 질량의 공개 의미와 `mass_formulation` 값을
|
||||
`consistent-reference`에서 `lumped-reference`로 변경한다. 입력에 질량 선택 parameter를
|
||||
추가하지 않으며 기존 CLI, schema_version=1, dataset field/shape/dtype, high+low 내부 상태의
|
||||
round-to-Float64 규칙은 유지한다. 과거 consistent 결과는 당시 evidence로 보존하며 현재
|
||||
reader/self-check/comparator는 mass identity mismatch를 tolerance 적용 전에 거부한다.
|
||||
Metadata를 바꾸어 과거 수치 결과를 새 정책의 결과로 표시하지 않는다. 이 변경만으로
|
||||
새 정책의 verification PASS를 선언하지 않으며 production readback와 원본 비교는 새
|
||||
실행 evidence가 필요하다.
|
||||
|
||||
Physical dataset은 `component_names`와 `unit_dimensions`를 UTF-8 string으로 기록한다.
|
||||
각 frame dataset에는 `frame_index:U64`, `increment_index:U64` 및 해당 `time:F64` 또는
|
||||
@@ -116,7 +130,9 @@ K0는 승인된 mean-trace energy의 zero Hessian이고 nonlinear Wg는
|
||||
`mu*dev(Eg):dev(Eg)+0.5*kappa*theta_bar^2`다. 같은 theta_bar를8점의 reference 가중치로
|
||||
계산하므로 그 합은 요소 체적 항 `0.5*kappa*V*theta_bar^2`와 같다. 기존 attribute 문자열과
|
||||
field/schema/dtype은 유지하며 새 energy 의미는 HEX8-ADR-009 및 정식화를 따른다.
|
||||
Kinetic은 `0.5*v^T*M*v`, work는 `sum(0.5*(F_old+F_new)*delta_u)`이며 initial0이다.
|
||||
Kinetic은 동일한 reference lumped M으로 계산한 `0.5*v^T*M*v`이고, eigen의
|
||||
mass normalization과 HHT의 관성력·반력·physical momentum에도 같은 M을 사용한다.
|
||||
Work는 `sum(0.5*(F_old+F_new)*delta_u)`이며 initial0이다.
|
||||
Balance error는 `T+U-T0-U0-Wext`이고 HHT numerical dissipation을0으로 보정하지 않는다.
|
||||
Constrained mask/prescribed 의미·point ordering은 model inventory에서 확인한다.
|
||||
|
||||
@@ -134,5 +150,8 @@ Quantity/key/family와 원본 준비 상태는 [reference-model](reference-model
|
||||
Static은 final factor-one source increment를 FESA final accepted frame에 대응한다. Dynamic은
|
||||
integer increment0..N과 decimal source time을 n*h에 대응한다. RF는 constrained projection,
|
||||
S는 element/IntPt와6 global Cauchy component다. 좌표는 보조검사이고 ID 추정에 쓰지 않는다.
|
||||
Modal Value는 원본이 제공되면 quantity/units/mode/step을 확인하며 최저10 eigenvalues를
|
||||
singleton families로 비교한다. Missing 원본·nonfinite/identity/completeness 오류는 미실행/실패다.
|
||||
Modal Value는 제공된 `hexa_freq.txt`의 고유치 λ(`1/time^2`)를 최저10개 mode별
|
||||
singleton families로 직접 비교한다. `Freq (cycles/time)`는 보조 열이며 변환하지 않는다.
|
||||
TXT에 없는 step field는 고정 case와 승인 입력의 sole `Step-1`에 한정해 대응한다.
|
||||
형식·hash·mode/finite 검사는 [원본 mapping](reference-model.md)을 따른다.
|
||||
Missing 원본은 미실행, nonfinite/identity/completeness 오류는 실패다.
|
||||
|
||||
Reference in New Issue
Block a user