feat(linear-static-3d-euler-beam): step 2 - formulation-alignment

This commit is contained in:
KOKO\Mimi
2026-08-09 02:33:50 +09:00
parent 6482cf65b9
commit 8e9c3906f2
@@ -3,11 +3,12 @@
## Metadata ## Metadata
- feature_id: `3d-isoparametric-euler-beam` - feature_id: `3d-isoparametric-euler-beam`
- source_requirement: 사용자 요청 및 2026-08-07 범위 확인; `docs/requirements/3d-isoparametric-euler-beam.md`는 아직 없음 - source_requirement: `docs/requirements/linear-static-3d-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`는 아직 없음 - source_research: `docs/research/linear-static-3d-euler-beam-research.md`
- status: `needs-research` - approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
- status: `ready-for-numerical-review`
- owner_agent: `formulation-agent` - owner_agent: `formulation-agent`
- date: `2026-08-07` - date: `2026-08-09`
## 1. 목적과 정식화 요약 ## 1. 목적과 정식화 요약
@@ -65,6 +66,7 @@ $$
### 2.1 포함 범위 ### 2.1 포함 범위
- 2절점 직선 prismatic 공간 beam 요소 - 2절점 직선 prismatic 공간 beam 요소
- Abaqus `TYPE=B33`에만 연결되는 shear-free cubic EulerBernoulli 의미
- small displacement 및 small rotation - small displacement 및 small rotation
- 선형 정적 해석 - 선형 정적 해석
- 균질 선형 탄성 재료 - 균질 선형 탄성 재료
@@ -73,11 +75,13 @@ $$
- 단면 도심을 지나는 국부 $x$축 - 단면 도심을 지나는 국부 $x$축
- 단면 주축과 국부 $y,z$축의 일치: $I_{yz}=0$ - 단면 주축과 국부 $y,z$축의 일치: $I_{yz}=0$
- 보존력과 일관 등가절점하중 - 보존력과 일관 등가절점하중
- formulation 검증용 상수 국부 line-load 등가절점벡터; Abaqus `*DLOAD` 입력은 제외
- 자연좌표 $\xi\in[-1,1]$을 사용하는 1차원 등매개 기하 mapping - 자연좌표 $\xi\in[-1,1]$을 사용하는 1차원 등매개 기하 mapping
### 2.2 제외 범위 ### 2.2 제외 범위
- Timoshenko 전단 변형과 shear correction factor - Timoshenko 전단 변형과 shear correction factor
- Abaqus `TYPE=B31`의 EulerBernoulli 요소 재해석
- 기하비선형, 재료비선형, P$\Delta$, geometric stiffness - 기하비선형, 재료비선형, P$\Delta$, geometric stiffness
- 단면 warping, bimoment 및 warping 자유도 - 단면 warping, bimoment 및 warping 자유도
- shear-center/centroid offset, rigid offset 및 end release - shear-center/centroid offset, rigid offset 및 end release
@@ -97,7 +101,9 @@ $$
### 2.4 단위 ### 2.4 단위
특정 단위계를 고정하지 않고 일관 단위계를 사용한다. 일반 입력에는 특정 단위계를 고정하지 않고 일관 단위계를 사용한다. 승인된
`reference/cantilever beam/` 비교만 외부 계약에 따라 SI를 사용하며, 이 사실은
일반 `.inp` 입력의 단위계를 SI로 추론한다는 뜻이 아니다.
| 양 | 차원 | | 양 | 차원 |
| --- | --- | | --- | --- |
@@ -113,8 +119,10 @@ $$
### 3.1 국부 직교좌표계 ### 3.1 국부 직교좌표계
전역 절점 위치를 $\mathbf X_1,\mathbf X_2\in\mathbb R^3$라 하고 사용자가 전역 절점 위치를 $\mathbf X_1,\mathbf X_2\in\mathbb R^3$라 하고 Abaqus first
제공하는 국부 $y$축 guide vector를 $\mathbf a$라 한다. 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} \begin{aligned}
@@ -147,17 +155,19 @@ $$
e_{zI}=\sum_{J=1}^{3}\sum_{K=1}^{3}\epsilon_{IJK}e_{xJ}e_{yK}. e_{zI}=\sum_{J=1}^{3}\sum_{K=1}^{3}\epsilon_{IJK}e_{xJ}e_{yK}.
$$ $$
다음 조건을 만족해야 한다. 좌표 크기와 guide vector 크기를 반영한 승인된 validation은 다음과 같다.
$$ $$
L>L_{\mathrm{tol}},\qquad L>10^{-12}\max(1,\|\mathbf X_1\|,\|\mathbf X_2\|),\qquad
\|\widetilde{\mathbf e}_y\|>a_{\mathrm{tol}},\qquad \|\widetilde{\mathbf e}_y\|>
10^{-12}\max(1,\|\mathbf a\|),\qquad
\mathbf e_i\cdot\mathbf e_j=\delta_{ij},\qquad \mathbf e_i\cdot\mathbf e_j=\delta_{ij},\qquad
\mathbf e_x\times\mathbf e_y=\mathbf e_z. \mathbf e_x\times\mathbf e_y=\mathbf e_z.
$$ $$
guide vector가 요소 축과 평행하면 국부 $y,z$축과 $I_y,I_z$의 의미가 정해지지 zero guide vector, guide vector가 요소 축과 평행한 경우, 또는 zero/near-zero length는
않으므로 입력 오류로 처리한다. 임의의 fallback 축을 조용히 선택하지 않는다. 국부 $y,z$축과 $I_y,I_z$의 의미를 정할 수 없으므로 model validation 오류로 처리한다.
임의의 fallback 축을 조용히 선택하지 않는다.
### 3.2 변위와 회전 부호 ### 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}$ | | $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 요소는 equation id를 소유하지 않는다. 전역 equation numbering과 constrained/free
mapping은 프로젝트 아키텍처에 따라 DofManager가 소유해야 한다. mapping은 프로젝트 아키텍처에 따라 DofManager가 소유해야 한다.
@@ -631,6 +645,17 @@ $$
## 10. Constitutive Contract ## 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 단면 적분 ### 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. 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 비주축 단면에 대한 참고식 ### 10.3 비주축 단면에 대한 참고식
@@ -928,6 +954,10 @@ Mass와 damping은 현재 선형 정적 범위에서 N/A이다.
### 12.1 일반 일관 분포하중 ### 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. \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 ## 16. Output Recovery
@@ -1195,42 +1225,52 @@ $$
### 16.2 일반화 변형률과 단면력 ### 16.2 일반화 변형률과 단면력
요청 위치 $\xi_o$에서 두 Gauss point $\xi_g=\pm1/\sqrt3$에서 일반화 변형률과 generalized section
resultant를 다음과 같이 복구한다.
$$ $$
\boxed{ \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 \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 \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$는 선형이다. 기본 출력 endpoint section resultant는 별도로 $\xi=-1,+1$에서 $\mathbf D\mathbf B\mathbf d_e^l$을
위치는 두 Gauss point이며 필요하면 $\xi=-1,0,+1$에서도 직접 평가한다. 직접 평가한 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 축응력 ### 16.3 축응력
단면점 $(y,z)$의 축응력 단면점 $(y,z)$의 axial `S11`
$$ $$
\boxed{ \boxed{
\sigma_{xx}(\xi,y,z) S11(\xi,y,z)=\sigma_{xx}(\xi,y,z)
=E\left[\varepsilon_0(\xi) =E\left[\varepsilon_0(\xi)
+z\kappa_y(\xi)-y\kappa_z(\xi)\right].} +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$이다.
EulerBernoulli 가정은 횡전단변형을 제거하므로 이 정식화만으로 transverse shear EulerBernoulli 가정은 횡전단변형을 제거하므로 이 정식화만으로 transverse shear
stress 분포를 constitutive recovery하지 않는다. 또한 일반 단면의 비틀림 전단응력 stress 분포를 constitutive recovery하지 않는다. 또한 일반 단면의 비틀림 전단응력
분포는 $J$ 하나만으로 결정되지 않으므로 baseline output은 $T$까지로 제한한다. 분포는 $J$ 하나만으로 결정되지 않으므로 baseline output은 $T$까지로 제한한다.
원형 단면처럼 별도 승인된 section recovery가 있을 때만 원형 단면처럼 별도 승인된 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 요소 끝력 ### 16.4 요소 끝력
@@ -1249,10 +1289,39 @@ $$
=\mathbf T^T\mathbf f_{\mathrm{end},e}^l. =\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 $\mathbf D\mathbf B\mathbf d_e^l$로 얻는 section resultant와 위 equilibrium end
action은 분포하중이 있을 때 서로 다른 recovery 표현이다. cubic displacement만으로 action은 분포하중이 있을 때 서로 다른 recovery 표현이다. cubic displacement만으로
uniform transverse load의 quadratic exact moment diagram을 한 요소에서 표현할 수 uniform transverse load의 quadratic exact moment diagram을 한 요소에서 표현할 수
없으므로 두 결과를 같은 데이터로 혼동하지 않는다. 없으므로 formulation-only line-load kernel에서는 위 V0 endpoint 관계를 적용하거나
두 결과를 같은 row로 동일시하지 않는다.
### 16.5 반력 ### 16.5 반력
@@ -1272,15 +1341,18 @@ $\mathbf K\mathbf d-\mathbf F$에서 구한다. 이렇게 해야 nodal load, ele
```text ```text
for each element e: 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 DeltaX = X2 - X1
L = norm(DeltaX) L = norm(DeltaX)
require L > length_tolerance coordinate_scale = max(1, norm(X1), norm(X2))
require L > 1e-12 * coordinate_scale
ex = DeltaX / L ex = DeltaX / L
ey_trial = a - dot(a, ex) * ex 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) ey = ey_trial / norm(ey_trial)
ez = cross(ex, ey) ez = cross(ex, ey)
@@ -1305,7 +1377,8 @@ for each element e:
form B[4,12] form B[4,12]
Kl += transpose(B) * D * B * Jx * weight 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: in verification builds/checks:
compare Kl component-wise with the closed-form matrix in Section 11.3 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 solve Kff * df = Ff - Kfc * dc
recover Rc = Kcf * df + Kcc * dc - Fc 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_global = gather global nodal DOFs
de_local = T * de_global de_local = T * de_global
epsilon = B(xi_o) * de_local
section_resultant = D * epsilon for each mandatory Gauss point xi_g:
recover sigma_xx at requested section points epsilon = B(xi_g) * de_local
recover local/global equilibrium end actions 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를 이 의사코드는 수학적 계산 순서만 정의하며 C++ class, signature 또는 storage API를
@@ -1348,15 +1427,16 @@ convergence 및 결과 해석을 함께 검사해야 한다는 근거를 제공
### 18.2 행렬 불변량 ### 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\| \operatorname{normalized\_error}
\le\epsilon_K (\mathbf K_{\mathrm{Gauss}}^l,\mathbf K_{\mathrm{closed}}^l)\le10^{-12}
$$ $$
를 검사한다. 자유 요소의 고유치 또는 rank 검사에서는 6개 rigid-body mode와 6개 를 검사한다. 자유 요소의 고유치 또는 rank 검사에서는 6개 rigid-body mode와 6개
@@ -1397,10 +1477,13 @@ $$
각 $k$에 대해 각 $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 ### 18.3 기본 해석해 benchmark
@@ -1446,8 +1529,19 @@ $$
\sum\mathbf M_{\mathrm{reaction}}\right\|\le\epsilon_M. \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 ## 19. Numerical Risks
@@ -1456,7 +1550,7 @@ $$
| $L\approx0$ | Jacobian singularity, $L^{-3}$ 발산 | 조립 전 길이 검증 | | $L\approx0$ | Jacobian singularity, $L^{-3}$ 발산 | 조립 전 길이 검증 |
| guide vector와 $\mathbf e_x$ 평행 | 국부 $y,z$축 미정 | projection norm 검사 후 입력 오류 | | guide vector와 $\mathbf e_x$ 평행 | 국부 $y,z$축 미정 | projection norm 검사 후 입력 오류 |
| $E,G,A,I_y,I_z,J\le0$ | 비물리/indefinite stiffness | 물성·단면 검증 | | $E,G,A,I_y,I_z,J\le0$ | 비물리/indefinite stiffness | 물성·단면 검증 |
| 짧거나 깊은 beam | 전단변형 누락으로 과도하게 stiff | slenderness 적용범위 명시; Timoshenko 요소로 전환 | | 짧거나 깊은 beam | 전단변형 누락으로 과도하게 stiff | EulerBernoulli 적용 한계로 기록; 승인되지 않은 자동 warning/error threshold를 두지 않고 B31은 지원 요소로 재해석하지 않음 |
| open section warping | $GJ/L$만으로 비틀림 부족 | 현재 범위 밖으로 명시 | | open section warping | $GJ/L$만으로 비틀림 부족 | 현재 범위 밖으로 명시 |
| 하중이 shear center를 벗어남 | 굽힘–비틀림 결합 누락 | eccentric load를 명시적 force+torque로 환산하거나 후속 기능화 | | 하중이 shear center를 벗어남 | 굽힘–비틀림 결합 누락 | eccentric load를 명시적 force+torque로 환산하거나 후속 기능화 |
| $I_y/I_z$ 또는 stiffness scale 극단값 | 전역 condition number 악화 | 단위/스케일 및 solver conditioning 검사 | | $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]]: - [[A-First-Course-in-the-Finite-Element-Method|A First Course in the Finite Element Method]]:
beam, frame, grid, space-frame 및 isoparametric formulation의 교재 근거 beam, frame, grid, space-frame 및 isoparametric formulation의 교재 근거
### 20.2 Wiki gap ### 20.2 근거의 적용 경계
현재 wiki는 핵심 이론과 source provenance는 제공하지만, 이 문서에서 고정한 Tier와 provenance가 정리된 research brief는
$[u,v,w,\theta_x,\theta_y,\theta_z]$ 순서, $\theta_y=-w'$ 부호, guide-vector `docs/research/linear-static-3d-euler-beam-research.md`에 있다. Wiki와 원출처는 핵심
좌표계, 전체 12×12 행렬, 일관 line-load vector 및 HDF5 후보 결과 위치를 한 페이지에 beam 이론과 Abaqus component 의미를 제공하고, 이 문서의 DOF 순서,
모은 구현 수준 계약은 제공하지 않는다. 이 세부식은 위 근거와 사용자가 승인한 $\theta_y=-w'$ 부호, guide-vector 축, 12×12 행렬, line-load vector, 결과 위치와
범위를 결합해 유도했으며 Numerical Review를 거쳐야 한다. 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. 승인된 요구조건 문서 ### 21.1 Resolved decisions and remaining limitations
`docs/requirements/3d-isoparametric-euler-beam.md`가 아직 없다.
2. Tier가 부여된 연구 브리프
`docs/research/3d-isoparametric-euler-beam-research.md`가 아직 없다.
3. EulerBernoulli 적용 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는 현재 범위 밖이다.
이 항목들 때문에 문서 상태는 `needs-research`이며, 정식화 자체를 최종 승인한 것으로 1. Requirement와 research source는 Metadata의 실제 Step 01 산출물로 해결되었다.
간주하지 않는다. 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. EulerBernoulli 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 ### 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 검사한다. - 4×12 $\mathbf B$ 적분이 12×12 닫힌형과 일치하는지 symbolic/numerical 검사한다.
- 6 rigid-body modes, rank 6, symmetry 및 energy invariance를 검사한다. - 6 rigid-body modes, rank 6, symmetry 및 energy invariance를 검사한다.
- 자연경계력 $F_y,F_z,M_y,M_z$와 요소 끝력 부호를 검사한다. - 자연경계력 $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를 확인한다. - 2점 Gauss exactness와 1점 적분 rank deficiency를 확인한다.
### 21.3 I/O Definition Agent ### 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을 정의한다. - guide vector 평행, zero length, nonpositive property validation을 정의한다.
- local/global displacement, reaction, end action, section resultant, generalized strain, - local/global displacement, reaction, equilibrium end action, endpoint section resultant,
axial stress의 HDF5 schema와 위치를 구분한다. Gauss generalized strain/resultant, section-point axial `S11`의 HDF5 schema와 위치를
구분한다.
- Abaqus keyword subset은 별도 승인 범위만 정의하며 full compatibility를 주장하지 않는다. - Abaqus keyword subset은 별도 승인 범위만 정의하며 full compatibility를 주장하지 않는다.
### 21.4 Reference Model Agent ### 21.4 Reference Model Agent
- axial cantilever, torsion cantilever, $y/z$ 양방향 bending cantilever를 분리한다. - axial cantilever, torsion cantilever, $y/z$ 양방향 bending cantilever를 분리한다.
- local 축과 일치하는 모델 및 임의 3차원 회전 모델을 모두 준비한다. - local 축과 일치하는 모델 및 임의 3차원 회전 모델을 모두 준비한다.
- uniform line load, end force, end moment 및 mixed 3D load 모델을 포함한다. - formulation-only uniform line-load kernel은 unit/analytical coverage로 두고 `*DLOAD`
- reference artifact 생성이나 수정은 승인된 reference phase에서만 수행한다. reference support로 확대하지 않는다.
- 승인된 `reference/cantilever beam/`의 exact legacy path를 read-only로 유지하고
reference artifact를 생성·수정·복원하지 않는다.
### 21.5 Implementation Planning Agent ### 21.5 Implementation Planning Agent