pub enum ElementKind {
Beam,
Shell,
Fiber,
MultiSpring,
Wall,
PanelZone,
Brace {
tension_only: bool,
},
NodalSpring,
Isolator,
Damper,
}Variants§
Beam
Shell
Fiber
ファイバー梁要素(積分点断面のファイバー分割による分布塑性モデル)。
MultiSpring
マルチスプリング梁要素(端部塑性化域を軸ばね群で置換したモデル)。
Wall
PanelZone
Brace
一般ブレース(軸材。軸剛性のみのトラス要素。材料力学)。
剛性は軸剛性のみのトラス要素(KB=E·A/L)で評価する。
K 型ブレースの重量配分規則(LoadCfg::k_brace_rule)の適用対象。
tension_only: 引張専用ブレースか(true の場合、弾性解析では剛性を1/2に
モデル化する。弾塑性解析では初期剛性は1倍。本実装既定の「引張と圧縮が
対で存在するとみなす」モデル化)。
NodalSpring
節点バネ要素(ばね要素の変形と自由度。構造力学)。
部材の変形と自由度の考え方では、節点バネは θX=―(非考慮)、
θY=○, θZ=○, γY=○, γZ=○, δX=○。すなわちねじり以外の曲げ・せん断・
軸方向の変形成分を独立なバネ剛性として持ちうる 2 節点要素。
各自由度のバネ定数は ElementData::spring に保持する(局所軸 6 成分)。
Isolator
免震支承材(各免震部材指針)。
2 節点要素で、水平は非線形せん断ばね(マルチシアスプリング=積層ゴム系
バイリニア、または摩擦ばね=弾性すべり支承 Qmax=μN)、鉛直は弾性軸ばね。
特性は Model::isolator_attrs に要素 ID と対で保持する。
Damper
制振ダンパー要素(各制振部材の力学モデル)。
2 節点の軸方向要素で、マクスウェル要素(バネ Kd と粘性ダッシュポットの直列)等で
モデル化する。減衰要素の要素力は節点力として運動方程式へ与えられ、特性は
Model::damper_attrs に要素 ID と対で保持する。
Implementations§
Source§impl ElementKind
impl ElementKind
Sourcepub fn requires_section_and_material(self) -> bool
pub fn requires_section_and_material(self) -> bool
剛性の算定に断面(ElementData::section)の割当が必須な要素種別か。
断面・材料の未割当を検出する検査は、必ず本判定で対象を絞ること。
材料は断面が持つ(Section::material)ため、部材に要るのは断面の割当
だけである。断面が材料を持たない場合も剛性を作れないので、検査は「断面が
割り当てられているか」と「その断面が材料を持つか」の 2 段になる
(Model::element_material)。
必須なのは線材(梁・ファイバー梁・マルチスプリング梁・ブレース)と 面材(シェル・壁)で、断面諸元と材料定数から剛性を作るため、いずれかが 未割当だとゼロ剛性となり解析が成立しない。
一方、次の要素は断面を持たないのが正常な状態であり、未割当として 扱ってはならない。
- 仕口パネル(
PanelZone): 剛性は取り付く柱・梁の断面から求めた実効体積 Ve による。準備計算が自動生成するため、未割当として警告すると生成数だけ 警告が並び、本当に割当が漏れている部材が埋もれる。 - 節点バネ(
NodalSpring): 剛性はElementData::spring(局所軸 6 成分)。 - 免震支承材(
Isolator)・制振ダンパー(Damper): 特性はModel::isolator_attrs・Model::damper_attrsに持つ。
要素種別を追加したときに扱いを決め忘れないよう、網羅 match で書く
(ワイルドカードを使わない)。
Trait Implementations§
Source§impl Clone for ElementKind
impl Clone for ElementKind
Source§fn clone(&self) -> ElementKind
fn clone(&self) -> ElementKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ElementKind
Source§impl Debug for ElementKind
impl Debug for ElementKind
Source§impl<'de> Deserialize<'de> for ElementKind
impl<'de> Deserialize<'de> for ElementKind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for ElementKind
Source§impl PartialEq for ElementKind
impl PartialEq for ElementKind
Source§fn eq(&self, other: &ElementKind) -> bool
fn eq(&self, other: &ElementKind) -> bool
self and other values to be equal, and is used by ==.