DEXCS2018 for OpenFOAM(R) リリースノート

ダウンロードはこちら(2018/10/2〜)


DEXCS for OpenFOAM(R) は、OpenFOAMと、これをより簡単・高度に活用できるようにする為の様々なツールをすべてインストール済のオール・イン・ワンパッケージで、誰でも(と言ってもCAEに無縁の人は対象外ですが・・・)簡単・即使えるようにしたマシンイメージ(isoファイル)です。

詳しくはこちら

DEXCSランチャーのヘルプメニューからも参照できます

DEXCS2018では、

  • ベースOSはUbuntu-18.04 (LTS)
    • DEXCS2017まではMintを採用していましたが、再々度、Ubuntuに復帰しました(GNOMEデスクトップに戻った為)。
  • OpenFOAMやその他の組み込みツールのヴァージョンアップに対応
    • OpenFOAM-v1806
    • cfMesh v1.1.2

(cfMeshはOpenFOAM-v1712以降、modules としてOpenFOAM本体に組み込まれています)

    • pyFoam は、OpenFOAM-v1806への対応はアナウンスされておりません。DEXCSランチャーやTreeFoamで使っている機能(pyFoamPlotWatcher.pyやFoamCleaCase.pyなど)についてのみ動作確認しており、その他の機能については動作未確認です。
  • FreeCADマクロ(cfMesh用簡単設定ツール)は、これまでGUIコンポーネントをwxで作成していましたが、FreeCAD本体で使用しているQt4(pySyde)に変更しました。これにより、マクロ終了時のFreeCAD本体異常終了現象が解消されました。
  • DAKOTA(最適化ツール)の搭載は見送りました。
    • DAKOTAは、先の記事に示した通り同梱も可能でしたが、isoイメージに収納できる容量の問題と、GUIの使い方に十分な知識が必要になるので、不特定多数への配布は困難と考えました。DAKOTA有識者は、先の記事を参考に自身でインストールして使ってみて下さい。
  • DEXCSランチャーの「ヘルプ」⇒「ランチャの使い方」から参照できていたwinkチュートリアル(Flashコンテンツ)は廃止しました(セキュリティ上の問題でFirefoxで閲覧できなくなりました)。

インストールと利用法

詳しくはこちら(日本語と英語の切り替え方法も含む)


マシンイメージなので、DVDにイメージ書き込みすれば、DVDから起動してそのまま利用することができます。 (DEXCS初体験の人はこのライブDVDとして「まずは使ってみる」方法をお薦めします。)

  • 継続利用では起動後にインストール機能により、HDD等に直接インストールできる上、使用するユーザー名等を選択することができます。
  • VMWare Playerや、VirtualBox等の仮想環境で起動して、仮想環境を作成することも簡単です。
  • VirtualBoxにインストールする方法は、書籍「OpenFOAMによる熱移動と流れの数値解析」の付録AにDEXCS2015について詳しく記されていますが、基本は同じです。また、DEXCS2011までは、”Guest Additions”が入っておりませんでしたが、DEXCS2016では導入済みなので、共有ファイルの設定など(インストール方法メモの24〜26ページ)も同様に実施可能です。
  • 国際化対応のレベルはDEXCS2015に同じ(英語版のみに対応)ですが、日本語⇆英語のベース環境切り替え方法が、DEXCS2015に比べやや煩雑になっています。(インストール方法メモの8〜13ページ)
  • 一部動作に不具合が確認されています(インストール方法メモの14〜18ページ)。解決方法が見出だせませんでした。お判りの方、またこれ以外の不具合に気づかれた方はご連絡下さい。

同梱プログラム

その他のドキュメントについて

    • DEXCSランチャーのヘルプメニューを参照下さい。
    • Blender⇒SwiftツールをDEXCSランチャーから使用することはなくなりましたが、ツールそのものは使用可能で、メッシュ作成用のテンプレートフォルダもBlenderモデルと併せて同梱してあります(/opt/DEXCS/template/swift_dexcsMesh)。
    • Swiftツール使用法の詳細を知りたい方はDEXCS2013のリリースノートをご覧ください。
    • SLURMというリソースマネージャもインストールしてあり、サブミット用のサンプルスクリプトを含んだケースファイルも同梱してあります(/opt/DEXCS/template/slurm_damBreak)。コア数が4つのマシンであれば、以下のコマンドを、そのまま利用可能(のはず)です。
      • $ sbatch submit.sh  (ジョブサブミット)
      • $ squeue  (ジョブ確認)
      • $ scancel [jobID] (ジョブ停止)
      • コア数が4でないなどの環境で、バッチジョブがペンディング状態のまま実行出来ない場合は、デスクトップ上、DEXCS/launcherOpen/doc/slurm.pdf を参考に設定ファイル(slurm.conf)を変更して使用して下さい。 (設定方法はこちら
      • ジョブサブミット、ジョブ確認は、TreeFoamの十徳ナイフからも起動できます.
      • 上記を含めて、TreeFoamから起動する十徳ナイフのメニューに変更はありません。
    • JAVA gnuplot GUI の使用方法
    • TreeFoamの基本的な使い方はTreeFoamのヘルプメニューから、「使い方」を参照して下さい。
    • TreeFoamに関する情報は、DEXCS公式HPの AboutTreeFoamの記事にまとめてあります。
    • DEXCS2018に搭載のTreeFOAMは、+dexcsSwakとして、上記公式ページに掲載ヴァージョンに対して独自のカスタマイズが加えてあります。

DakotaUI (GUI?) 版について

昨日(7/15)のオープンCAE勉強会@関西にて発表した資料です。総枚数130という大作ですが、結論としては、、、

  • DEXCS(というかubuntu系Linux)上でDakotaUIを動かすにはソースコンパイル+アルファが必要でしたが、なんとかなりました。
  • DakotaUIとは、
    • コマンドライン起動できるようにしたSimulationモデルに対して、その入出力パラメタとDakotaエンジンとの接続を、ウイザードGUIで容易化してくれるものであった(****FRONTIERのようなブロック接続ではない)。
    • 探索結果一覧表の自動作成やグラフ化機能があり、それなりに使えそう。
  • UI版での動作にはいくつか問題があり、これらを回避する為の手間は増えるが実用は可能(?)。
    • DakotaStudy変数切り出しカラム設定において、Linux版では入力ファイル形式を( window形式)とし、保存時には(Linux形式)にする必要がある(Windows版では変換の必要無し)。
    • DajotaStudyファイル中、

      Interface / copy_file

      にディレクトリ識別子(/)が存在すると、プロジェクトの再ロードが出来なかったり、他項目のGUI編集が出来なくなる(Linux / Windows版共通)。

    • 他にもありそう・・・

ということで、次期DEXCS2017に搭載するかどうかの判断は微妙な状況です。

なお、本資料中で使用しているdakota-openfoam連携計算サンプルファイルを右のダウンロードコーナー(Latest Downloads)よりDL出来るようにしておきましたので、興味のある方は自身で体験していただき、上記判断に対するコメントなり、現時点で見つかっている上記問題点に対する改善策なり、新たな問題発見なりをレポートしていただければありがたいです。

また、インストールが面倒、、、でも試してみたいという方には。インストール済のDEXCS特別版も配布しますので、申し付けください。

DEXCSを外付けHDD(USBドライブ)で利用上の注意点

DEXCSはベースOSがLinuxなので、

  1. 専用マシンにインストールして使用
  2. 通常利用のWindowsマシンとは別ドライブにインストールして、起動時に切り替えて使用
  3. 仮想マシンプレーヤー(VMWarePlayerや、VirtualBOXなど)上で使用

といった使用方法があり、これまで2の方法、しかもインストール先を表題のUSBで接続する外付けHDDにインストールすることが一番シンプルだろうと、推奨してきておりました。

ただ、大きな会社だと、セキュリティの問題でUSBドライブを使えないだとかあって、現実にはそういう利用方法に関する実績も多くはなかったようで、これまでその利用方法に関するトラブルは、ブートセレクタに関する問題以外は聞いたことはありませんでした。

しかし、筆者が最近購入したUSBドライブ(アイ・オー・データ機器製、HDPX-UT500)では、うまく起動出来なかったこともあり、必ずしもこの方法を推奨できないとなったので、ここにその注意点を記しておくこととしました。

結論的に、現時点で、上記の機器はLinuxの起動ドライブとしては使用できません。使用するマシンやインストールするLinuxも色々変えて実施してみましたが駄目でした。メーカーサポートにも問い合わせてみましたが、「Linuxに関するサポートはしない」ということでバッサリでした。

これまで、少なくとも筆者の環境ではUSBドライブにインストール出来て、それで起動できなかったということはありませんでした。これが上記の機器に固有の現象なのか、類似の機器で起こりうる現象なのかまでは判っておりませんが。これまではUSBといってもUSB2であったのが、上記機器はUSB3なので、そちらの問題であった可能性も捨て切れません。

以下、あれこれ丸二日間くらいかけての苦心譚ですが、興味のある方、もしくは類似のトラブルでお困りの方に向けてのお話です。

Boot-Repair

インストールしたUSBドライブで起動すると、、、

範囲を選択_054BusyBox v1.18.5 でググると、割と簡単にBoot-Repairというツールにたどり着く。これを使えば良さそうだ、ということで、

ここで、Recommended repair をやったのが大失敗。修復されるのは、USBドライブのブートローダーでなく、起動したパソコン本体のブートローダーであったということです。その事に気づかないまま、これをやってうまく行かなかったので、あれこれやっているうちに、おかげで1台のパソコンは起動不能になり、全再インストールを余儀なくさせられました。

ようやく、この注意点に気づいて、Advanced options を使うなり、あげくの果てに、HDDをすべて取り外したパソコンを用意して、そのパソコンを使って作業するなりやってみたが、結局駄目。状況は少し進展して、ブートセレクタは起動するようになったものの、インストールしたLinuxを起動しようとすると。。。

範囲を選択_055

となって、エラーの原因が特定された(/dev/disk/…以下の、ドライブ情報が存在しない)ということで、進展はあったものの、これ以上先へ進めませんでした。一応、それでも駄目な場合には、ご連絡。。。とあったので、メールは出しておきましたが、どうなることやら。

その他、マシンによっては、

範囲を選択_057

 

というメッセージで起動できない場合があって、このメッセージでググると、これは日本語情報も多く、大抵は

>set prefix=(h0,***)/boot/grub
>insmod (h0,***)/boot/grub/normal.mod

という方法で直せるというものでしたが、

範囲を選択_058というように、/boot/の下に何も存在しないとなって、この方法も使えませんでした。

 

DEXCSのインストールサービス

かようなトラブルにもめげずに、OCSE^2のコンサル事業の1アイテムとして、DEXCS for OpenFOAM(R) の他、お客様ご要望のオープン系ツール(Dakota、Salome-Mecaなど)をインストール済の外付けUSBドライブの販売もやっております。

価格は搭載ツールの内容に応じて要相談ですが、USBドライブの実売価格に数万円〜10万円程度の上乗せでやらせていただきます。ご希望のお客様は申し付け下さい。

 

 

DAKOTA Install on DEXCS2012 for OpenFOAM(R)

DAKOTA というのは、今年辺り、そろそろブレークするかもしれないオープンソースの最適化ツール。次回のオープンCAE勉強会@岐阜でも紹介があるようです。

管理人も数年前に触って以来なので、最新版を試してみようとしました。しかしLinux版のバイナリはredHat用しかリリースされておらず、DEXCS2012(OSはMint13/ubuntu-12.04)上では動かなかったので、インストールに挑戦。一筋縄でいかなかったので、ここに要点を記しておくことにしました。

インストールの基本はソースコードに同梱のINSTALLというメモ

0) Install CMake 2.8.4 (or later) and ensure it is in your $PATH
1) gunzip Dakota_releasename.src.tar.gz
2) tar xvf Dakota_releasename.src.tar
3) mkdir BuildDakota; cd BuildDakota
4) export PATH=$PATH:.
5) cmake [cmake options] ../Dakota
* generate platform-specific Makefiles with cmake
* see NOTE below regarding specifying location of Boost
6) make [-j#]
* DAKOTA supports concurrent build processes
7) make install
* optional: requires write privilege in CMAKE_INSTALL_PREFIX
(see “Source Installation Options” below).

があるので、その通りにやるだけ(但し最後のmake install はルート権限でやる必要あるのと、ライブラリが新たに加わるので、sudo ldconfig も必要)。コンパイル時間も数10分で済むものでしたが、事前に準備しておくものがたくさん必要でした。

 

事前に必要なもの

  • gfortran
  • Boost
  • BLAS/LAPACK

gfortran

これは普通に

$ sudo apt-get install gfortran

または、パッケージマネージャからインストールするだけでOK

 

Boost

そもそも、Boost って何?の説明があって欲しかったのですが、そこは単に、

 

================================
Source Installation Dependencies
================================

To build DAKOTA with all possible packages, some platform-dependent
software dependencies exist. These include
* Boost (required)
* Message Passing Interface (MPI) library (optional)
* Basic Linear Algebra Subprograms (BLAS) (required)
* Linear Algebra PACKage (LAPACK) libraries (required)
* X11 and Motif graphics libraries (optional)
* Fortran90 compiler (optional)

と記してあるだけで、何のことやら? でしたが、そこはググって調査。

参考サイト より

1998年に、最初のC++言語の国際規格が誕生しました。その規格に採用されたライブラリがいわゆる「C++標準ライブラリ」です。しかしこのとき、さ らに強力な標準ライブラリを求めて、標準化委員会のメンバー達が新しいプロジェクトを立ち上げました。それが Boost です。

ダウンロードは、こちら

ビルド方法は、こちら

$ cd boost_1_52_0

$ ./bootstrap.sh

$ sudo ./b2 install -j2

 

上記実行すると、

…on 10600th target…
common.copy /usr/local/lib/libboost_wave.a
…failed updating 2 targets…
…skipped 6 targets…
…updated 10598 targets…

となって、途中一部error があったようですが、多分、大勢に影響はなさそうです。

BLAS/LAPACK

これらはAlgebla Package ということで、CAEをやっている人間にとって、少しは馴染みがあるものですねぇ。しかし、そのインストール方法は自力で調べるしかありませんで、ここで嵌りました。インストール方法を記したサイトは簡単に見つかりました(たとえば、こちらのサイト)が、スタティックライブラリの作り方が書いてあって、これだと後のDAKOTAをmakeする時に、訳のわからないエラーで止まってしまうのでした。

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/libblas.a(sgemv.o): relocation R_X86_64_32 against `.rodata’ can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/libblas.a: could not read symbols: Bad value
collect2: ld はステータス 1 で終了しました
make[2]: *** [packages/teuchos/src/libteuchos.so] エラー 1
make[1]: *** [packages/teuchos/src/CMakeFiles/teuchos.dir/all] エラー 2
make: *** [all] エラー 2

このエラーメッセージでググると、どうやらライブラリがlibblas.aでは駄目で、libblas.soにしなさいということらしく、それがダイナミックライブラリということ。これを作るには、コンパイルオプションを、-fPIC にせにゃならんということなんだが、Makefileのどこをどう変えるかが、素人にはたいへんな試行錯誤でした。

で、なんとか出来たんですが、Linux Mint13 の元々のシステム(/usr/lib)を眺めていたら、libblasも、liblapackも既に入っていたじゃありませんか!単に、名前がちょっと違っていた為、コンパイラが認識できていなかっただけ。シンボリックリンクを作成してすんなり通りました。。。という顛末。

$ sudo ln -s /usr/lib/libblas/libblas.so.3gf.0 /usr/lib/libblas.so

$ sudo ln -s /usr/lib/liblapack.so.3gf /usr/lib/liblapack.so

$ sudo ldconfig

以上、お粗末でした。