pub struct RigidZone {
pub length_i: f64,
pub length_j: f64,
pub source_i: ZoneSource,
pub source_j: ZoneSource,
pub face_i: Option<f64>,
pub face_j: Option<f64>,
pub panel_offset_i: f64,
pub panel_offset_j: f64,
}Expand description
部材端の剛域(接合部の有限寸法)。可とう長 L’ = L − 剛体アーム長。 力学計算は sc-element 側。ここではモデルに保持・永続化するデータ。
次の 3 つは別概念(設計書 §6.2.1、計算根拠 4.1.4・4.1.5)。
length_i/j: 剛域の自動算定・手動指定による剛域長λ = Lf − D_self/4。 壁の考慮など、モデル化の設定によって変わりうる。panel_offset_i/j: 仕口パネルを設けた接合部で、部材がパネル面まで離れて 接合することによるオフセット。部材配置から決まる幾何量。face_i/j: 断面算定・危険断面位置(§6.2.3)に使う柱フェース距離D_orth/2。 接合関係と断面せいだけで一意に決まる幾何量で、剛域長の設定には左右されない。
剛性計算に効く剛体アームの長さは Self::rigid_length_i /
Self::rigid_length_j で取る。剛域長とパネルオフセットの大きい方になる。
Fields§
§length_i: f64§length_j: f64§source_i: ZoneSource§source_j: ZoneSource§face_i: Option<f64>柱フェース距離 [mm](節点→フェース、= 接合する直交部材せい/2)。
None は「まだ算定していない」を表す(直交材がなくフェース距離が
0 の端は Some(0.0))。両者を 0 で混同すると、算定前に読んだ側が
「フェース距離 0=節点間長」として計算を進めてしまい、危険断面位置や
RC/SRC 梁の自重が静かに誤る。
値を埋めるのは squid_n_element::frame::beam::apply_auto_rigid_zones(解析の各入口が
呼ぶ)。キャッシュを当てにできない場所からは、幾何そのものを返す
crate::face_distance::face_distances を直接使うこと。
読み出しは Self::face_i_or_zero(表示用)と
Self::clear_span_from(計算用)を使うこと。
face_j: Option<f64>柱フェース距離 [mm](j端)。意味は face_i と同様。
panel_offset_i: f64仕口パネル分のオフセット [mm](i 端)。パネルがない端は 0。
剛域長 length_i とは別に保持する。剛域の自動算定
(apply_auto_rigid_zones)は Auto 端の length_i を無条件に再算定するため、
同じ場所へ入れると解析経路によってオフセットが消える。
panel_offset_j: f64仕口パネル分のオフセット [mm](j 端)。意味は panel_offset_i と同様。
Implementations§
Source§impl RigidZone
impl RigidZone
Sourcepub fn face_i_or_zero(&self) -> f64
pub fn face_i_or_zero(&self) -> f64
i 端の柱フェース距離 [mm]。未算定は 0 として扱う。
一覧表示・図など、未算定でも破綻しない用途にだけ使うこと。計算には
Self::clear_span_from を使い、未算定を検出できるようにする。
Sourcepub fn face_j_or_zero(&self) -> f64
pub fn face_j_or_zero(&self) -> f64
j 端の柱フェース距離 [mm]。意味は Self::face_i_or_zero と同様。
Sourcepub fn clear_span_from(&self, geom_len: f64) -> Option<f64>
pub fn clear_span_from(&self, geom_len: f64) -> Option<f64>
節点間長 geom_len から両端の柱フェース距離を差し引いた内法長 [mm]。
両端とも算定済みのときだけ Some を返す。未算定(None)のまま
節点間長で代用すると、RC/SRC 梁の自重・数量・終局耐力が過大になるため、
呼び出し側に未算定を気づかせる。負にはならないよう 0 で下限を切る。
Sourcepub fn faces_computed(&self) -> bool
pub fn faces_computed(&self) -> bool
柱フェース距離が両端とも算定済みか。
Sourcepub fn flexible_length_from(&self, geom_len: f64) -> f64
pub fn flexible_length_from(&self, geom_len: f64) -> f64
節点間長 geom_len から両端剛体アーム長を控除した可撓長 [mm]。
geom_len − rigid_length_i − rigid_length_j。控除後が実質 0 以下
(1e-6 mm 以下)の異常入力では geom_len へフォールバックする
(剛域長の過大指定で可撓長が 0 付近に縮退するのを防ぐ)。
座屈の内法長・プッシュオーバーせん断の内法スパン・材端バネの可撓長が
共通で用いる(剛域フェイス距離 Self::clear_span_from とは別物)。
Sourcepub fn rigid_length_i(&self) -> f64
pub fn rigid_length_i(&self) -> f64
i 端の剛体アーム長 [mm](剛域長と仕口パネル分オフセットの大きい方)。
可撓長の控除・剛域変換・幾何剛性・せん断降伏の内法高さ・座屈長さの剛度比は、 いずれもこの値を用いる。
Sourcepub fn rigid_length_j(&self) -> f64
pub fn rigid_length_j(&self) -> f64
j 端の剛体アーム長 [mm]。意味は Self::rigid_length_i と同様。