Loading
611梁要素の節点・要素応力の復元処理を追加 (#477)
close #477 (closed)
概要
要素タイプ 611(fe_beam2n、2節点6自由度梁)は応力・ひずみ・MISES・NQMがすべて0で出力されていた(641は正常)。#477 (closed) 参照。
原因
fstr_NodalStress6Dが非シェル要素をすべてスキップしていた(if( .not. hecmw_is_etype_shell(ic_type) ) cycle)ため、611が一切処理されなかった。- 6自由度梁の応力復元ルーチンが存在しなかった。
UpdateST_Beamは内力ベクトルを組むのみでgausses%stressを設定しない。
(641は不具合ではない。A641 テストで応力が0なのは、断面復元点(材料サブアイテムの radius/angle)が未指定で復元点が断面中心と一致し、純曲げ梁では中心の軸応力が0になるため。)
修正
m_static_LIB_beamにNodalStress_Beam、NQM_Beam、ElementalStress_Beamを追加。641と同じ Euler-Bernoulli 断面復元式を6自由度の局所運動学に直接対応付けた。fstr_NodalStress6Dで611を分岐(梁ではシェル層平均化を行わないようntot_lyrもリセット)。
既存ルーチンは無改変(追加のみ)。静解析・動解析のいずれも fstr_NodalStress6D を使うため、両経路とも修正される。
検証
- 断面復元点(
radius=0.5)を与えると、片持ち梁の固定端で解析解の曲げ応力を再現:σ = M·c/I = 10·0.5/0.0833 = 60.0(MISES 158.7)。641の結果と約7桁一致。NQMも M = P·L = −10.0、Q = P = 1.0 となり妥当。 - 回帰なし:シェル+梁ケース(A731/741/761/781、C731/741、E731/741、A611、A641)は公式の
compare_res.pl(相対許容 1e-4)で全て PASS。A611/A641の参照結果(復元点なし→断面中心応力0)はバイト単位で一致。
補足
611と641の BEAM_NQM の成分の並び順の差異は別件 #435 (closed) の主題であり、本MRのスコープ外(611は標準の節点ごと N,Qy,Qz,Mx,My,Mz の並びを採用)。
Edited by inagaki