** DEXCSでOpenFOAMを使えるようにする方法 [#ee80e9f3]
 注記:2008/1/3 
 ランチャースクリプトを変更する部分で、機能を追加しました。

#contents

-----------------------------------------
*** はじめに [#b37d08c7]
~ DEXCSは、オープンなCAEソフトウェアをオールインワンにして、普通のパソコンで、誰にでも簡単に使えることを目指したシステムです。~
現在のAdventureをベースとした構造解析以外にも、様々な用途をターゲットとした取り組みを考えています。

~ 「誰にでも簡単に使えるシステム」は、これをさらに1歩進めて、「誰にでも簡単にカスタマイズできる」ことも目指しています。~
ここではそういうカスタマイズの一例として、現時点(2007/12)で機能追加要望のもっとも多い、~
OpenFOAMを組み込む方法について紹介します。
~ OpenFOAMは英国製のCFDソフトウェアで、数年前までは市販ソフトだったのが、~
現在はオープンソースとして公開され、誰でも自由にダウンロードして使うことができます。~
またその機能・性能も、もともと市販ソフトだっただけに、多くの市販ソフトに比べ何ら目劣りする点もありません。
~  OpenFOAMを最初から組み込んだDEXCSも別プロジェクトで開発中で、1年以内にはリリースすることを目標として取り組んでいますが、~
それまで待てないという人は、本記事を参考に、現在のDEXCSをベースに自分自身でカスタマイズすることに挑戦してみてください。
~ 本記事は、DEXCSを ubuntu 7.10 on VMware に移植したシステムをベースに、~
OpenFOAMの最新版(1.4.1)をインストールし、DEXCSから起動できるようにし、~
そうすることによって、OpenFOAMをより使いやすくする方法について解説したものです。

*** まずはダウンロード [#bb64fc67]
+ OpenCFD社のWebサイトへGo!~
&ref(_T-2-1.jpg);~  
+ Dowmloadのページへ~
&ref(_T-2-2.jpg);~
+ Linux 32bit 版~
&ref(_T-2-3.jpg);~
+ ファイル選択~
&ref(_T-2-4.jpg);~
~ 全部で6つのファイルがダウンロードできるようになっています。~
Binary pack, single precision を除いた他のものをすべてダウンロードします。
+ ダウンロード中~
&ref(_T-2-5.jpg);~
+ ダウンロード完了後のデスクトップイメージ~
&ref(_T-2-6.jpg);~

*** OpenFOAMのインストール [#y15ad0db]
~ いよいよOpenFOAMをインストールしますが、~
ここではもっとも簡単な、ユーザー毎のホームディレクトリ以下にバイナリーインストールする方法について説明します。
+ 所定のディレクトリを作成~
&ref(_T-3-1.jpg);~
 ホームディレクトリの下に、OpenFOAMというディレクトリを作り、さらにその下に、
 linuxというディレクトリを作成します。
+ ファイルマネージャで確認~
&ref(_T-3-2.jpg);~
~ 「場所 - ホーム・フォルダ」 です。
+ ホーム・フォルダ(ディレクトリ)~
&ref(_T-3-3.jpg);~
~ 後の操作をやりやすくするのに、ツリー表示に変更しましょう。
+ 同上(ツリー表示)~
&ref(_T-3-4.jpg);~
~ 左の横向きの三角印をクリックしてみましょう
+ ダウンロードしたファイルを所定のフォルダへ移動~
&ref(_T-3-5.jpg);~
+ Drag & Drop でファイルの移動~
&ref(_T-3-6.jpg);~
~ このあたりの操作方法は、Windowsマシンのそれとほとんど変わらないと思います。
+ $HOME/OpenFOAM~
&ref(_T-3-7.jpg);~
+ $HOME/OpenFOAM/linux~
&ref(_T-3-8.jpg);~
+ ダウンロードしたファイルを展開~
&ref(_T-3-9.jpg);~
 tar xzvf OpenFOAM-1.4.1.General.gtgz
+ 展開中。。。~
&ref(_T-3-10.jpg);~
~ 少々時間がかかります。
+ OpenFOAM-1.4.1.linuxGccDPOpt.gtgz~
&ref(_T-3-11.jpg);~
 tar xzvf OpenFOAM-1.4.1.linuxGccDPOpt.gtgz
~ これで、コンパイルの終わった実行モジュールがインストールされます。
+ 残り3つは、$HOME/OpenFOAM/linux にて~
&ref(_T-3-12.jpg);~
 tar xzvf gcc-4.2.1.linux.tgz
 tar xzvf j2sdk1.4._05.linux.tgz
 tar xzvf paraview-2.4.4.linux.tgz
+ インストールテストプログラム~
&ref(_T-3-13.jpg);~
~ コマンド端末画面を開いて、OpenFOAMの環境変数をセットし、インストールテストプログラム(foamInstallationTest)を実行します。
 cd
 . OpenFOAM/OpenFOAM-1.4.1/.OpenFOAM-1.4.1/bashrc 
 foamInstallationTest
+ インストールテストの結果 その1~
&ref(_T-3-14.jpg);~
~ ssh 又は rsh の環境が必要だが、どちらもないという致命的エラーが検出されたと言っています。
~ ここでは、以下、ssh環境を導入します。これは、Synapticパッケージマネージャで簡単にできます。
+ Synapticパッケージマネージャを起動し、sshを探す~
&ref(_T-3-15.jpg);~
~ インストール指定し、関連パッケージも併せて導入インストールします。
+ インストールテストの結果 その2~
&ref(_T-3-16.jpg);~
~ 先ほどのエラーは解消されて、fatal error は残り1つです。
+ エラーの内容確認~
&ref(_T-3-17.jpg);~
~ OpenFOAMの環境変数が、コマンド端末を起動するシェルに組み込まれていないということです。
~ DEXCSでは、起動する毎に組み込む方法を使います(後で設定します)ので、この部分は無視しても良さそうです。
~ 現時点(このコマンド端末)では、OpenFOAMの環境変数がセットされているので、念の為、OpenFOAMが動くかどうか確認しておきましょう。
+ FoamX~
&ref(_T-3-18.jpg);~
+ FoamX起動画面~
&ref(_T-3-19.jpg);~
~ これでOpenFOAMのインストールは完了です。
~ OpenFOAMだけを使いたい場合は、この先のステップは不要で、使いたい場合、コマンド端末を開いて、
 . OpenFOAM/OpenFOAM-1.4.1/.OpenFOAM-1.4.1/bashrc
 FoamX
~ を入力します。OpenFOAMだけを使いたいユーザーは、~
最初の部分(. OpenFOAM/OpenFOAM-1.4.1/.OpenFOAM-1.4.1/bashrc)を~
起動スクリプトシェル($HOME/bashrc)に組み込んでおいても構いません。

*** OpenFOAMをDEXCSランチャーから起動できるようにする [#c6abaf79]
~ DEXCSランチャープログラム(スクリプト)に少々手を加えて、DEXCSランチャーからOpenFOAMを起動できるようにします。
~ スーパーユーザー権限で、テキストエディタを使います。
 sudo gedit /usr/local/bin/adventure-simple-launcher
+ メニューを追加~
&ref(_T-4-1-1.jpg);~
~ 74行目に、
 mc6.add_command(label=u"流体解析(OpenFOAM)",command=self.OpenFOAM)
~ 79行目に、 
 mc7.add_command(label=u"foamToVTK", command=self.foam2vtk)

+ 実行コマンドの内容を定義~
&ref(_T-4-2-1.jpg);~
~ 249行目に、
 def OpenFOAM(self):
  command = ". $HOME/OpenFOAM/OpenFOAM-1.4.1/.OpenFOAM-1.4.1/bashrc;export LANG=C;FoamX"
  os.system(command)
   command = ". $HOME/OpenFOAM/OpenFOAM-1.4.1/.OpenFOAM-1.4.1/bashrc;export LANG=C;FoamX"
   os.system(command)
~ 253行目に、
 def foam2vtk(self):
   casedir_list=askdirectory()
   if casedir_list != () :
     if os.path.isdir(casedir_list) : 
       casedir_array = casedir_list.split("/")
       casedir = casedir_array[-1]
       tkMessageBox.showinfo(message=u"Case Directory\n" + casedir + u"\nを選択しました")
       command = ". $HOME/OpenFOAM/OpenFOAM-1.4.1/.OpenFOAM-1.4.1/bashrc;foamToVTK " + os.getcwd() + " " + casedir
       os.system(command)

~ 以上で終わりです。
~ いかがでしょうか?ちょっとでもプログラミングをかじったことのある人なら、~
追加した部分の意味は理解できると思います。このレベルの改造なら、自分にも出来ると思いませんか?

*** DEXCSランチャーからOpenFOAMの起動例 その1 (別記事にて投稿予定)[#bbf480ca]
~ DEXCSランチャーからOpenFOAMを起動できるようになると、何が嬉しいかというと。。。
~ GUIインタフェース(コマンドを打ち込まない)で、OpenFOAMを使えるようになるという、それだけの事なんですけどね。
~ 実はもう少し嬉しい事というか、本当の狙いは別にあって、次章で実例も紹介しますが、~
本章でまずはubuntu 7.10 on VMware でOpenFOAMが動く、ことを確認してもらうという側面もあります。
~ 以下、別記事になりますが、OpenFOAMに標準のチュートリアル問題を例にして、操作方法を説明します。

*** DEXCSランチャーからOpenFOAMの起動例 その2 (別記事にて投稿予定)[#h33c4e2c]
~ DEXCSランチャーからOpenFOAMを起動する最大の嬉しさは、DEXCSのモデル作成・メッシュ作成機能を転用できるということです。
-- 具体的には、blenderで形状を作成または取り込んで、~
AdventureのTetmesh でメッシュ作成し、それをOpenFOAMで取り込むことができる。
-- しかも、メッシュ作成では、DEXCSのblender用プラグインで、~
流体解析に特有の壁面近傍メッシュを細かくするなどのメッシュ制御も簡単に出来る。
-- そしてもちろん、これら一連の作業を、GUIインタフェースを介して実現できるようになるということです。

*** OpenFOAMのアップデート情報 (別記事にて投稿予定)[#adb0172b]
~ OpenFOAMは現在も日々開発やBugFixが進行中です。~
ここでは、その種のアップデート情報をDEXCSに組み込んだOpenFOAMに反映させた具体例につき紹介していきます。

#counter

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS