平面トラスの剛性マトリクスを作成する部分についてのプログラムです。
theIncIntegrator->formTangent(incrTangent)は、
C:\OpenSees-work\OpenSees5621\OpenSees\SRC\analysis\integrator\IncrementalIntegrator.cpp
または
\analysis\integrator\プロジェクトのIncrementalIntegrator.cpp
にあります。
theSOE->addA(elePtr->getTangent(this),elePtr->getID())
で、
平面トラスの剛性マトリクスの場合の
全体座標系における、全体の剛性マトリクス
が作成されます。
while((elePtr = theEles2()) != 0)
で、elementがある限り(つまり、すべてのelementに対して)
theSOE->addA(elePtr->getTangent(this),elePtr->getID())
マトリクスを加算(赤字部分)しています。
(つまり、すべての要素剛性マトリクスを足し合わせているということで、これから全体の剛性マトリクスが計算されている、ということです)
また
theSOE->addA(elePtr->getTangent(this),elePtr->getID())
各要素剛性マトリクス(赤字)は、elePrtのクラスに代入されます。
ここで使用しているtcl スクリプトファイルは、OpenSees Basic Examples (基本的なトラス解析)
です。
このtclスクリプトファイルの中で、elementは、以下の様にセットしています。
element Truss 1 1 4 10.0 1
element Truss 2 2 4 5.0 1
element Truss 3 3 4 5.0 1
Trussは、 「平面トラスの剛性マトリクス」を求める、という意味ですので、
elePtr->getTangent(this)で、求める要素剛性マトリクスは、「平面トラスの剛性マトリクス」を求める
Trussクラスを使用して、求めています。
Trussクラスでの、剛性マトリクスの説明については
Trussでの剛性マトリクス
を参照してください。
以上の様に、
elePtr->getTangent(this)
で、各要素での「平面トラスの剛性マトリクス」を算出し、
theSOE->addA(.....)
で、すべての要素剛性マトリクスを足し合わせる事によって
全体座標系における、全体の剛性マトリクスを算出しています。
なお、算出された全体座標系における、全体の剛性マトリクスは、
OpenSees Developer :構造計算(静的・線形解析)4
で解説している 実対称正定値帯連立一次方程式を解くための
連立方程式用のマトリクスのクラスのメモリ(theSOE)にダイレクトに代入されています。
次のページ →
OpenSees Developer :構造計算(静的・線形解析)4
OpenSees のソースコード解析に挑戦してみる : 目次 |
0 件のコメント:
コメントを投稿