Skip to main content

squid_n_core/model/
node.rs

1//! 節点の型。
2//!
3//! - [`Node`] — 節点(座標・拘束・質量・所属階・支点ばね)。
4
5use super::*;
6
7#[derive(Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize)]
8pub struct Node {
9    pub id: NodeId,
10    pub coord: [f64; 3],
11    pub restraint: Dof6Mask,
12    pub mass: Option<[f64; 6]>,
13    pub story: Option<StoryId>,
14    /// 支点ばね(全体座標系の各自由度ばね剛性)
15    /// `[kx, ky, kz, krx, kry, krz]`(並進[N/mm]・回転[N·mm/rad])。
16    /// `restraint` で固定(`Dof6Mask::is_fixed`)されている自由度の値は無視される
17    /// (固定を優先。ばねと固定支持の二重定義を避ける)。`None` はばね支持なし
18    /// (従来どおり自由 or 固定の二値)。旧スキーマ(本フィールド無し)は
19    /// `None` で補完される。
20    #[serde(default)]
21    pub support_spring: Option<[f64; 6]>,
22}