OpenSees Blog 日本語 目次

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

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







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

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


2015年1月27日火曜日

OpenSees Developer :構造計算(静的・線形解析)1

C:\OpenSees-work\OpenSees5621\OpenSees\SRC\tcl\commands.cpp

または
tclプロジェクトのcommands.cpp
の中の

int analyzeModel(ClientData clientData, Tcl_Interp *interp, int argc, TCL_Char **argv)

で実行される

result = theStaticAnalysis->analyze(numIncr);

で、構造計算が始まります。(下図参照)





が、その前に構造計算で使用する連立方程式を解くための、クラスをアロケートする必要があります。

ここ で説明がありますとおり、構造計算で使用する線形連立方程式などには、解析するものによって、使用する方程式の解法が違ってきます。どの解法を使うかは、tcl スクリプトによって指定されています。

今回は この tcl スクリプトを使用しています。 その中で、連立方程式の解法に関するコマンドは下記になります。


# Create the system of equation, a SPD using a band storage scheme
system BandSPD

# Create the DOF numberer, the reverse Cuthill-McKee algorithm
numberer RCM

# Create the constraint handler, a Plain handler is used as homo constraints
constraints Plain

# Create the integration scheme, the LoadControl scheme using steps of 1.0
integrator LoadControl 1.0

# Create the solution algorithm, a Linear algorithm is created
algorithm Linear


たとえば、
system BandSPD
の場合、

system のコマンドが実行されるとき、流れるプログラムは、

tclプロジェクトのcommands.cpp
の中の

specifySOE(ClientData clientData, Tcl_Interp *interp, int argc, TCL_Char **argv)
です。




今回は、LAPACKライブラリ(DPBSV)の実対称正定値帯連立一次方程式の解放を使用します。
そのため、
system では、BandSPDが指定されているので、上記の図、オレンジで囲まれた部分にあるとおり、
BandSPDLinLapackSolver

BandSPDLinSOE
のクラスをアロケートしています。

ちなみに、
このクラス領域を使って、実際に実対称正定値帯連立一次方程式を解いているところが、最初に書きました
result = theStaticAnalysis->analyze(numIncr);
です。


次のページ →
OpenSees Developer :構造計算(静的・線形解析)2

ここまでのページの説明は、(静的・線形解析)をもとにして書いてありますが、(静的・非線形解析)の場合でも、同じ流れになります。次の「2」の説明から、プログラムは分かれてきます。
OpenSees Developer : 構造計算(静的・非線形解析) 2 


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

0 件のコメント:

コメントを投稿