先に示した手順で簡単にCode_Saturneが導入できたと思います。小さなインストーラーのみを用いて、自動的にダウンロードして構築するなど、完成度の高いシステムであることが分かります。これよりEDFのCode_Saturne開発への意気込みが、非常に大きと期待されます。
ここでは、インストールしたCode_Saturneの動作確認を、インストールパッケージに入っている例題:examplesを用いて進めたいと思います。その前に、インストール元のディレクトリ~/Downloads/installerの中身を確認しておきます。
$ cd ~/Downloads/installer
ここには、Code_Saturneをインストールするために必要なファイルやオプションパッケージなどがあります。この中で、Code_Saturneのインストールパッケージはcode_saturne-3.0.1.tar.gzで、これを展開したディレクトリがcode_saturne-3.0.1になります。ただし実際にコンパイルにおけるビルドは、code_saturne-3.0.1.buildで行われます。
そこで、code_saturne-3.0.1ディレクトリの内容を確認します。
$ cd code_saturne-3.0.1; ls
インストールに必要なファイルやディレクトリが多数あります。この中で、利用者が取り敢えず直接に必要となるのは、文書:docsと例題:examplesの2つです。他にも有用な情報extras,testsなどがありますが、利用が進んだのちに利用することにします。
なおこのインストールパッケージcode_saturne-3.0.1.tar.gzは、installerからでなく、直接にダウンロードすることもできます。
■ 文書と例題の移動
インストールが完了したら、文書:docsと例題:examplesを、Code_Saturneのファイル保存用ディレクトリ~/CodeSaturneFilesに移動しておきます。
$ cd ~
$ mkdir CodeSaturneFiles
$ cd ~/Downloads/installer/code_saturne-3.0.1
$ cp -r docs examples ~/CodeSaturneFiles
$ cd ~/CodeSaturneFiles; ls
他のファイルは実行に必要ないので、ここでは削除します。以下の手順で行います。
$ cd ~/Downloads
$ sudo rm -r installer installer-3.0.1.tar.gz
(所有者が異なるファイルがあるのでsudoで実行)
■ 文書:docの設定
まずは文書:docsを確認します。
$ cd ~/CodeSaturneFiles/docs; ls
ファイルの名の最後に/があるものが、文書を構成するファイル群を保存した10個のディレクトリです。基本的に文書はTeXで作られており、doxygen, manpages, style などは他の目的の文書です。
Makefile.am autovnv/ doxygen/ manpages/ style/ tutorial/
Makefile.in developer/ install/ refcard/ theory/ user/
以上で示した7つのフォルダのTeXソースを元に、PDF文書が生成されて各ディレクトリ内にあります。同様な文書が、Code_Saturneの公式サイトにも公開されていますが、これらはVer3.0.1に完全に対応しており、ウエブの文書は古い場合もあるので、こちらの利用をお薦めします。
autovnv.pdf developer.pdf install.pdf refcard.pdf theory.pdf tutorial.pdf user.pdf
これらをメニューバーの場所→ホームフォルダーより、ファイルブラウザからダブルクリックして、ドキュメントビューアーよりPDF文書を参照することができます。さらに、code_saturneにはプログラムから、これらの文書を参照する機能があります。これを設定します。
以下の手順で、code_saturneのインストールフォルダに、PDF文書をコピーしておきます。ここでは、例としてrefcard.pdfを行いますが、必要に応じて最後の手順でコピーしてください。
$ cd /opt/salome/code_saturne-3.0.1/share/
$ mkdir -p doc/code_saturne
$ cd doc/code_saturne
$ cp ~/CodeSaturneFiles/docs/refcard/refcard.pdf .
以下のコマンド実行で、指定したPDF文書を、Ubuntuのドキュメントビューアーで表示することができます。
$ code_saturne info -g refcard
■ 例題:examplesの検証
このバージョンのcode_saturneには、以下の4つの例題があります。
1-simple_junction 2-full_domain 3-stratified_junction 4-2Ddisks
これらの説明は、先に移動した文書:doc中のtheory.pdfにあり、以下のように対応しています。
1-simple_junction → P.7 Part II Simple junction testcase
2-full_domain → P.13 Part III Full domain
3-stratified_junction → P.33 Part IV Stratified junction
4-2Ddisks → P.41 Part V Three 2D disks
流体解析では多数のファイルをディレクトリに分けて管理しており、全体を一覧するためにUbuntuのファイルブラウザの一覧表示で見ることができます。ただ様々な操作は端末上で行うので、コマンドよりファイル構成を確認するために、treeコマンドをインストールのときに用いたSynapticを使って導入しておきます。
それでは最初の1番目の例題を検証してみます。フォルダに移動します。
$ cd ~/CodeSaturneFiles/examples/1-simple_junction
そこにはcase1,meshの2つのディレクトリがあり、treeで見ると以下のファイル構成になっています。
$ tree
├── case1
│ └── case1.xml
└── mesh
└── downcomer.des
1: Code_SaturneのCASEディレクトリを作成する
Code_Saturneは、1つ以上のCASEディレクトリを含むSTUDYディレクトリを作成して、そこに流体解析に必要なファイルを配置します。ここでは、最も単純な形として1-simple_junctionをSTUDYディレクトリとして、この中に1つのCASEディレクトリを作ります。なお以下のようにCASE名を指定しない場合は、CASE1になります。
$ code_saturne create
これよりSTUDYディレクトリは、以下のような構成となります。なお、このCASEディレクトリの準備については、先に用意した/home/dexcs/CodeSaturneFiles/docs/userにあるuser.pdfのP.19 3.3 Case preparerに、詳しい説明があります。
詳しい説明は徐々に進めるとして、概要だけをまとめておきます。まずDATAディレクトリには、REFERENCEディレクトリとSaturneGUIスクリプトがあります。
REFERENCEディレクトリには、様々な物性データが集められており、この情報の名前や内容は変更できません。SaturneGUIスクリプトは、Code_Saturneを活用するためのGUIツールの起動用スクリプトです。
次にSRCディレクトリには、REFERENCEディレクトリとEXAMPLESディレクトリがあります。これらはユーザーサブルーチンの情報がまとめられています。
更にSCRIPTSディレクトリには、Code_Saturneの解析実行スクリプトがあります。なおRESUは結果のディレクトリです。
1-simple_junction
├── CASE1
│ ├── DATA
│ │ ├── REFERENCE
│ │ │ ├── cs_user_scripts.py
│ │ │ …
│ │ │ └── meteo
│ │ └── SaturneGUI
│ ├── RESU
│ ├── SCRIPTS
│ │ └── runcase
│ └── SRC
│ ├── EXAMPLES
│ │ ├── cs_user_boundary_conditions-advanced.f90
│ │ …
│ │ └── cs_user_postprocess-sfc.c
│ └── REFERENCE
│ ├── cs_user_atmospheric_model.f90
│ …
│ └── usvosy.f90
├── case1
│ └── case1.xml
└── mesh
└── downcomer.des
2: simple_junctionのデータを準備する
例題の1-simple_junctionには、既に必要がファイルが用意されているので、以下の手順で解析設定情報のxmlファイルを、先に作ったCASEディレクトリのDATAディレクトリにコピーします。
$ cd ~/CodeSaturneFiles/examples/1-simple_junction
$ cp case1/case1.xml CASE1/DATA
次に各ケースで共通で利用するメッシュ情報をMESHディレクトリとして、作成したSTUDYディレクトリ1-simple_junctionの中に、CASEディレクトリと並べて、以下のように例題のmeshディレクトリを利用して用意します。
$ cp -r mesh MESH
3: Code_SaturneのGUIツールを起動する
先に用意した起動スクリプトSaturneGUIを用いて、以下のように起動します。
$ cd CASE1/DATA
$ ./SaturneGUI
解析事例の画像を集めた表示のあるCode_Saturne GUI-3.0.1が起動します。
FileメニューからOpenより、先に用意したcase1.xmlを開きます。ツール上に設定情報が表示されます。
Code_Saturneでは、解析の結果を起動時刻で管理しているので、一旦この設定をFile→Saveで保存して現在時刻の情報とします。
念のためFile→Quitで終了して、再度case1.xmlの設定ファイルを読み込みます。
4: Code_Saturneで流体解析を実行する
左下の設定項目の一覧の中で、最後のCalucutation managemnet を開いて、最後のPreparer batch calculationを選択します。
右下のScript fileパネルの下の、Calculation startのStart calculationボタンを押して実行します。
※なお最初の実行のとき、python2.7/site-packageにおいてmesh関連のエラーがログ表示パネルに赤色で表示され、中断する場合があります。この時は一旦終了して、再度StaurneGUIを起動すると正しく実行できることがあります。原因は不明です。
ログ表示パネルには、以下のように実行の進展が表示されます。以下より、code_saturne-3.0.1を1CPUで単独実行して、結果をCAE1のRESUディレクトリ中の2013062201106に保存したことがわかります。
これより、解析結果の保存ディレクトリ名が、解析時刻の分までで決められているので、1分以内に再実行すると正しく進まないようです。
==(抜粋)==
Code_Saturne is running
Version: 3.0.1
Path: /opt/salome/code_saturne-3.0.1
Result directory: /home/dexcs/CodeSaturneFiles/examples/1-simple_junction/CASE1/RESU/20130622-1106
Single processor code_saturne simulation.
****************************
Preparing calculation data
****************************
Preprocessing calculation
****************************
Starting calculation
****************************
Saving calculation results
****************************
==(抜粋)==
確認できたら、OKを押して終了します。GUIツールもFile→Saveで保存してから、File→Quitで終了しておきます。
5: 解析結果をSalome/ParaViSで確認する
指示どおり、RESUディレクトリに結果が出来ているかを確認します。
$ cd ../RESU; ls -l
解析実行毎に、年月日ー時分として20130622-1106のように結果ディレクトリがあります。ここに移動して確認します。
$ cd 20130622-1106
結果として色々なファイルがあるのですが、解析結果はpostprocessingディレクトリにあるので、移動して確認します。
$ cd postprocessing; ls *.case
ここで、Code_Saturneはデフォルトで、EnSight形式の結果ファイルを出力するので、拡張子がcaseとなるため、上記のように確認すると、RESULTS.caseがあります。次に、EnSight形式はSalomeに組み込まれているParaViSモジュールで読み込むことができます。もちろん単独のParaViewでも可能です。
そこでデスクトップにあるSalomeのアイコンから起動して、モジュールをParaViSに切り替えます。ファイル→ParaViewファイルを開く…で、File of type をEnSight Files( *.case *.CASE *.Case )にしてから、RESULTS.caseをディレクトリを移動して探してから開きます。Applyを押すと赤いモデル空間が表示できます。
ここから先は結果の見方になるので、続く記事でまとめようと思います。以上で、例題:examplesを用いて、Code_Saturneの起動が確認できました。
ここでは、インストールしたCode_Saturneの動作確認を、インストールパッケージに入っている例題:examplesを用いて進めたいと思います。その前に、インストール元のディレクトリ~/Downloads/installerの中身を確認しておきます。
$ cd ~/Downloads/installer
ここには、Code_Saturneをインストールするために必要なファイルやオプションパッケージなどがあります。この中で、Code_Saturneのインストールパッケージはcode_saturne-3.0.1.tar.gzで、これを展開したディレクトリがcode_saturne-3.0.1になります。ただし実際にコンパイルにおけるビルドは、code_saturne-3.0.1.buildで行われます。
そこで、code_saturne-3.0.1ディレクトリの内容を確認します。
$ cd code_saturne-3.0.1; ls
インストールに必要なファイルやディレクトリが多数あります。この中で、利用者が取り敢えず直接に必要となるのは、文書:docsと例題:examplesの2つです。他にも有用な情報extras,testsなどがありますが、利用が進んだのちに利用することにします。
なおこのインストールパッケージcode_saturne-3.0.1.tar.gzは、installerからでなく、直接にダウンロードすることもできます。
■ 文書と例題の移動
インストールが完了したら、文書:docsと例題:examplesを、Code_Saturneのファイル保存用ディレクトリ~/CodeSaturneFilesに移動しておきます。
$ cd ~
$ mkdir CodeSaturneFiles
$ cd ~/Downloads/installer/code_saturne-3.0.1
$ cp -r docs examples ~/CodeSaturneFiles
$ cd ~/CodeSaturneFiles; ls
他のファイルは実行に必要ないので、ここでは削除します。以下の手順で行います。
$ cd ~/Downloads
$ sudo rm -r installer installer-3.0.1.tar.gz
(所有者が異なるファイルがあるのでsudoで実行)
■ 文書:docの設定
まずは文書:docsを確認します。
$ cd ~/CodeSaturneFiles/docs; ls
ファイルの名の最後に/があるものが、文書を構成するファイル群を保存した10個のディレクトリです。基本的に文書はTeXで作られており、doxygen, manpages, style などは他の目的の文書です。
Makefile.am autovnv/ doxygen/ manpages/ style/ tutorial/
Makefile.in developer/ install/ refcard/ theory/ user/
以上で示した7つのフォルダのTeXソースを元に、PDF文書が生成されて各ディレクトリ内にあります。同様な文書が、Code_Saturneの公式サイトにも公開されていますが、これらはVer3.0.1に完全に対応しており、ウエブの文書は古い場合もあるので、こちらの利用をお薦めします。
autovnv.pdf developer.pdf install.pdf refcard.pdf theory.pdf tutorial.pdf user.pdf
これらをメニューバーの場所→ホームフォルダーより、ファイルブラウザからダブルクリックして、ドキュメントビューアーよりPDF文書を参照することができます。さらに、code_saturneにはプログラムから、これらの文書を参照する機能があります。これを設定します。
以下の手順で、code_saturneのインストールフォルダに、PDF文書をコピーしておきます。ここでは、例としてrefcard.pdfを行いますが、必要に応じて最後の手順でコピーしてください。
$ cd /opt/salome/code_saturne-3.0.1/share/
$ mkdir -p doc/code_saturne
$ cd doc/code_saturne
$ cp ~/CodeSaturneFiles/docs/refcard/refcard.pdf .
以下のコマンド実行で、指定したPDF文書を、Ubuntuのドキュメントビューアーで表示することができます。
$ code_saturne info -g refcard
■ 例題:examplesの検証
このバージョンのcode_saturneには、以下の4つの例題があります。
1-simple_junction 2-full_domain 3-stratified_junction 4-2Ddisks
これらの説明は、先に移動した文書:doc中のtheory.pdfにあり、以下のように対応しています。
1-simple_junction → P.7 Part II Simple junction testcase
2-full_domain → P.13 Part III Full domain
3-stratified_junction → P.33 Part IV Stratified junction
4-2Ddisks → P.41 Part V Three 2D disks
流体解析では多数のファイルをディレクトリに分けて管理しており、全体を一覧するためにUbuntuのファイルブラウザの一覧表示で見ることができます。ただ様々な操作は端末上で行うので、コマンドよりファイル構成を確認するために、treeコマンドをインストールのときに用いたSynapticを使って導入しておきます。
それでは最初の1番目の例題を検証してみます。フォルダに移動します。
$ cd ~/CodeSaturneFiles/examples/1-simple_junction
そこにはcase1,meshの2つのディレクトリがあり、treeで見ると以下のファイル構成になっています。
$ tree
├── case1
│ └── case1.xml
└── mesh
└── downcomer.des
1: Code_SaturneのCASEディレクトリを作成する
Code_Saturneは、1つ以上のCASEディレクトリを含むSTUDYディレクトリを作成して、そこに流体解析に必要なファイルを配置します。ここでは、最も単純な形として1-simple_junctionをSTUDYディレクトリとして、この中に1つのCASEディレクトリを作ります。なお以下のようにCASE名を指定しない場合は、CASE1になります。
$ code_saturne create
これよりSTUDYディレクトリは、以下のような構成となります。なお、このCASEディレクトリの準備については、先に用意した/home/dexcs/CodeSaturneFiles/docs/userにあるuser.pdfのP.19 3.3 Case preparerに、詳しい説明があります。
詳しい説明は徐々に進めるとして、概要だけをまとめておきます。まずDATAディレクトリには、REFERENCEディレクトリとSaturneGUIスクリプトがあります。
REFERENCEディレクトリには、様々な物性データが集められており、この情報の名前や内容は変更できません。SaturneGUIスクリプトは、Code_Saturneを活用するためのGUIツールの起動用スクリプトです。
次にSRCディレクトリには、REFERENCEディレクトリとEXAMPLESディレクトリがあります。これらはユーザーサブルーチンの情報がまとめられています。
更にSCRIPTSディレクトリには、Code_Saturneの解析実行スクリプトがあります。なおRESUは結果のディレクトリです。
1-simple_junction
├── CASE1
│ ├── DATA
│ │ ├── REFERENCE
│ │ │ ├── cs_user_scripts.py
│ │ │ …
│ │ │ └── meteo
│ │ └── SaturneGUI
│ ├── RESU
│ ├── SCRIPTS
│ │ └── runcase
│ └── SRC
│ ├── EXAMPLES
│ │ ├── cs_user_boundary_conditions-advanced.f90
│ │ …
│ │ └── cs_user_postprocess-sfc.c
│ └── REFERENCE
│ ├── cs_user_atmospheric_model.f90
│ …
│ └── usvosy.f90
├── case1
│ └── case1.xml
└── mesh
└── downcomer.des
2: simple_junctionのデータを準備する
例題の1-simple_junctionには、既に必要がファイルが用意されているので、以下の手順で解析設定情報のxmlファイルを、先に作ったCASEディレクトリのDATAディレクトリにコピーします。
$ cd ~/CodeSaturneFiles/examples/1-simple_junction
$ cp case1/case1.xml CASE1/DATA
次に各ケースで共通で利用するメッシュ情報をMESHディレクトリとして、作成したSTUDYディレクトリ1-simple_junctionの中に、CASEディレクトリと並べて、以下のように例題のmeshディレクトリを利用して用意します。
$ cp -r mesh MESH
3: Code_SaturneのGUIツールを起動する
先に用意した起動スクリプトSaturneGUIを用いて、以下のように起動します。
$ cd CASE1/DATA
$ ./SaturneGUI
解析事例の画像を集めた表示のあるCode_Saturne GUI-3.0.1が起動します。
FileメニューからOpenより、先に用意したcase1.xmlを開きます。ツール上に設定情報が表示されます。
Code_Saturneでは、解析の結果を起動時刻で管理しているので、一旦この設定をFile→Saveで保存して現在時刻の情報とします。
念のためFile→Quitで終了して、再度case1.xmlの設定ファイルを読み込みます。
4: Code_Saturneで流体解析を実行する
左下の設定項目の一覧の中で、最後のCalucutation managemnet を開いて、最後のPreparer batch calculationを選択します。
右下のScript fileパネルの下の、Calculation startのStart calculationボタンを押して実行します。
※なお最初の実行のとき、python2.7/site-packageにおいてmesh関連のエラーがログ表示パネルに赤色で表示され、中断する場合があります。この時は一旦終了して、再度StaurneGUIを起動すると正しく実行できることがあります。原因は不明です。
ログ表示パネルには、以下のように実行の進展が表示されます。以下より、code_saturne-3.0.1を1CPUで単独実行して、結果をCAE1のRESUディレクトリ中の2013062201106に保存したことがわかります。
これより、解析結果の保存ディレクトリ名が、解析時刻の分までで決められているので、1分以内に再実行すると正しく進まないようです。
==(抜粋)==
Code_Saturne is running
Version: 3.0.1
Path: /opt/salome/code_saturne-3.0.1
Result directory: /home/dexcs/CodeSaturneFiles/examples/1-simple_junction/CASE1/RESU/20130622-1106
Single processor code_saturne simulation.
****************************
Preparing calculation data
****************************
Preprocessing calculation
****************************
Starting calculation
****************************
Saving calculation results
****************************
==(抜粋)==
確認できたら、OKを押して終了します。GUIツールもFile→Saveで保存してから、File→Quitで終了しておきます。
5: 解析結果をSalome/ParaViSで確認する
指示どおり、RESUディレクトリに結果が出来ているかを確認します。
$ cd ../RESU; ls -l
解析実行毎に、年月日ー時分として20130622-1106のように結果ディレクトリがあります。ここに移動して確認します。
$ cd 20130622-1106
結果として色々なファイルがあるのですが、解析結果はpostprocessingディレクトリにあるので、移動して確認します。
$ cd postprocessing; ls *.case
ここで、Code_Saturneはデフォルトで、EnSight形式の結果ファイルを出力するので、拡張子がcaseとなるため、上記のように確認すると、RESULTS.caseがあります。次に、EnSight形式はSalomeに組み込まれているParaViSモジュールで読み込むことができます。もちろん単独のParaViewでも可能です。
そこでデスクトップにあるSalomeのアイコンから起動して、モジュールをParaViSに切り替えます。ファイル→ParaViewファイルを開く…で、File of type をEnSight Files( *.case *.CASE *.Case )にしてから、RESULTS.caseをディレクトリを移動して探してから開きます。Applyを押すと赤いモデル空間が表示できます。
ここから先は結果の見方になるので、続く記事でまとめようと思います。以上で、例題:examplesを用いて、Code_Saturneの起動が確認できました。