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}