OpenSees Blog 日本語 目次

最初に「このブログをみるためのガイド」をご覧ください。

Update中OpenSees コマンド 日本語解説 の 目次 OpenSeesコマンド はじめての方は「ここから
このblogで使用しているOpenSeesコマンド集は「ここ」 Update中
OpenSees のソースコード 解析に挑戦してみる 目次最初のページは「ソースコードのダウンロードとビルド」
Appendix:C言語での 「有限要素法における平面トラスの解析」目次最初のページは「Microsoft Visual Studioの導入方法」







目次の中で、更新したページにはNewがついています

このブログ内の単語を検索したい場合は、左上OpenSeesロゴの上に検索窓から検索できます。


2015年4月28日火曜日

OpenSees Developer : TIPs : Trussでの剛性マトリクス


OpenSees のコマンド、elementでTrussを設定した場合(たとえば、下記の様なコマンド)

element Truss 1 1 4 10.0 1

での各要素での剛性マトリクスは、
Truss.cppgetTangentStiff( )で 求めています。


Truss::getTangentStiff(void)
{
   if (L == 0.0) { // - problem in setDomain() no further warnings
      theMatrix->Zero();
     return *theMatrix;
   }
    double E = theMaterial->getTangent();
   // come back later and redo this if too slow
   Matrix &stiff = *theMatrix;

   int numDOF2 = numDOF/2;
   double temp;
   double EAoverL = E*A/L;
   for (int i = 0; i < dimension; i++) {
     for (int j = 0; j < dimension; j++) {
              temp = cosX[i]*cosX[j]*EAoverL;
             stiff(i,j) = temp;
             stiff(i+numDOF2,j) = -temp;
             stiff(i,j+numDOF2) = -temp;
             stiff(i+numDOF2,j+numDOF2) = temp;
     }
   }
   return stiff;
}

たとえば、2次元2自由度の場合は
numDOF2 は 2
dimensionは2
が入っています

cosX[0]がcos
cosX[1]がsin
です

L: 長さ
A:断面積
E:ヤング率

stiff(i,j) = temp;
は(0,0)(0,1)(1,0)(1,1)
stiff(i+numDOF2,j) = -temp;
は(2,0)(3,0)(2,1)(3,1)
stiff(i,j+numDOF2) = -temp;
は(0,2)(0,3)(1,2)(1,3)
stiff(i+numDOF2,j+numDOF2) = temp;
は(2,2)(2,3)(3,3)(3,2)
の、剛性マトリクス成分に値が入ります。

そのため、 下記(3.33)の [K] が作成されることになります
(坂田弘安 島崎和司著 学芸出版社 建築構造力学 II  P67参照)






OpenSees のソースコード解析に挑戦してみる : 目次

0 件のコメント:

コメントを投稿