OpenSees Blog 日本語 目次

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

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







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

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


2015年3月31日火曜日

<有限要素法>荷重データの処理 と まとめ


入力された外力(荷重データ)から、固定されていない成分のみのデータを作成します。
これは、<有限要素法>固定条件の処理 で作成したconstraint_sequence[ ] を再利用します。


最初に、外部から入力されたデータから、固定されているNodeの外力x成分loading_point_x[ ];、及び y成分loading_point_x[ ];をシーケンシャルに並べますloading_force_TF[ ]。


for (point_index=0; point_index<point_num; point_index++) {
loading_force_TF[2*point_index]   = loading_point_x[point_index];
loading_force_TF[2*point_index+1] = loading_point_y[point_index];
}

constraint_sequence[ ]を使用して、計算する必要のない成分(=固定されている成分)の外力成分を抜き去っていき、valid_loading_force[ ]  を作成します。

for (int i = 0; i < valid_point_num; i++)
valid_loading_force[i]=loading_force_TF[constraint_sequence[i]];


以上、 <有限要素法>荷重データの処理 のプログラムをまとめたものは、以下の様になります。

(途中、いらなくなったメモリを解放しています)




次のページ →
<有限要素法>変位の計算 


「有限要素法における平面トラスの解析」プログラムをC言語で書いてみる : 目次

2015年3月24日火曜日

<有限要素法>固定条件の処理 (まとめ)


<有限要素法>固定条件の処理 のプログラムをまとめたものは、以下の様になります。
(途中、いらなくなったメモリを解放しています)


次のページ →
<有限要素法>荷重データの処理 と まとめ



「有限要素法における平面トラスの解析」プログラムをC言語で書いてみる : 目次

2015年3月15日日曜日

OpenSees Developer : ソースコードのダウンロードとビルド

OpenSeesのソースコードをダウンロードして、Microsoft Visual C++ 2010 Expressでビルドする方法についての説明です。

OpenSeesのソースコードを、機能向上、品質向上のためにUploadする場合、およびライセンスについての注意事項は、こちらをみてください。

<準備>
1) Microsoft Visual C++ 2010 Express とSP1をインストールします。
これらのプログラムのダウンロードはここ、および使い方は、ここにあります

2) tclの32bit版を
C:\Program Files\Tcl\include
にインストールします
tclの32bit版のダウンロードの仕方はここをみてください。

3) OpenSeesのソースコードはSubVersionを使って管理していますので
SubVersionをインストールしてください。

4) OpenSeesのソースコードをSubVersionを使ってダウンロードします。
Versionは
Version 2.4.3 - Release Tag 5621
を使いました。 2015/1 現在 2.4.4では、ビルドできなかったので 2.4.3を使っています。
ソースコードのダウンロートの仕方は、ここを見てください。

<ビルド>
1) ここでは、OpenSeesのソースコードは
C:\Opensees-Work\OpenSees5621
にダウンロードしました。
このソースコードを、Microsoft Visual C++ 2010 Express(MSVS)に読み込ませます。
C:\Opensees-Work\OpenSees5621\OpenSees\Win32\Opensees.sln
ファイルがMSVSのソリューションファイルです

2) たくさんのプロジェクトが読み込まれますが、
この中の OpenSeesがメインのプロジェクトです。
これをビルドするために、「OpenSees」の上で右クリックして、「スタートアッププロジェクトに設定」を
クリックします。(OpenSeesnプロジェクトが太字になります)


























3) 試しに、"Opensees" プロジェクトをリビルドしますと、 たくさんコンパイルエラーがでるので、これを無くして行きます

<コンパイル>
1)  tcl.h をIncludeしているプロジェクトが、"tcl.hが見つからない” というコンパイルエラーを出すので
tcl.hがある
C:\Program Files\Tcl\include
を、コンパイルエラーを出したプロジェクトのinclude ディレクトリに入れます

対象となるプロジェクト名は、以下の通りです
tcl
reliability
actor
material
element
domain
database
opensees
damage
recorder
optimization

最初に、対象となるプロジェクトの上で右クリックし、「プロパティ」をクリックします



「VC++ディレクトリ」 の中の、「インクルードディレクトリ」を選択します






<編集>をクリックすると、下記のダイアログボックスがでてきますので、
ここに
C:\Program Files\Tcl\include
を入力します





これで、
「VC++ディレクトリ」 の中の、「インクルードディレクトリ」
は、
C:\Program Files\Tcl\include;$(IncludePath)
となります

2) element プロジェクトのinclude ディレクトリに
 "...\OpenSees\OTHER\Tringle" and  "...\OpenSees\OTHER\tetgen1.4.3"
を入れます

<リンク>
1)”tcl85.lib、tk85.lib がリンクできない”、というエラーがでるので
Openseesのリンクディレクトリに
C:\Program Files\Tcl\lib
を追加します

最初に、OpenSeesプロジェクトの上で右クリックし、「プロパティ」をクリックします





「リンカー」の「全般」のところの「追加のライブラリディレクトリ」を選択します



<編集>をクリックすると、下記のダイアログボックスがでてきますので、
ここに
C:\Program Files\Tcl\lib
を入力します




----------------------------------------------------
以上で、OpenSeesのソースコードのビルドができるようになり、作成したOpenSees.exeをMSVS上で走らせることによって、ソースコードをDebug Modeで解析できるようになります。

なお、ビルドで作成したOpenSees.exeは
C:\OpenSees-work\OpenSees5621\OpenSees\Win32\bin\openSees.exe
にあります。これは32bit版です。
----------------------------------------------------

<Debug mode での OpenSeesの走らせ方>

1) システムの環境設定 で、 windowsのpathにc:\programfiles\tcl\bin (32bitのtclのダイナミックリンクライブラリ)をセットします。セットの仕方は、下記を参照してください
http://visualstudiostudy.blog.fc2.com/blog-entry-6.html

pathは、以下のようにセットしてください
%PATH%C:\Program Files\Tcl\lib;C:\Program Files\Tcl\bin;

2)OpenseesのコマンドがセットされているtclスクリプトファイルをMSVSにセットします
たとえば、
C:\Opensees-Work\OpenSees5621\truss-test.tcl
のスクリプトファイルを使用したい場合は、
最初に、OpenSeesプロジェクトの上で右クリックし、「プロパティ」をクリックします。






次に
「デバッグ」の「作業ディレクトリ」を選択し、使用するスクリプトファイル
C:\Opensees-Work\OpenSees5621\truss-test.tcl
を入力します。




これで
ソースコードをDebug Modeで解析できるようになります。


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

2015年3月10日火曜日

<有限要素法>固定条件の処理


節点(Node)の内、固定されているところは、剛性マトリクスとして、考慮する必要がないので、要素剛性マトリクス算出で算出した、全体の剛性マトリクスから固定されている成分を除いて、固定されていない成分のみの、全体の剛性マトリクスの作成します。

これにより、後に計算する変位の算出(連立方程式を解く)時に、計算量を減らすことができます。

ここで出力される
固定されていない成分のみの、全体の剛性マトリクス
のシンボルは、all_valid_ESmatrix_EK[x][y] です。

最初に、外部から入力されたデータから、固定されているNodeのx成分fix_point_x[ ];、及び y成分fix_point_y[ ];をシーケンシャルに並べますconstraint_IB[ ]。


for (point_index=0; point_index<point_num; point_index++) {
constraint_IB[2*point_index]   = fix_point_x[point_index];
constraint_IB[2*point_index+1] = fix_point_y[point_index];
}


次に、シーケンシャルに並べられたconstraint_IB[ ]の中で、値が0のもの(= 固定されている)成分を
差し引いてゆき、constraint_sequence[ ]に詰め込んでいきます。 ここでvalid_point_numには、固定されていない成分の総数が入ります。

for (int i=0; i<all_point_num; i++) {
if(!constraint_IB[i]) {
constraint_sequence[valid_point_num] = i;
valid_point_num++;
}
}
//valid_point_num--;  0-orignなのでいらない

最後に、要素剛性マトリクス算出で 求めたマトリクスall_ESmatrix_EK[ ] [ ] の中から、constraint_sequence[ ]を使用して、計算する必要のない成分(=固定されている成分)のマトリクス成分を抜き去っていき、all_valid_ESmatrix_EK[ ] [ ] を作成します。

for (valid_point_index_x=0; valid_point_index_x<valid_point_num; valid_point_index_x++) {
for (valid_point_index_y=0; valid_point_index_y<valid_point_num; valid_point_index_y++) {
all_valid_ESmatrix_EK[valid_point_index_x][valid_point_index_y]
= all_ESmatrix_EK[constraint_sequence[valid_point_index_x]][constraint_sequence[valid_point_index_y]];
}
}


次のページ →
<有限要素法>固定条件の処理 (まとめ)


「有限要素法における平面トラスの解析」プログラムをC言語で書いてみる : 目次