座標変換
局所座標系の剛性を、力学(局所-全体座標変換)に基づき全体座標系へ変換します。
算定式
フレーム要素は \( e_x = (p_j - p_i)/L \) とし、参照ベクトルの材軸直交成分を正規化して \( e_y \)、右手系の \( e_z=e_x\times e_y \) を構成します。局所 y は断面せい方向であって、強軸まわりの曲げの回転軸ではありません。せい方向の変位・せん断に対応する回転軸は局所 z です(保存断面性能と要素局所軸の対応)。剛性は次式で変換します。
\[ K_{\text{global}} = R^T \cdot K_{\text{local}} \cdot R \]
実装参照:sepika_element::transform::LocalFrame(crates/sepika-element/src/transform.rs)が算定します。
ですが、シェルは規約が逆で \( K_{\text{global}} = R \cdot K_{\text{local}} \cdot R^T \) とします。
断面参照方向の適用条件
線材の断面参照方向は、材軸に直交する局所 y 軸を定めます。有限な零ベクトルや材軸に平行な方向では、全体 X または Y 方向を使って局所軸を補います。有限な大きい値でも単位直交基底を構成できる場合は、その方向を採用します。材軸方向の成分が非常に大きくても、解決可能な直交成分の向きは保持します。非有限値を含む方向、または有限でも単位直交基底を構成できない方向は、その部材の局所座標を必要とする準備・解析・検定で、対象部材と理由を示して拒否します。不正な方向を既定の軸に置き換えたり、退化した軸で剛性・荷重・内力を算定したりしません。
小梁の検定では、需要に使う支持材の断面参照方向、断面フェース、自重作用区間を解決できる必要があります。解決できない場合は、小梁需要を欠いた部分的な検定結果を返さず、対象と理由を示して停止します。この検定の需要に使わない別の一次部材の参照方向は検査対象に含めません。 支持面には、共通局所座標で得られる補完なしの単位直交基底と同じ断面姿勢を使います。有限な参照方向でこの姿勢を解決できる場合、材軸方向成分の投影丸めによって支持面・小梁自重作用区間・小梁需要を変えません。同じ向きの極大値でも、姿勢と結果を保ちます。支持面では、零ベクトル・材軸平行方向を含め、参照方向の材軸直交成分の長さが \(10^{-12}\) 以下なら、一般の局所座標で用いる補完軸を代用せず、支持材と理由を示して停止します。
零長・範囲外の扱い
- 一般の線材で 2 節点が同一座標の場合は材軸を定められないため、局所座標を構成せず計算を拒否します。
- 節点ばねは、節点間距離が \( 10^{-9} \) mm 未満の場合は全体座標系=局所座標系(単位回転)とみなします。ばね定数の未指定は 0(ばねなし)とします。
- 免震支承は、節点間距離が \( 10^{-9} \) mm 未満の場合は鉛直方向を部材軸として局所座標系を組みます(支承は鉛直材のため)。
- 梁用途の主架構では節点・偏心・実材軸・局所軸・断面・材料の不足、不正、非有限や退化材長を対象部材・端・項目と理由付きで拒否します。ほかの既存要素で節点 ID が範囲外の場合は解析前チェックへ委ねます。
実装参照:一般線材の局所座標系と節点 ID 範囲外の座標フォールバックは sepika_element::transform(crates/sepika-element/src/transform.rs の LocalFrame::from_nodes・EndGeometry::of_element)、小梁の支持材フェースと自重作用区間は sepika_core::face_distance::secondary_self_weight_interval(crates/sepika-core/src/face_distance.rs)、節点ばね・免震支承の零長時の扱いは sepika_element::springs::{spring, isolator}(crates/sepika-element/src/springs/)が担います。
梁の鉛直偏心接続
大梁用途の主架構は、弾性梁・ファイバー梁・材端集中ばね梁・マルチスプリング梁のいずれでも、既存の共有解析節点 \(N\) と実材軸端 \(P\) を剛体として接続します。実部材化済みの小梁は主架構として一度だけ扱います。二次部材の小梁を新たに全体剛性へ加えるものではありません。柱・ブレース、一般の三方向偏心入力、有限回転や新しい段違い仕口パネルの適用は対象外です。
各端の初期偏心ベクトルを \(r=P-N\) [mm] とし、微小変位・微小回転に対して次を用います。
\[ u_P=u_N+\theta_N\times r,\qquad \theta_P=\theta_N,\qquad d_P=T d_N \]
接続節点・自由度は移動せず、実材軸と元の断面参照方向から部材の局所軸と初期長を求めます。SLから実材軸を再設定しません。未指定の偏心は0へ補いません。実断面形状を持たなくても解析に必要な断面性能と材料が解決済みなら、実材軸の解析接続を適用できます。
局所軸変換、材軸方向の剛域、端条件を適用した実材軸端の全体座標量に対し、同じ写像で剛性・接線・既存の幾何剛性・内力・部材荷重・質量を接続節点へ戻します。
\[ f_N=T^{\mathsf T}f_P,\quad K_N=T^{\mathsf T}K_P T,\quad M_N=T^{\mathsf T}M_P T \]
材端解放は実部材端に適用します。実材軸端の曲げが0でも、接続節点には \(r\times F_P\) が伝わります。接続のための新しい重量・質量は加えず、既存の部材質量と節点集中質量の方式を保ちます。部材荷重は元の定義と作用区間のまま実材軸で扱い、等価端力を同じ写像で戻します。元の節点荷重を実材軸端へ移動しません。
例えば \(r=(0,0,100)\) mm、実材軸端の \(F_P=(1000,0,0)\) N、\(M_P=0\) なら、接続節点の \(M_{Ny}=100000\) Nmmです。\(\theta_{Ny}=0.001\) radは実材軸端の \(u_{Px}=0.1\) mmに対応し、仮想仕事は双方100 Nmmです。負の偏心では符号が反転し、鉛直力と偏心が平行なら移送モーメントは0です。
検定・断面力図に用いる部材端と危険断面の内力は実部材の内力です。接続節点力・支持反力に現れる移送モーメントを検定用の曲げモーメントへ重ねません。既存仕口パネルの適合は節点側に保ち、その回転から実材軸へ同じ剛体写像を適用します。材軸方向のパネル面距離や剛域長へ鉛直偏心を加算せず、既存の適用条件を満たさない段違い接合は引き続き拒否します。
層切断面の梁負担は、接続節点から実材軸端へ至る両端の剛体腕と実材軸を合わせた経路で評価します。切断面より上(標高が切断面を超える側)にある接続節点の端力と、実材軸上の上側荷重の和から、全交点の符号付き合力を求めます。両腕が同じ切断面を横切る場合も一部材として一度だけ合算し、無荷重の交点力が相殺する場合を含めます。切断面上の経路端点は上側へ含めず、集中荷重が切断面に一致する場合は既存のi端側極限を保ちます。性能曲線の層内荷重も実材軸の標高で分類し、実材軸端の部材荷重を、偏心で離れた固定接続節点へ直接作用する節点荷重と同一視しません。
地動の慣性入力は、拘束自由度を含む質量と一様並進・鉛直軸まわりの回転の影響ベクトルで先に \(M r_g\) を求め、その後に自由自由度へ抽出して既存の拘束縮約を適用します。これにより、並進が拘束され回転が自由な節点でも、偏心に対応する回転慣性入力を保持します。偏心0の整合質量でも固定端側の地動寄与を含み、対角の節点集中質量への入力は従来と同じです。減衰モデル・時間積分法は変更しません。
実装参照:実材軸端は Model::primary_beam_axis_ends(crates/sepika-core/src/model/beam_placement.rs)、接続写像と荷重合成は sepika_element::frame::eccentric(crates/sepika-element/src/frame/eccentric.rs)、地動慣性入力は GroundInfluence::build(crates/sepika-solver/src/dynamic/timehistory/common.rs)が扱います。