次へ 上へ 前へ 目次へ
次へ:Buckling calculations 上へ:Filling and solving the 前へ:Nonlinear calculations 目次へ

周波数計算

周波数計算は、周期対称性の無い構造体ではサブルーチン arpack.c で、周期対称性の有る構造体では arpackcs.c で行なわれます。周波数計算は以下の手順を踏みます。

固有値と固有モードはシフト逆転モードで解かれます。これは ARPACK のモード3に相当します([41])。以下の様な系を解きたいとしましょう。

$\displaystyle \begin{bmatrix}K \end{bmatrix} \begin{Bmatrix}U \end{Bmatrix} = \omega^2 \begin{bmatrix}M \end{bmatrix} \begin{Bmatrix}U \end{Bmatrix}$ (390)

この時、シフト逆転モードでは以下を解くアルゴリズムを要求します。

$\displaystyle \begin{bmatrix}K - \sigma M \end{bmatrix} \begin{Bmatrix}U \end{Bmatrix} = \begin{Bmatrix}X_1 \end{Bmatrix}$ (391)

また以下の計算も必要です。

$\displaystyle \begin{Bmatrix}Y \end{Bmatrix} = \begin{bmatrix}M \end{bmatrix} \begin{Bmatrix}X_2 \end{Bmatrix}$ (392)

ここで {X1}、{X2}は所与であり、σ はパラメーターです。CalculiX ではこれは1に設定されています。固有値と固有モードを決定するために反復処理中にこれらの演算が使用されます。最初の演算では SPOOLES が使用されます。SPOOLES じゃ LU 分解を用いて系を解きます。この分解は ARPACK によって始められる反復ループの前に行なわれます。これは式(391)の左辺側は常に同じであるためです。ループ内で行なわれるのは後退代入だけです。2番目の演算(式(392))はルーチン op.f で行なわれ、ごく簡単な行列操作です。このルーチンは行列の保存スキームに依存することに注意してください。

周期対称性の有る構造体では以下の追加処理を行う必要があります。


次へ 上へ 前へ 目次へ
次へ:Buckling calculations 上へ:Filling and solving the 前へ:Nonlinear calculations 目次へ
guido dhondt 2016-03-08