feat(linear-static-3d-euler-beam): step 2 - formulation-alignment
This commit is contained in:
@@ -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,6 +1377,7 @@ for each element e:
|
||||
form B[4,12]
|
||||
|
||||
Kl += transpose(B) * D * B * 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:
|
||||
@@ -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
|
||||
|
||||
for each mandatory Gauss point xi_g:
|
||||
epsilon = B(xi_g) * de_local
|
||||
section_resultant = D * epsilon
|
||||
recover sigma_xx at requested section points
|
||||
recover local/global equilibrium end actions
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user