From 8e9c3906f220265b275056d78bc5af66c006c012 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Sun, 9 Aug 2026 02:33:50 +0900 Subject: [PATCH] feat(linear-static-3d-euler-beam): step 2 - formulation-alignment --- ...3d-isoparametric-euler-beam-formulation.md | 249 +++++++++++++----- 1 file changed, 179 insertions(+), 70 deletions(-) diff --git a/docs/formulations/3d-isoparametric-euler-beam-formulation.md b/docs/formulations/3d-isoparametric-euler-beam-formulation.md index de791ce..abeccbf 100644 --- a/docs/formulations/3d-isoparametric-euler-beam-formulation.md +++ b/docs/formulations/3d-isoparametric-euler-beam-formulation.md @@ -3,11 +3,12 @@ ## Metadata - feature_id: `3d-isoparametric-euler-beam` -- source_requirement: 사용자 요청 및 2026-08-07 범위 확인; `docs/requirements/3d-isoparametric-euler-beam.md`는 아직 없음 -- source_research: FEM theory wiki의 [[Beam and Frame Finite Elements]], [[Isoparametric Finite Elements]], [[A-First-Course-in-the-Finite-Element-Method|A First Course in the Finite Element Method]]; `docs/research/3d-isoparametric-euler-beam-research.md`는 아직 없음 -- status: `needs-research` +- source_requirement: `docs/requirements/linear-static-3d-euler-beam.md` +- source_research: `docs/research/linear-static-3d-euler-beam-research.md` +- approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` +- status: `ready-for-numerical-review` - owner_agent: `formulation-agent` -- date: `2026-08-07` +- date: `2026-08-09` ## 1. 목적과 정식화 요약 @@ -65,6 +66,7 @@ $$ ### 2.1 포함 범위 - 2절점 직선 prismatic 공간 beam 요소 +- Abaqus `TYPE=B33`에만 연결되는 shear-free cubic Euler–Bernoulli 의미 - small displacement 및 small rotation - 선형 정적 해석 - 균질 선형 탄성 재료 @@ -73,11 +75,13 @@ $$ - 단면 도심을 지나는 국부 $x$축 - 단면 주축과 국부 $y,z$축의 일치: $I_{yz}=0$ - 보존력과 일관 등가절점하중 +- formulation 검증용 상수 국부 line-load 등가절점벡터; Abaqus `*DLOAD` 입력은 제외 - 자연좌표 $\xi\in[-1,1]$을 사용하는 1차원 등매개 기하 mapping ### 2.2 제외 범위 - Timoshenko 전단 변형과 shear correction factor +- Abaqus `TYPE=B31`의 Euler–Bernoulli 요소 재해석 - 기하비선형, 재료비선형, P–$\Delta$, geometric stiffness - 단면 warping, bimoment 및 warping 자유도 - shear-center/centroid offset, rigid offset 및 end release @@ -97,7 +101,9 @@ $$ ### 2.4 단위 -특정 단위계를 고정하지 않고 일관 단위계를 사용한다. +일반 입력에는 특정 단위계를 고정하지 않고 일관 단위계를 사용한다. 승인된 +`reference/cantilever beam/` 비교만 외부 계약에 따라 SI를 사용하며, 이 사실은 +일반 `.inp` 입력의 단위계를 SI로 추론한다는 뜻이 아니다. | 양 | 차원 | | --- | --- | @@ -113,8 +119,10 @@ $$ ### 3.1 국부 직교좌표계 -전역 절점 위치를 $\mathbf X_1,\mathbf X_2\in\mathbb R^3$라 하고 사용자가 -제공하는 국부 $y$축 guide vector를 $\mathbf a$라 한다. +전역 절점 위치를 $\mathbf X_1,\mathbf X_2\in\mathbb R^3$라 하고 Abaqus first +section axis `n1`으로 제공되는 guide vector를 $\mathbf a=\mathbf n_1$이라 한다. +요소 tangent $\mathbf t$를 국부 $x$축으로, 투영·정규화한 `n1`을 국부 $y$축으로, +$\mathbf t\times\mathbf n_1$ 방향을 국부 $z$축으로 둔다. $$ \begin{aligned} @@ -147,17 +155,19 @@ $$ e_{zI}=\sum_{J=1}^{3}\sum_{K=1}^{3}\epsilon_{IJK}e_{xJ}e_{yK}. $$ -다음 조건을 만족해야 한다. +좌표 크기와 guide vector 크기를 반영한 승인된 validation은 다음과 같다. $$ -L>L_{\mathrm{tol}},\qquad -\|\widetilde{\mathbf e}_y\|>a_{\mathrm{tol}},\qquad +L>10^{-12}\max(1,\|\mathbf X_1\|,\|\mathbf X_2\|),\qquad +\|\widetilde{\mathbf e}_y\|> +10^{-12}\max(1,\|\mathbf a\|),\qquad \mathbf e_i\cdot\mathbf e_j=\delta_{ij},\qquad \mathbf e_x\times\mathbf e_y=\mathbf e_z. $$ -guide vector가 요소 축과 평행하면 국부 $y,z$축과 $I_y,I_z$의 의미가 정해지지 -않으므로 입력 오류로 처리한다. 임의의 fallback 축을 조용히 선택하지 않는다. +zero guide vector, guide vector가 요소 축과 평행한 경우, 또는 zero/near-zero length는 +국부 $y,z$축과 $I_y,I_z$의 의미를 정할 수 없으므로 model validation 오류로 처리한다. +임의의 fallback 축을 조용히 선택하지 않는다. ### 3.2 변위와 회전 부호 @@ -218,6 +228,10 @@ $$ | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | $d_a^l$ | $u_1$ | $v_1$ | $w_1$ | $\theta_{x1}$ | $\theta_{y1}$ | $\theta_{z1}$ | $u_2$ | $v_2$ | $w_2$ | $\theta_{x2}$ | $\theta_{y2}$ | $\theta_{z2}$ | +전역 nodal component 순서는 각 node에서 `[UX, UY, UZ, URX, URY, URZ]`이고, +$\mathbf d_e^l=\mathbf T\mathbf d_e^g$는 이 node/component block 순서를 유지한 채 +국부 $[u,v,w,\theta_x,\theta_y,\theta_z]$로 회전한다. + 요소는 equation id를 소유하지 않는다. 전역 equation numbering과 constrained/free mapping은 프로젝트 아키텍처에 따라 DofManager가 소유해야 한다. @@ -631,6 +645,17 @@ $$ ## 10. Constitutive Contract +승인된 `*BEAM GENERAL SECTION, SECTION=GENERAL` 수학 mapping은 입력 순서 +`A, I11, I12, I22, J`에 대해 + +$$ +\boxed{I_y=I11,\qquad I_z=I22,\qquad I12=0} +$$ + +이다. 여기서 section axis 1은 `n1 -> local y`, section axis 2는 +`t x n1 -> local z`이므로 $I11$은 local $y$축 굽힘의 $I_y$, $I22$는 local +$z$축 굽힘의 $I_z$에 대응한다. $I12\ne0$을 대각 행렬로 근사하지 않는다. + ### 10.1 단면 적분 도심축 조건은 @@ -716,13 +741,14 @@ $$ E>0,\quad G>0,\quad A>0,\quad J>0,\quad I_y>0,\quad I_z>0. $$ -등방성 재료에서 $G$를 $E,\nu$로 계산한다면 +V0의 균질 등방성 재료는 입력의 정확한 $E,\nu$로부터 $$ -G=\frac{E}{2(1+\nu)},\qquad -1<\nu<\frac12 +G=\frac{E}{2(1+\nu)} $$ -를 사용한다. $G$가 독립 입력이면 이 변환은 적용하지 않는다. +를 계산하고 위의 $E>0$, $G>0$ 조건을 적용한다. 독립 $G$ 입력은 승인된 V0 입력 +계약이 아니다. ### 10.3 비주축 단면에 대한 참고식 @@ -928,6 +954,10 @@ Mass와 damping은 현재 선형 정적 범위에서 N/A이다. ### 12.1 일반 일관 분포하중 +이 절과 12.2절은 요소 formulation을 검증하는 constant local line-load kernel의 +수학 계약이다. V0 parser와 CLI는 Abaqus `*DLOAD`를 지원하거나 Domain distributed-load +object를 만들지 않으므로 이 kernel을 해석 pipeline의 지원 하중으로 해석하지 않는다. + 국부 단위길이당 하중 벡터를 $$ @@ -1067,7 +1097,7 @@ $$ 검사 조건은 $$ -\mathbf R\mathbf R^T=\mathbf I_3,qquad +\mathbf R\mathbf R^T=\mathbf I_3,\qquad \det\mathbf R=+1. $$ @@ -1176,7 +1206,7 @@ $$ 로 복구한다. 성분형은 $$ -R_I=\sum_JK_{IJ}d_J-F_I,qquad I\in\mathcal C. +R_I=\sum_JK_{IJ}d_J-F_I,\qquad I\in\mathcal C. $$ ## 16. Output Recovery @@ -1195,42 +1225,52 @@ $$ ### 16.2 일반화 변형률과 단면력 -요청 위치 $\xi_o$에서 +두 Gauss point $\xi_g=\pm1/\sqrt3$에서 일반화 변형률과 generalized section +resultant를 다음과 같이 복구한다. $$ \boxed{ -\boldsymbol\varepsilon(\xi_o)=\mathbf B(\xi_o)\mathbf d_e^l, +\boldsymbol\varepsilon(\xi_g)=\mathbf B(\xi_g)\mathbf d_e^l, \qquad -\mathbf s(\xi_o)=\mathbf D\mathbf B(\xi_o)\mathbf d_e^l.} +\mathbf s(\xi_g)=\mathbf D\mathbf B(\xi_g)\mathbf d_e^l.} $$ 성분형은 $$ -\varepsilon_i(\xi_o)=\sum_aB_{ia}(\xi_o)d_a^l, +\varepsilon_i(\xi_g)=\sum_aB_{ia}(\xi_g)d_a^l, \qquad -s_i(\xi_o)=\sum_jD_{ij}\varepsilon_j(\xi_o). +s_i(\xi_g)=\sum_jD_{ij}\varepsilon_j(\xi_g). $$ -상수 단면 요소에서 $N,T$는 요소 내 상수이고 $M_y,M_z$는 선형이다. 기본 출력 -위치는 두 Gauss point이며 필요하면 $\xi=-1,0,+1$에서도 직접 평가한다. +endpoint section resultant는 별도로 $\xi=-1,+1$에서 $\mathbf D\mathbf B\mathbf d_e^l$을 +직접 평가한 local $[N,T,M_y,M_z]$이다. 이는 양의 local $x$ 면을 기준으로 한 +section-cut 부호를 가지며 endpoint 외향 법선 부호를 곱하지 않는다. 상수 단면 +요소에서 $N,T$는 요소 내 상수이고 $M_y,M_z$는 선형이다. 따라서 Gauss generalized +values와 endpoint section resultant는 위치와 row identity가 서로 다른 결과다. ### 16.3 축응력 -단면점 $(y,z)$의 축응력은 +단면점 $(y,z)$의 axial `S11`은 $$ \boxed{ -\sigma_{xx}(\xi,y,z) +S11(\xi,y,z)=\sigma_{xx}(\xi,y,z) =E\left[\varepsilon_0(\xi) +z\kappa_y(\xi)-y\kappa_z(\xi)\right].} $$ +`S11`은 두 Gauss point와 입력 `*SECTION POINTS`의 각 단면점에서 평가한다. 입력 +section point가 없으면 centroid $(y,z)=(0,0)$을 `source=fesa-default`로 사용한다. +Abaqus section-point 좌표와의 승인 mapping은 $x1=y$, $x2=z$이다. + Euler–Bernoulli 가정은 횡전단변형을 제거하므로 이 정식화만으로 transverse shear stress 분포를 constitutive recovery하지 않는다. 또한 일반 단면의 비틀림 전단응력 분포는 $J$ 하나만으로 결정되지 않으므로 baseline output은 $T$까지로 제한한다. 원형 단면처럼 별도 승인된 section recovery가 있을 때만 -$\tau=T\rho/J$ 형태를 사용한다. +$\tau=T\rho/J$ 형태를 사용할 수 있으나 이는 V0 범위 밖이다. `S11`은 analytical/unit +test와 HDF5 contract로 검증하고 Abaqus beam-stress reference comparison은 명시적 +N/A이다. ### 16.4 요소 끝력 @@ -1249,10 +1289,39 @@ $$ =\mathbf T^T\mathbf f_{\mathrm{end},e}^l. $$ +각 endpoint row의 local component 순서는 $[F_X,F_Y,F_Z,M_X,M_Y,M_Z]$이다. +V0 parser/CLI는 distributed load를 생성하지 않으므로 승인된 해석 pipeline에서는 +$\mathbf f_{\mathrm{dist},e}^l=\mathbf0$이다. 이 경우 $\xi_1=-1$, $\xi_2=+1$에서 +외향 법선 부호를 각각 $n_{\mathrm{out},1}=-1$, $n_{\mathrm{out},2}=+1$로 두면 +5.3절의 자연경계 부호와 + +$$ +F_{X,i}=n_{\mathrm{out},i}N(\xi_i),\qquad +M_{X,i}=n_{\mathrm{out},i}T(\xi_i),\qquad +M_{Y,i}=n_{\mathrm{out},i}M_y(\xi_i),\qquad +M_{Z,i}=n_{\mathrm{out},i}M_z(\xi_i), +$$ + +$$ +F_{Y,i}=-n_{\mathrm{out},i} +\left.\frac{dM_z}{dx}\right|_{\xi_i},\qquad +F_{Z,i}=n_{\mathrm{out},i} +\left.\frac{dM_y}{dx}\right|_{\xi_i} +$$ + +가 일치해야 한다. 따라서 이 V0 조건의 equilibrium end action은 요소 끝에 작용하는 +outward action이고, endpoint section resultant는 동일 section을 양의 local $x$ 면으로 +자른 값이다. Abaqus node-station force row에는 equilibrium end action이 아니라 section +resultant를 동일한 section-cut 부호로 정규화해 비교하며, interior node의 두 endpoint가 +승인 tolerance 안에서 먼저 일치해야 한다. 승인된 component mapping은 +`SF1 -> N`, `SM1 -> My`, `SM2 -> Mz`, `SM3 -> T`이고, CSV에 없는 transverse +`SF2`, `SF3`는 reference comparison 대상이 아니다. + $\mathbf D\mathbf B\mathbf d_e^l$로 얻는 section resultant와 위 equilibrium end action은 분포하중이 있을 때 서로 다른 recovery 표현이다. cubic displacement만으로 uniform transverse load의 quadratic exact moment diagram을 한 요소에서 표현할 수 -없으므로 두 결과를 같은 데이터로 혼동하지 않는다. +없으므로 formulation-only line-load kernel에서는 위 V0 endpoint 관계를 적용하거나 +두 결과를 같은 row로 동일시하지 않는다. ### 16.5 반력 @@ -1272,15 +1341,18 @@ $\mathbf K\mathbf d-\mathbf F$에서 구한다. 이렇게 해야 nodal load, ele ```text for each element e: - read X1, X2, local-y guide a, E, G, A, Iy, Iz, J + read X1, X2, Abaqus first section axis n1, E, nu, A, I11, I12, I22, J + require I12 == 0 + map a = n1, Iy = I11, Iz = I22, G = E / (2 * (1 + nu)) DeltaX = X2 - X1 L = norm(DeltaX) - require L > length_tolerance + coordinate_scale = max(1, norm(X1), norm(X2)) + require L > 1e-12 * coordinate_scale ex = DeltaX / L ey_trial = a - dot(a, ex) * ex - require norm(ey_trial) > orientation_tolerance + require norm(ey_trial) > 1e-12 * max(1, norm(a)) ey = ey_trial / norm(ey_trial) ez = cross(ex, ey) @@ -1305,7 +1377,8 @@ for each element e: form B[4,12] Kl += transpose(B) * D * B * Jx * weight - fl += transpose(Nq) * local_line_load(xi) * Jx * weight + if verifying the formulation-only constant local line-load kernel: + fl += transpose(Nq) * local_line_load(xi) * Jx * weight in verification builds/checks: compare Kl component-wise with the closed-form matrix in Section 11.3 @@ -1319,13 +1392,19 @@ partition global free/constrained DOFs solve Kff * df = Ff - Kfc * dc recover Rc = Kcf * df + Kcc * dc - Fc -for each requested element output location xi_o: +for each element output recovery: de_global = gather global nodal DOFs de_local = T * de_global - epsilon = B(xi_o) * de_local - section_resultant = D * epsilon - recover sigma_xx at requested section points - recover local/global equilibrium end actions + + for each mandatory Gauss point xi_g: + epsilon = B(xi_g) * de_local + section_resultant = D * epsilon + recover S11 at each input section point or the fesa-default centroid + + for each endpoint xi in {-1, +1}: + recover endpoint section_resultant = D * B(xi) * de_local + recover local equilibrium end actions with the endpoint outward-action convention +recover reactions from the assembled residual, not an end-action sum ``` 이 의사코드는 수학적 계산 순서만 정의하며 C++ class, signature 또는 storage API를 @@ -1348,15 +1427,16 @@ convergence 및 결과 해석을 함께 검사해야 한다는 근거를 제공 ### 18.2 행렬 불변량 -허용오차 $\epsilon_K$에 대해 +승인된 normalized matrix 기준은 $$ -\|\mathbf K_e^l-(\mathbf K_e^l)^T\|\le\epsilon_K, +\operatorname{normalized\_error} +(\mathbf K_e^l,(\mathbf K_e^l)^T)\le10^{-12}, $$ $$ -\|\mathbf K_{\mathrm{Gauss}}^l-\mathbf K_{\mathrm{closed}}^l\| -\le\epsilon_K +\operatorname{normalized\_error} +(\mathbf K_{\mathrm{Gauss}}^l,\mathbf K_{\mathrm{closed}}^l)\le10^{-12} $$ 를 검사한다. 자유 요소의 고유치 또는 rank 검사에서는 6개 rigid-body mode와 6개 @@ -1397,10 +1477,13 @@ $$ 각 $k$에 대해 $$ -\|\mathbf K_e^l\mathbf r_k\|\le\epsilon_{\mathrm{rb}} +\operatorname{normalized\_residual} +(\mathbf K_e^l\mathbf r_k)\le10^{-10} $$ -이어야 한다. +이어야 한다. Analytical axial, torsion 및 두 굽힘 평면 응답은 relative $10^{-9}$를 +적용한다. Norm의 무차원화와 rank scale은 Numerical Review에서 이 승인 기준의 의미를 +바꾸지 않는 계산 규약으로 명시한다. ### 18.3 기본 해석해 benchmark @@ -1446,8 +1529,19 @@ $$ \sum\mathbf M_{\mathrm{reaction}}\right\|\le\epsilon_M. $$ -절대/상대/norm tolerance 값은 Requirement 및 Numerical Review 단계에서 별도로 -승인해야 한다. +승인된 B33 reference row는 같은 model, step/frame, quantity, component별로 Abaqus +reference 값만 사용해 + +$$ +\operatorname{reference\_scale}=\max_i|r_i|,\qquad +\operatorname{row\_tolerance}=\operatorname{absolute\_floor} ++10^{-6}\operatorname{reference\_scale} +$$ + +를 적용한다. 승인된 SI bundle의 displacement/rotation floor는 $10^{-9}$, +force/moment floor는 $10^{-3}$이다. Reference 값을 zero-clamp하거나 row를 제거하지 +않으며 missing, extra, duplicate, nonfinite, schema/identity mismatch는 수치 판정 전에 +실패한다. 이 reference policy는 위 formulation/analytical tolerance를 대체하지 않는다. ## 19. Numerical Risks @@ -1456,7 +1550,7 @@ $$ | $L\approx0$ | Jacobian singularity, $L^{-3}$ 발산 | 조립 전 길이 검증 | | guide vector와 $\mathbf e_x$ 평행 | 국부 $y,z$축 미정 | projection norm 검사 후 입력 오류 | | $E,G,A,I_y,I_z,J\le0$ | 비물리/indefinite stiffness | 물성·단면 검증 | -| 짧거나 깊은 beam | 전단변형 누락으로 과도하게 stiff | slenderness 적용범위 명시; Timoshenko 요소로 전환 | +| 짧거나 깊은 beam | 전단변형 누락으로 과도하게 stiff | Euler–Bernoulli 적용 한계로 기록; 승인되지 않은 자동 warning/error threshold를 두지 않고 B31은 지원 요소로 재해석하지 않음 | | open section warping | $GJ/L$만으로 비틀림 부족 | 현재 범위 밖으로 명시 | | 하중이 shear center를 벗어남 | 굽힘–비틀림 결합 누락 | eccentric load를 명시적 force+torque로 환산하거나 후속 기능화 | | $I_y/I_z$ 또는 stiffness scale 극단값 | 전역 condition number 악화 | 단위/스케일 및 solver conditioning 검사 | @@ -1487,30 +1581,40 @@ deficiency는 별도의 under-integration 위험이다. - [[A-First-Course-in-the-Finite-Element-Method|A First Course in the Finite Element Method]]: beam, frame, grid, space-frame 및 isoparametric formulation의 교재 근거 -### 20.2 Wiki gap +### 20.2 근거의 적용 경계 -현재 wiki는 핵심 이론과 source provenance는 제공하지만, 이 문서에서 고정한 -$[u,v,w,\theta_x,\theta_y,\theta_z]$ 순서, $\theta_y=-w'$ 부호, guide-vector -좌표계, 전체 12×12 행렬, 일관 line-load vector 및 HDF5 후보 결과 위치를 한 페이지에 -모은 구현 수준 계약은 제공하지 않는다. 이 세부식은 위 근거와 사용자가 승인한 -범위를 결합해 유도했으며 Numerical Review를 거쳐야 한다. +Tier와 provenance가 정리된 research brief는 +`docs/research/linear-static-3d-euler-beam-research.md`에 있다. Wiki와 원출처는 핵심 +beam 이론과 Abaqus component 의미를 제공하고, 이 문서의 DOF 순서, +$\theta_y=-w'$ 부호, guide-vector 축, 12×12 행렬, line-load vector, 결과 위치와 +tolerance는 승인된 project requirement/design과 결합한 FESA 계약이다. 따라서 exact +Abaqus B33 내부 알고리즘 동등성이나 full compatibility를 주장하지 않는다. -## 21. Open Issues and Downstream Handoff +Research brief의 PARDISO manual 및 deterministic COO-to-CSR 근거 gap은 solver adapter와 +assembly 구현 계획의 handoff이며 이 요소의 수학 정식화를 변경하지 않는다. Endpoint +sign-normalization gap은 5.3절과 16.4절의 outward end action/positive-face section-cut +관계로 명시했으며 Numerical Review가 독립 재유도해야 한다. -### 21.1 공통 open issues +## 21. Resolved Decisions, Remaining Limitations, and Downstream Handoff -1. 승인된 요구조건 문서 - `docs/requirements/3d-isoparametric-euler-beam.md`가 아직 없다. -2. Tier가 부여된 연구 브리프 - `docs/research/3d-isoparametric-euler-beam-research.md`가 아직 없다. -3. Euler–Bernoulli 적용 slenderness 기준과 경고/오류 정책이 미정이다. -4. absolute, relative 및 norm tolerance가 미정이다. -5. 단면 orientation 입력 규약과 $J,I_y,I_z$ 제공 방식이 I/O 단계에서 미정이다. -6. section resultant와 equilibrium end action의 HDF5 dataset 구분이 미정이다. -7. 일반 단면의 torsional shear stress recovery는 현재 범위 밖이다. +### 21.1 Resolved decisions and remaining limitations -이 항목들 때문에 문서 상태는 `needs-research`이며, 정식화 자체를 최종 승인한 것으로 -간주하지 않는다. +1. Requirement와 research source는 Metadata의 실제 Step 0–1 산출물로 해결되었다. +2. Orientation과 section mapping은 `n1 -> local y`, `t x n1 -> local z`, + $I_y=I11$, $I_z=I22$, $I12=0$으로 해결되었다. +3. Geometry validation은 3.1절의 scale-aware length/projection 기준으로 해결되었다. +4. Matrix, residual, analytical 및 B33 reference tolerance는 18절의 승인 기준으로 + 해결되었다. +5. equilibrium end action, endpoint section resultant, Gauss generalized values 및 + section-point `S11`은 16절에서 위치·component·부호가 구분되었다. Stress reference + comparison은 N/A이다. +6. Euler–Bernoulli slenderness는 적용 limitation으로 남는다. 공식 자료의 약 $1/15$ + 지침을 FESA warning/error threshold로 바꾸지 않는다. +7. Torsional/transverse shear stress, warping, $I12\ne0$, B31/Timoshenko 및 `*DLOAD` + parser support는 승인 범위 밖이다. + +현재 Numerical Review를 막는 미해결 수학 입력은 없다. `ready-for-numerical-review`는 +독립 수치 검토 준비 상태이며 정식화 최종 승인이나 release readiness를 뜻하지 않는다. ### 21.2 Numerical Review Agent @@ -1518,22 +1622,27 @@ $[u,v,w,\theta_x,\theta_y,\theta_z]$ 순서, $\theta_y=-w'$ 부호, guide-vector - 4×12 $\mathbf B$ 적분이 12×12 닫힌형과 일치하는지 symbolic/numerical 검사한다. - 6 rigid-body modes, rank 6, symmetry 및 energy invariance를 검사한다. - 자연경계력 $F_y,F_z,M_y,M_z$와 요소 끝력 부호를 검사한다. +- 16.4절의 outward equilibrium end action과 positive-face endpoint section resultant + 관계를 양 endpoint에서 독립 재유도한다. - 2점 Gauss exactness와 1점 적분 rank deficiency를 확인한다. ### 21.3 I/O Definition Agent -- node coordinates, section local-y guide, $E,G,A,I_y,I_z,J$ 입력을 정의한다. +- node coordinates, `n1`, $E,\nu,A,I11,I12,I22,J$ 입력과 승인 mapping을 정의한다. - guide vector 평행, zero length, nonpositive property validation을 정의한다. -- local/global displacement, reaction, end action, section resultant, generalized strain, - axial stress의 HDF5 schema와 위치를 구분한다. +- local/global displacement, reaction, equilibrium end action, endpoint section resultant, + Gauss generalized strain/resultant, section-point axial `S11`의 HDF5 schema와 위치를 + 구분한다. - Abaqus keyword subset은 별도 승인 범위만 정의하며 full compatibility를 주장하지 않는다. ### 21.4 Reference Model Agent - axial cantilever, torsion cantilever, $y/z$ 양방향 bending cantilever를 분리한다. - local 축과 일치하는 모델 및 임의 3차원 회전 모델을 모두 준비한다. -- uniform line load, end force, end moment 및 mixed 3D load 모델을 포함한다. -- reference artifact 생성이나 수정은 승인된 reference phase에서만 수행한다. +- formulation-only uniform line-load kernel은 unit/analytical coverage로 두고 `*DLOAD` + reference support로 확대하지 않는다. +- 승인된 `reference/cantilever beam/`의 exact legacy path를 read-only로 유지하고 + reference artifact를 생성·수정·복원하지 않는다. ### 21.5 Implementation Planning Agent