Skip to main content

RigidZone

Struct RigidZone 

Source
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

Source

pub fn face_i_or_zero(&self) -> f64

i 端の柱フェース距離 [mm]。未算定は 0 として扱う

一覧表示・図など、未算定でも破綻しない用途にだけ使うこと。計算には Self::clear_span_from を使い、未算定を検出できるようにする。

Source

pub fn face_j_or_zero(&self) -> f64

j 端の柱フェース距離 [mm]。意味は Self::face_i_or_zero と同様。

Source

pub fn clear_span_from(&self, geom_len: f64) -> Option<f64>

節点間長 geom_len から両端の柱フェース距離を差し引いた内法長 [mm]。

両端とも算定済みのときだけ Some を返す。未算定(None)のまま 節点間長で代用すると、RC/SRC 梁の自重・数量・終局耐力が過大になるため、 呼び出し側に未算定を気づかせる。負にはならないよう 0 で下限を切る。

Source

pub fn faces_computed(&self) -> bool

柱フェース距離が両端とも算定済みか。

Source

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 とは別物)。

Source

pub fn rigid_length_i(&self) -> f64

i 端の剛体アーム長 [mm](剛域長と仕口パネル分オフセットの大きい方)。

可撓長の控除・剛域変換・幾何剛性・せん断降伏の内法高さ・座屈長さの剛度比は、 いずれもこの値を用いる。

Source

pub fn rigid_length_j(&self) -> f64

j 端の剛体アーム長 [mm]。意味は Self::rigid_length_i と同様。

Trait Implementations§

Source§

impl Clone for RigidZone

Source§

fn clone(&self) -> RigidZone

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for RigidZone

Source§

impl Debug for RigidZone

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for RigidZone

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for RigidZone

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for RigidZone

Source§

fn eq(&self, other: &RigidZone) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for RigidZone

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for RigidZone

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.