DEXCSランチャー(FreeCADマクロ版)v202006

ダウンロードはこちらから



DEXCSランチャーとは

OpenFOAMを使った仮想風洞試験を、ボタンを順番に押していくだけで、誰でも簡単に実行できるようにすべく、pythonで作成したGUIツールで、DEXCS2019からは、FreeCADのマクロとして実装するようになった。

DEXCSランチャーはこれまで、DEXCS for OpenFOAMというisoイメージ中に同梱される形でしか配付していなかった。これはpythonのソースコードを配付したとしても、DEXCS以外の環境で使用する為には、様々なカスタマイズが必要になって、一般ユーザーが独自でカスタマイズできるようにするには、相当な困難があった為である。

DEXCS2019からはランチャーをFreeCADマクロとして実装した事を契機として、DEXCS2020ではこれらのマクロを、同梱したDEXCS以外の環境でも使えるようにすることを目指して取組中であるが、このたびプロトタイプ版としてDEXCS2019に搭載したマクロをベースに、DEXCS21019とそれ以外のDEXCS(DECS2015以降、DEXCS2018はFreeCADの更新も必要)でも使えるランチャーが出来たので、ここに公開することにした。

また、DEXCSで構築したシステムでなくとも、TreeFoamが動く環境であれば、若干のファイル追加で動作するはずなので、その要件と追加方法についても記しておく。この部分も、DEXCS2020以降では、configDexcsの設定だけで対応可能にしていく予定である。

更新方法

同梱のconfigDexcsというファイルが、以下のようになっている。

# cfMesh がインストールされたOpenFOAM環境
#for DEXCS-2019
    cfMesh     /opt/OpenFOAM/OpenFOAM-v1906
# for DEXCS-2018 ( not available)
#     cfMesh     /opt/OpenFOAM/OpenFOAM-v1806
# for DEXCS-2017
#     cfMesh /opt/OpenFOAM/OpenFOAM-4.x
# for DEXCS-2016
#     cfMesh     /opt/OpenFOAM/OpenFOAM-4.x
# for DEXCS-2015
#     cfMesh     /opt/OpenFOAM/OpenFOAM-2.4.x
# for DEXCS-2014
#     cfMesh     /opt/OpenFOAM/OpenFOAM-2.3.x

#configTreeFoam のインストール場所
    TreeFoam ~/.TreeFoamUser

#dexcs のインストール場所
# for DEXCS-2017 〜
    dexcs     /opt/DEXCS
# for 〜 DEXCS-2016
#    dexcs     ~/Desktop/DEXCS

DEXCS2019で更新する場合はこのままで良いが、それ以外のDEXCSでマクロを使いたい場合には、chMeshがインストールされたOpenFOAM環境と、dexcsのインストール場所を該当のものに変更する(行頭に#の有る行は有効にならないので、有効にしたい行だけ#を外す)。

同梱の updateDexcsLauncher.sh を端末上で実行する。その際、既存のuser.cfgを上書きするかどうかの質問があるので、

$ ./updateDexcsLauncher.sh
DEXCS Launcher update
Overwrite your FreeCAD SettingFile(user.cfg)? (Y/N)

上書きして良ければ「Y」を入力してアップデートは完了。

上書きの可否は、インストール先のFreeCADの利用環境で自身でカスタマイズしたマクロやツールバーの有無次第で判断されたい。上書きしてしまうと、それらの情報が無くなってしまうということである。「N」を入力した場合には、マクロファイルがアップデートされるだけなので、ツールボタンを自身で作り直す作業が必要になる。

なお、上書きした場合でも、元の user.cfg ファイルは、user.cfr.<user>.orig という名前で残すようにしてあるので復元は可能。またテキストファイルなので、内容を理解した上での新旧ファイル間での組み合わせ改変は可能です。

注意事項

  • DEXCS2015では、xfce4-terminal の追加インストールが必要になります。

$ sudo apt install xfce4-terminal

  • DEXCS2018ではFreeCADのAppImage版がインストールされている為動作不可、FreeCADをパッケージ版、もしくはビルド版に変更する必要があります。DEXCS上で上記FreeCADをインストールするには、この記事を参照下さい。

user.cfgを上書きしないで、作り直す方法

DEXCS2017へインストールした例で説明する。FreeCADを起動して、「ツール」メニューから「カスタマイズ」を選択すると以下の画面になる。

ここでマクロ欄右端の▼(上図赤印)をクリックすると、マクロ一覧が現れるので、登録したいマクロを選択し、メニューテキストなど空欄に説明事項を印しておく。ピクセルマップの「…」ボタンを押すと、以下の画面が現れてアイコンを選択できるようになる。何を選んでも良いが、

その際に、「アイコンフォルダー…」のボタンを押して、

「+」ボタンを押して、TreeFoamのアイコンフォルダ(/opt/TreeFoam/icons)を追加しておく。そうすると、TreeFoamのアイコンを登録できるようになる。

空欄を埋めて、アイコンが決まったら、「追加」ボタンを押してひとつのマクロの登録が完了である。

登録が必要なマクロは以下の通りである。

マクロファイル名メニューテキストツールチップ等アイコン
runTreefoam.pytreefoamtreefoam を起動します
runGridEditor.pygridEditorgridEditorの起動
runParaview.pyrunParaviewparaFoamの起動
runClearCase.pyrunClearCase計算結果を削除して、caseを初期化します
runJgp.pyrunJGPlotjgpファイルの適合
checkCaseFileName.pycheckCase解析ケースファイルの確認
runCheckMesh.pycheckMeshcheckMeshを実行する
solverSet.pysolverSet新規にcaseを作成、又はsolverやmeshを入れ替え
editConstantFolder.pyeditConstantFolderPropertiesの編集
editSystemFolder.pyeditSystemFolderDict(system)の編集
runSolver.pyrunSolversolverを起動
runPlotWatcher.pyrunPlotWatcherplotWatcherの起動
runParallel.pyrunParallel並列処理

登録が終わったら、次にツールバーへの登録である。上記カスタマイズ画面において、「ツールバー」のタグ画面にて、左欄で「マクロ」、右欄で「全体」選択し、DEXCSツールバーを展開すると、下図の状態になる。

ここで、登録したマクロを左欄で選択し、中央の右矢印ボタンを押せば、右欄に追加されるので、新たに登録したもののうち、必要なものを右欄に移し、順序も好みで入れ替えて使ってもらえば良い。

DEXCS以外のプラットフォームで動作させる為の要件

  • cfMesh(cartesianMesh)がインストールされており、configDecs中に、これを起動する為の(ビルドした)OpenFOAMの環境情報が記してある事。

  • TreeFoamがインストールされており(+dexcsSwak版でなくとも可)、configDecs中に configTreeFoam のインストール場所が記されている事。但し、ヴァージョン2系のみ。ヴァージョン3系では一部のマクロが動作しない(ので現在製作中)。
  • FreeCADのVerは0.16以上で、AppImage版でない事
  • configDecs中にdexcs指定フォルダを定義しておき、指定したフォルダ下にSWAKというフォルダとtemplateというフォルダを作成。SWAKフォルダ下にpyDexcsSwak.py という空ファイルを作成。templateフォルダ下には、dexcsという名前でOpenFOAMのケースフォルダを収納しておく。ケースフォルダの中身は、ケースファイルとして有効な内容であれば何でも良いが、FreeCADモデルがOpenFOAMのケースフォルダでない場所でメッシュ作成する際の雛形フォルダとして使われることになる。

(タイトル)未定(副題)DEXCS for OpenFOAM の使い方

このページは、いずれ書籍化する予定で作成中のものですが、途中まで書きかけてサイズが大きくなり読みにくくなってしまったので、特設ページにて各章ごとに分割作成することとしました。




また、

  • 書籍のタイトルが未定
  • 出版元も未定(自費出版でも良いか・・・)

なので、これは!というのがあれば、またもちろん、

  • 内容に対するご意見・ご要望も

お寄せ下さい。

jgpプロジェクトファイル適合ツール



DEXCS2019に新しく搭載したjpgプロジェクトファイル適合ツールについての説明です。

はじめに

jgp(JAVA gnuplot GUI)は、従来(DEXCS2012)からDEXCS for OpenFOAM に標準搭載されており、その使い方については解説ページにて紹介してあり、個人的にはよく使っているし、お客さんにも重宝してもらっているソフトです。

ただ上記解説ページにも記してあるように何かと注文の多いソフトですが、現時点でもいまだこれに優るGUIツールは見当たらず、開発元からの更新情報もなく、本体には手を付けられそうにないので、インタフェースで改良できないかという着眼です。

問題は何であったのか

さまざまなデータ系列に対して様々なデータ処理方法を定義しておいて、それらをプロジェクトファイルに保存しておける・・・という嬉しさがあるのですが、問題はこのプロジェクトファイルの使い回しが容易でないという点です。

たとえばOpenFOAMのケースフォルダ中でポスト処理をする際に、プロジェクトを保存したケースフォルダ内であれば、計算をやり直した際などプロジェクトを再読み込みして、簡単にグラフを書き直してくれるのですが、ケースフォルダ毎コピーした別名のケースフォルダや、ケースフォルダの名前を変えてしまうと使えなくなってしまうという点です。

課題と対策

その理由は、プロジェクトファイル中でデータファイルを絶対パス名で記録している為です。小職はこれまで、プロジェクトファイルを使い回しした場合に、このパス名をエディタで手修正して使っていたんですが、そろそろ堪忍袋・・・ということで、これを自動修正するスクリプトとして実装したものです。

補足・注意事項など

  • 使用方法は冒頭のムービーをご覧ください。
  • TreeFoamの「十徳ナイフ」⇒「汎用gnuplot-GUI(jgp)の起動」メニューから起動することもできますが、こちらはメッセージダイヤログの日本語表示が出来ていません。
  • OpenFOAMのポスト処理データ(postProcessingフォルダ中のデータファイル)を対象としており、そうでないデータに対しては何ら適合されません。

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

解析シーン毎にTreeFoamのサブセット機能(グリッドエディダ等)を、FreeCADのツールボタンで起動できるようマクロ化してあります。

ダウンロードはこちら(2019/10/16〜)



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

詳しくはこちら

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

DEXCS2019では、

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

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

  • ここまでは通常の毎年更新作業ですが、今回はDEXCSランチャーを仮想風洞試験という題材はそのままで、GUI操作方法を全く作り変えました
  • pyFoam は、OpenFOAM-v1906への対応はアナウンスされておりません。DEXCSランチャーやTreeFoamで使っている機能(pyFoamPlotWatcher.pyやFoamCleaCase.pyなど)についてのみ動作確認しており、その他の機能については動作未確認です。

インストールと利用法

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

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

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

同梱プログラム

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

  • DEXCSランチャーのヘルプメニュー(上図)を参照下さい。
  • SLURMというリソースマネージャは今回もインストールしてありませんが、下記記事の方法によって追加インストールは可能(のはず)です。
  • JAVA gnuplot GUI の使用方法
    • http://dexcs.net/ocse2/?p=747
    • 上記記事で作成したプロジェクトファイルをケースファイルの在所を変えたり、別ケースで転用利用する際に、プロジェクトファイル中に記されているデータ在所(絶対パス名)を適合するツールを同梱しました。
  • 上記適合ツールは、DEXCSランチャーの左図ボタンにて起動します。⇒ 解説ページ
  • または、TreeFoam /十徳ナイフ /「汎用gnuplot-GUI(jgp)起動」メニューでも起動できます。
  • 但し、十徳ナイフ版では、実行時のダイヤログメッセージが日本語ではありません。

  • TreeFoamの基本的な使い方はTreeFoamのヘルプメニューから、「使い方」を参照して下さい。
    TreeFoamに関する情報は、DEXCS公式HPの AboutTreeFoamの記事にまとめてあります。
    DEXCS2019に搭載のTreeFOAMは、+dexcsSwakとして、上記公式ページに掲載ヴァージョンに対して独自のカスタマイズが加えてあります。

苦労譚

  • ParaViewビルド
  • FreeCAD AppImage版
  • FreeCADビルド版
  • リマスター容量の問題
  • /bin/sh の問題
  • VirtualBox Guest Additions

VerUp of FreeCAD on DEXCS2018

現時点で公開されているFreeCADの安定公開版のヴァージョンは0.17で、DEXCS2018 for OpenFOAM(R)にも搭載されているのですが、Arcワークベンチにパイプツールというのがあって、Windows版ではちゃんと機能するんですが、Linux版というかDEXCS上では機能してくれません。

一方、FreeCADには開発版がリリースされており、少し前に入手したVer-0.18やVer-0.19では、上記機能もちゃんと使えたので、これにアップデートし、とある仕事では活用出来ました。

しかし最近のFreeCADのLinuxバイナリ版はAppImageという形式で配布されており、DEXCS2018からもこのAppImageをベースに、メニューなどもカスタマイズされており、アップデートは簡単ではありません。

つまり、基本的には入手したAppImageを直接実行して最新VerのFreeCADを起動できるのですが、それだけではDECXSのメニューバーから起動したり、FreeCADで作成したファイル(.fcstd)を直接ダブルクリックして起動することは出来ないということです。

なお、AppImageUpdateというアップデートツールがあって、これを使うとAppImageそのもののアップデートをやってくれるようですが、現時点ではうまく動いてくれておりません。まぁ、そのうちにちゃんと機能するようにはなると思うので、次回(DEXCS2019〜)はこれを使うという前提でパッケージを考えますが、DEXCS2018の作成時点ではこの情報も知らなかったので、手探りでメニュー回りをカスタマイズしてあり、アップデートが簡単でないのは尚更でした。

そこで以下アップデート備忘録です。

安直なVerUp方法

入手したAppImageファイルを既存のファイル(FreeCAD-13522.glibc2.17-x86_64.AppImage)と同一の名前に変更して使用する。

$ sudo mv [FreeCAD_verUp].AppImage /opt/
$ sudo rm /opt/FreeCAD-13522.glibc2.17-x86_64.AppImage
$ sudo mv [FreeCAD_verUp].AppImage /opt/FreeCAD-13522.glibc2.17-x86_64.AppImage

上記、[FreeCAD_verUp]の部分は、入手して自身の環境で動作確認出来たAppImageの名前に置き換えて実施して下さい。

もう少しちゃんとしたVerUp方法

前項の方法だと、ファイル名でVer確認出来なくなってしまいますね。また、Verを戻すことも出来ません。

入手したAppImageファイルを名前もそのまま使って、DEXCSでカスタマイズしてある部分を書き換えるのが真っ当なやり方でしょうね(カスタマイズの舞台裏備忘録ということです)。ついでに、DEXCS2018では、よく解らないままのやっつけ仕事だったので、次のDEXCS2019では、もうちょっとちゃんとやってみようと、その試行版です。

まずは、カスタマイズの実体を確認。

つまり、freecadというコマンドでFreeCAD-13522.glibc2.17-x86_64.AppImageを実行できるようにしていることと、メニューボタンからAppImageを起動できるように、~/.local/share/applications/appimagekit-freecad.desktopにおいて、AppImageの実体ファイル名(FreeCAD-13522.glibc2.17-x86_64.AppImage)を直接指定してあるということです。

この直接指定をやめて汎用的な名前(FreeCAD.AppImage)で指定する。つまり入手したVerUp版AppImageファイルを/opt/フォルダに移動して、これをFreeCAD.AppImageというシンボリックリンクで参照できるようにしてやれば、VerUpした際に、このシンボリックリンクを作り直すだけで済むとなる。

$ sudo mv [FreeCAD_verUp].AppImage /opt/
$ sudo ln -s /opt/[FreeCAD_verUp].AppImage /opt/FreeCAD.AppImage

異なるVerのAppImageを同梱しておいて、上記シンボリックリンクを作り直す事で使い分けすることも可能になる。

前記カスタマイズファイル中の実体ファイル名の部分を、FreeCAD.AppImageという名前に置き換えるには、以下のようにすればよい。

$ sudo rm /usr/bin/freecad
$ sudo ln -s /opt/FreeCAD.AppImage /usr/bin/freecad

$ sed -e “s/FreeCAD-13522.glibc2.17-x86_64/FreeCAD/g” ~/.local/share/applications/appimagekit-freecad.desktop > ~/.local/share/applications/tmp.txt

$ mv ~/.local/share/applications/tmp.txt ~/.local/share/applications/appimagekit-freecad.desktop


なお、 ~/.local/share/applications/フォルダ中、FreeCAD関連で使用していないdesktopファイルがあり、後の作業で邪魔になるので、これらを削除しておく。

$ rm ~/.local/share/applications/fcstd.desktop

$ rm ~/.local/share/applications/freecad.desktop

おまけ

FreeCADを端末からコマンドラインで起動すると、

と警告が出る。致命的ではなさそうだが鬱陶しい。以下にて解消できる。

$ sudo apt install libcanberra-gtk-module libcanberra-gtk3-module

注記

FreeCADのAppImageは、AppImageUpdateというアップデートツールがあって、基本これでアップデートできるはずだが、現時点では機能していない。

一方、githubのページから主要Ver毎に直接ダウンロード出来るようにはなっているが、Linux版についてはVerに応じてリリース情報があったりなかったりする。1ヶ月ほど前には、

FreeCAD_0.18.16093.glibc2.17-x86_64.AppImage 

を入手できたが、現在(2019/4/10)ではそのリンクは存在せず、

FreeCAD_0.19.16207_Conda_Py3Qt5_glibc2.12-x86_64.AppImage

が使えている。

筆者の環境では、一応どちらも動いてくれてはいる。一応としたのは、環境によって、具体的には、

  • 仮想環境かそうでないかの違い
  • 仮想環境の違い(VMPlayer / VirtualBox / …)
  • ライブモードかそうでないかの違い
  • グラフィック3Dアクセラレータの使用有無

等の違いによっては動かない(すぐ落ちる、あるいは固まってしまう)事もあるということ。上記2つのヴァージョンの動作も、これらの環境次第で挙動が変わる。

したがって、実際に使用予定の環境での動作する事を確認してからインストール作業することを推奨する。