メインコンテンツまでスキップ

ShellDeformationEnergyCalculator

Namespace: FEMur.Solver

シェル要素のひずみエネルギーを膜・板曲げに分解して計算するクラス。 DeformationEnergyCalculator は BeamElement / TrussElement しか扱わず シェル要素を読み飛ばすため、シェル専用の計算経路として分離した。 算出手順は要素ごとに次のとおり。T は局所→全体の直交変換行列なので、 その転置が逆変換になる(DeformationEnergyCalculator の梁・トラスと同じ作法)。 uₗ = Tᵀ · u_g E_total = ½ uₗ · (K · uₗ) // drilling を含む要素剛性全体 E_membrane = ½ uₘ · (K_membrane · uₘ) // uₘ = uₗ の各節点 DOF 0,1,5(3n) E_bending = ½ u_b · (K_bending · u_b) // u_b = uₗ の各節点 DOF 2,3,4(3n) E_total − E_membrane − E_bending が drilling ペナルティの寄与になる。 drilling は物理量ではなく数値安定化の項なので、内訳としては出さず合計にのみ含める。 drilling ペナルティは面内変位(DOF 0,1)と面内回転(DOF 5)の差を罰する Hughes–Brezzi 型で 3 つの DOF にまたがるため、局所剛性を DOF で切り出して膜・曲げに分ける方法は使えない。 そのため部分剛性は ShellElement.CalcPartialStiffness から取得する。

public sealed class ShellDeformationEnergyCalculator

Inheritance: System.Object → FEMur.Solver.ShellDeformationEnergyCalculator

View source

Methods​

NameSignatureSummary
Calculate(Model, Result)public List<ShellElementEnergy> Calculate(Model model, Result result)指定した結果を使ってモデル内の全シェル要素のひずみエネルギーを計算する。 シェル要素以外(梁・トラスなど)は対象外として読み飛ばす。