Files

4.6 KiB
Raw Permalink Blame History

3D Euler–Bernoulli beam 선형 정적 해석

목적과 경계

직선 2절점 B33의 축변형·비틀림·두 방향 굽힘을 해석한다. Prismatic general section, 등방 선형탄성, 작은 변형·회전이 대상이다. B31 전단변형 beam, I12!=0 결합 단면, 소성·좌굴·동적 beam은 포함하지 않는다. LocalEquivalentLoad는 정식화 검산용이며 공개 beam DLOAD 지원을 뜻하지 않는다. 공통 실행·소유권·수치 비교 규칙은 solver-core, 수식·부호·좌표·복구 위치 원문은 정식화를 따른다.

채택한 수식과 이유

각 절점은 global [UX,UY,UZ,URX,URY,URZ]를 가지며 요소는 12 DOF다. Connectivity가 local x를, 입력 guide의 x 직교 투영이 local y를 정하고 z는 외적이다. 퇴화 길이·평행 guide를 임의 축으로 대체하지 않는다. G=E/(2(1+nu)), Iy=I11, Iz=I22이며 양의 A,Iy,Iz,J를 요구한다. 축·비틀림과 Hermite 굽힘의 local stiffness를 두 점 Gauss 순서로 계산하고 global로 변환한다. Endpoint outward action과 단면력은 같은 이름의 값이 아니므로 부호를 별도로 복구한다. 단면 응력은 입력 section point의 local 위치에서 S11로 복구한다. Section point 생략 시 centroid는 fesa-default identity를 가진다.

입력과 결과 대응

*ELEMENT,TYPE=B33, *BEAM GENERAL SECTION,SECTION=GENERAL,ELSET=...,MATERIAL=...를 사용한다. 단면 첫 행은 A,I11,I12,I22,J, 둘째 행은 guide vector다. *SECTION POINTS의 x1,x2는 local y,z 좌표이며 입력 순서를 보존한다. Part·set·identity instance, *ELASTIC, DOF 1–6 *BOUNDARY와 step *CLOAD를 지원한다. 선형 *STATIC의 네 양수 field는 호환성 값이며 증분 loop를 만들지 않는다. 단일 step 결과의 storage identity는 Step-1, frame 0이다. Instance transform, include와 미지원 model keyword는 실패하며 output 요청 allowlist만 warning no-op이다.

HDF5 /steps/Step-1/frames/0 아래 nodal displacement/reaction과 element/section_resultant, end_force_local, generalized_strain, generalized_resultant, stress_s11을 서로 다른 위치 identity로 저장한다.

원본 reference/cantilever beam/ 비교 의미
cantilever beam.inp, cantilever beam displacements.csv 11 nodes의 U1–3→UX–UZ, UR1–3→URX–URZ
cantilever beam reactions.csv RF1–3와 RM1–3의 global nodal reaction
cantilever beam elemental forces.csv 10 elements×2 endpoint; SF1→N, SM1→My, SM2→Mz, SM3→T

Key는 frame·instance·source node이며 endpoint는 source element도 포함한다. 공유 절점의 여러 endpoint를 평균하지 않는다. Abaqus stress equality gate는 없다. 각 family는 reference-only S=max(abs(reference))를 쓴다. abs(reference)<=0.01*S는 absolute error <=0.01*S, 그 밖은 relative error <=5%이며 모든 row와 RMS(error)/S<=1%를 함께 요구한다. S=0이면 FESA도 exact zero다. Free residual·force/moment balance의 내부 정규화 한계는 1e-10이다.

구현과 수명

EulerBeam3D의 Create, LocalStiffness, RecoverBeam이 local 계산을 소유한다. 구현을 대조한다. Domain의 semantic definition은 equation을 저장하지 않으며 AnalysisModel은 non-owning view다. DofManager의 stable mapping→local contribution→ordered global assembly 순서로 진행한다. LinearStaticProcedureExecutor는 Kff factorization 뒤 Ff-Kfc*dc를 풀고 full residual K*d-F로 반력과 평형을 복구한다. BeamResultRecovery는 typed recovery candidate를 채운다. Writer는 검증된 candidate만 직렬화하며 실패한 결과가 기존 최종 HDF5를 덮지 않게 한다.

검증 의미와 교훈

기존 beam reference 비교와 analytical·rigid-mode·endpoint 부호 검산의 통과 기록이 있다. 이 문서 정리는 현재 revision의 새 실행이나 외부 solver 재실행을 뜻하지 않는다. Dense matrix 크기 곱 overflow를 할당 전에 검사하게 된 결함 이력을 기억한다. 빌드 실패 후 No tests were found는 통과가 아니며 discovery와 실행을 함께 확인한다. 변위 일치만으로 단면 응력·반력·end action 정확도를 추론하지 않는다. 외부 검증은 지정된 하나의 cantilever bundle이며 일반 단면·곡선 beam coverage를 주장하지 않는다.