CHTマルチリージョン計算用のDEXCS方式テンプレートケースファイル



詳細説明とケースファイル一式は、こちらで公開中。

公開事由

DEXCSのチュートリアルケース(cfMeshLesson/heatSink)では、chtMultiRegion(Simple)Foamで使う事を想定したメッシュ作成用のFreeCADモデルを収録し、メッシュ作成法については「DEXCSにおける推奨メッシュ生成法」(/opt/DEXCS/launcherOpen/doc/howtoCADandMeshing.pdf)の中で説明しているが、これで作成したメッシュをどうやって、chtMultiRegion(Simple)Foamで使うのかについての説明は無い。

わかる人にはわかるはずだが、そうでない人向けに、DEXCS的なやり方(ほとんどGUIだけで操作出来る方法)を公開する事とした。

補足説明

chtMultiRegion(Simple)Foamでの計算において、本来はマルチリージョンメッシュを使うので、マルチリージョンメッシュを作成できないcfMeshでどうやって??というのが普通の感覚であろう。

しかし、「本来は…」と記したが、OpenFOAMの標準チュートリアルではマルチリージョンメッシュを使ってケース作成しているというだけで、実際に動くケースは領域毎に区分されたメッシュを使っている。つまり、マルチリージョンメッシュが最初に有りきでなく、最初から領域毎に区分されたメッシュを使う方法も有りという事である。

なお、冒頭に掲げた図は、最終的に実施したい本番計算イメージを説明したものだが、セットアップの説明資料では、説明を簡単にする為、以下のイメージで説明している点、念の為お断りしておく。

DEXCS2020-for OpenFOAM(R) 不具合・更新情報

表記に関する情報は、このページに集約しておきます。このページに記載されていない不具合情報などあれば、遠慮なくお問い合わせ下さい。



kdiff3の不具合解消

拙著D本のp.17にも記してありますが、kdiff3は動作不具合のある点を認識しながらの見切り発車でしたが、ようやく不具合解消方法が見つかりました。

情報元はこちらですが、インストールがすんなりといかなかったので、ここに改めて記しておきます。

不具合は2つあって、マージの問題と、ファイル単位での比較が出来ないという点ですが、前者については使っていないのでどういうことかわかりませんが、後者はかなり致命的で、何とかならないかと思っていました。いずれにせよkdiff3のバージョンの問題のようで、普通にパッケージインストール出来る1.8.1に代えて1.8.3をソースからビルドせよというものです。ちなみに、もっと新しいバージョンもありますが、それはそれでうまくいかないようです。肝心のビルド・インストール方法は以下の通りです。

$ sudo apt remove kdiff3
$ sudo apt install extra-cmake-modules libkf5i18n-dev libkf5coreaddons-dev libkf5iconthemes-dev libkf5parts-dev libkf5doctools-dev libkf5crash-dev libkf5crash-dev
$ git clone https://github.com/KDE/kdiff3
$ cd kdiff3/
$ git checkout 1.8.3
$ mkdir build && cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr
$ make
$ sudo make install

HELYX-OSが使えない

画面は立ち上がるが、STLモデルが表示されない、実行エラーが多発するなど使い物になりません。

これも自分では滅多に使わないので、起動画面が立ち上がる事だけを確認してそれ以上の動作確認不足でした。

実はインストール方法の手抜きでした。DEXCS2019で使っていたファイルをそのまま流用していた為で、DEXCS2020用にはちゃんとインストールする必要がありました。

インストールは簡単です。ダウンロードサイトから入手したファイル(HELYX-OS-2.4.0-linux-x86_64.bin)のある場所で、通常端末で以下のコマンド入力でインストールが始まる。

$ chmod +x HELYX-OS-2.4.0-linux-x86_64.bin
$ sudo rm -rf /opt/Engys/
$ sudo ./HELYX-OS-2.4.0-linux-x86_64.bin

インストールが始まったら、以下の赤字部分を入力する。

Waiting for HELYX-OS installer to start…

This program will install HELYX-OS on your system. Do you want to continue?
1) Yes
2) No
#? 1

GNU GENERAL PUBLIC LICENSE

…………………………
ライセンス情報が表示されるので、
Enterキーでページ送りしていく。
…………………………

Do you accept the terms of agreement?
1) Agree
2) Exit
#? 1

Select destination folder for HELYX-OS GUI: /opt/
Installing in: /opt
Installing HELYX-OS GUI …………….done.

Installation completed!

以上で、インストールは完了。Dockランチャーの[helyxOS]で起動できるようになるはずである。

起動できたら、[Edit]⇒[Preference]メニューにて、Core Folder ParaView Executable のPathを設定して完了である(下図参照)。

なお、インストールする際に、

Select components to install

1) HELYX-OS-GUI

2) HELYX-OS-GUI and Kernel

#?

インストールの説明が記載されている公式サイト(http://engys.github.io/HELYX-OS/installation/)の説明から、2 で宜しいでしょうか?

という質問も頂いたが、正直良くわからない。

ここでいうKernelというのは、OpenFOAM本体の事のようです。自分はHELYX-OSをsnappyHexMeshのメッシュツールとしてしか使っていないので、その限りにおいては、DEXCSに既存のOpenFOAMを使えば良いので、1)を選択すれば良いです。
HELYX-OSのメッシュ機能だけでなく、OpenFOAMのソルバー機能まで使いたい時に、既存のOpenFOAMで対応できるかどうかわからない場合に、2)を選択せよ、ということだと思います。が、DEXCS2020でこれをやろうとすると、OpenFOAMのFoundation版を取りに行くのですが、このOSに対応するものが無いといって何も追加インストールされませんね。
ちなみに、SimpleFOAMくらいでしたら、既存のOpenFOAM-v2006で動くことは確認していますが、その他のソルバーについては未確認です。

ParaViewでFindDataが使えない

FindDataのメニューは起動できるが、実行すると以下のエラーが出る。

RuntimeError: ‘numpy’ module is not found. numpy is needed for this functionality to work. Please install numpy and try again.

対応は以下の通り。

$ sudo apt install python-numpy

DEXCSランチャーツールバーの表示問題

以下のコメントを頂きました。

FreeCADのDEXCS ツールバーの挙動が不安定です。
FreeCADを起動した直後は左端にあります。起動した直後には、「オブジェクトの表面積・・・表示します」の下側に「ダウングレード」のアイコンが表示されません。Partワークベンチに切り替えても表示されません。Archワークベンチに切り替えると「ダウングレード」アイコンが表示されて、そののちPartワークベンチに切り替えても「ダウングレード」アイコンが表示されています。
さらにそののちDraftワークベンチに切り替えるとDEXCSツールバーが左端から上端(つまりメニューバーの下)に移ります。そののちPartワークベンチに切り替えてもメニューバーの下に配置されたままです。

マウスでドラッグして左端に戻せばよいのですけども・・・
たぶん、設計思想としてはDEXCSツールバーの定位置が左端だと思います。

基本的に作者も認識していた問題ですが、大きく2つの問題です。

  • 「ダウングレード」アイコンの表示問題
  • DEXCSツールバーの表示位置の問題

このうち、前者の問題については、そもそもFreeCADの基本の中、最終項目(7.DEXCSカスタマイズメニュー)で以下のように記載しています。

  • 選択したオブジェクトをより単純な形状に分解、または面を減算します

Draft modification toolsツールバーに収録されているものと全く同じだが、Draftワークベンチでしか使えないので、他のワークベンチでも使えるようにした。

なお、起動直後のStartワークベンチなどにおいては、このアイコンが出てこない場合がある。その場合には、一旦、Draftワークベンチに切り替えてもらいたい。そうすれば出てくるし、以降は他のワークベンチでも出てくるはずである。

なので、そういうものだと思って使って下さい・・・としようかとも思っていたのですが、DEXCSツールバーが動いてしまうというのは、前ヴァージョンでは無かったような気もする。FreeCADを立ち上げる都度動かすのは面倒なので、この際、もうちょっと対策を考えて見ました。

一度、「Draftワークベンチ」でDEXCSツールバーを左端に戻した状態にて、「編集」⇒「設定」メニューの「標準」において、「起動後に自動ロードされるモジュール」をデフォルトは「Start」になっていましたが、これを「Draft」に変更して下さい。

こうすれば、次回の立ち上げからは、「Draftワークベンチ」でDEXCSツールバーが左端の状態で立ち上がり、ワークベンチを変更しても、「ダウングレード」アイコンは表示されたまま残るはずです。

DEXCSランチャーの「Propertiesの編集」と「Dict(system)の編集」ボタンが機能しない

iso化する際の見落としです。端末を開いて、以下のように入力し、TreeFoamのpythonスクリプトに実行権限を付与すれば、機能するようになるはずです。

$ sudo chmod +x /opt/TreeFoam/python/*

(解説)DEXCSランチャーでは、TreeFoamのサブセット機能を利用しています。TreeFoam本体からは、import文で組み込まれるので、実行権限は無くとも機能しますが、DEXCSランチャーから起動する際には実行権限が必要という事です。

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

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

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



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

詳しくはこちら

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

DEXCS2020では、

  • ベースOSはubuntu-20.04.01 (LTS)
    • DEXCS2019まではubuntu-18.04系でしたが、メジャーヴァージョンアップです。
  • OpenFOAMやその他の組み込みツールのヴァージョンアップに対応
    • OpenFOAM-v2006
    • cfMesh v1.1.2 。

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

  • ここまでは通常の毎年更新作業ですが、DEXCS2019からはDEXCSランチャーを仮想風洞試験という題材はそのままで、GUI操作方法を全く作り変えました
  • DEXCS2020では、これに少し機能追加したのと、ポータビリティを改良。つまり、これらはFreeCADのマクロなんですが、これまでDEXCS上でしか動作しなかったのを、DEXCSでない環境でも動かせる事を考慮したコードに書き換えています。まだ十分な動作確認まで至ってはおりませんが・・・
  • もう1点。TreeFoamがVer-3になって、python3で動くようになり、これにも対応した。
  • pyFoam は、OpenFOAM-v2006への対応はアナウンスされておりません。DEXCSランチャーやTreeFoamで使っている機能(pyFoamPlotWatcher.pyやFoamCleaCase.pyなど)についてのみ動作確認しており、その他の機能については動作未確認です。

インストールと利用法

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

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

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

同梱プログラム

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

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

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

苦労譚

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

などなどありますが、近日中に書籍として上梓予定。DEXCS2019をベースとして書きかけ中のhtml版は特設ページにて公開中。書籍版は本DEXCS2020をベースに内容を更新作業中です。

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



先の記事で、表題マクロがTreeFoamの最新版(ver-3.*, python3版)にて機能しないモジュールがあると記したが、これに対処したもの⇒DexcsLauncher4Tf3-200617.tar.gz

インストール方法は先の記事で記したのと全く同じ。

但し、これを動かす為には、TreeFoam本体の変更も必要で、変更用のパッチ(diffTF-3.02vs+DL+swak-200617.tar.gz)も併せて実施する必要がある。変更パッチは、同梱のupDateTF-3.02+DL+swak.shを管理者権限で実行する。

なお、この際、以下に示すように、

$ sudo ./upDateTF-3.02+DL+swak.sh
patching file /opt/TreeFoam/python/getPyQtModule.py
patching file /opt/TreeFoam/python/gridEditorQtDialog.py
patching file /opt/TreeFoam/python/runParaFoamOptionDialog.py
patching file /opt/TreeFoam/python/selectFolderFilesDialog.py
patching file /opt/TreeFoam/python/createAndChangeCaseDialog.py
patching file /opt/TreeFoam/python/runParallelDialog.py
TreeFoam update for DEXCS Launcher has done.

TreeFoam update for TreeFoam+dexcsSwak
dexcsSwak modules exist in /opt/DEXCS/SWAK/
Continue ? (Y/N)

TreeFoam-3.02のpythonモジュールを変更した後、dexcsSwak(dexcs十徳ナイフ) を使用するかどうかを聞いてくる。ここで、DEXCS-OFで構築したシステムであれば、「Y」を入力して、/opt/DEXCS/SWAK以下のモジュールを更新して、TreeFoam-3系でもdexcs十徳ナイフを使えるようになる。

注意事項

並列計算モジュールだけは、起動すると以下の画面が現れる。

具体的には、「並列計算実行」「結果の再構築」が機能しないので留意されたい。

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のケースフォルダでない場所でメッシュ作成する際の雛形フォルダとして使われることになる。