DEXCSランチャー v2.5 製作メモ

(2021/5/15)のオープンCAE勉強会@関西にて、表題構想の与太話をさせていただきましたが、これがようやく形になりつつあり、やりたい事の50%程度は出来上がって、順調にいけば、次のDEXCS2021でリリースできそうな目処がついてきました。今回は製作メモを作成しながらの開発中で、この際これも公開する事としました。一応、以下の目次にて執筆予定(2021/7/6現在、3-5までは執筆済み 2021/7/23現在、3-7までは執筆済み 2021/8/11現在、4-2までは執筆済み)で、HTML版が完成した部分には、ハイパーリンクで内容を閲覧できるようにしていく予定です。



  1. はじめに
  2. CfdOF とは
    1. CfdOF の使用方法概要
    2. CfdOF の特徴と使用感
    3. DEXCS ワークベンチ / ランチャー化へ向けての着眼点・方針
    4. CfdOF のソースコードと主要プログラムの動作メカニズム
  3. DEXCS ワークベンチ / CfdOFのGUIを使ってDEXCSマクロを動かす
    1. 残差プロット 1
    2. 残差プロット 2
    3. その他の変更
    4. CfdOF ⇒ dexcsCfdOF 改変の基本方針
    5. メッシュ作成方法(細分化指定無し)の変更(DEXCS化) 1
    6. メッシュ作成方法(細分化指定有り)の変更(DEXCS化)2
    7. 中間まとめ
  4. DEXCSワークベンチ / CfdOFのGUIを改変
    1. メッシュ作成タスク画面の改変
    2. メッシュ細分化タスク画面の改変その1
    3. メッシュ細分化タスク画面の改変その2
    4. FreeCAD基本形状を使った細分化領域指定
    5. まとめ
  5. Plot ワークベンチを使った post Processing処理
    1. 単グラフの自動作成
    2. ポスト処理イメージと実装方針

以下、公開にあたって、執筆理由、動機、狙い、下心、、、など記しておきます。

今回の製作は、コードハッキングして作っているようなもので、ハッキング対象がかなり大きなプログラムなので、自分の年老いた小さな前頭葉には全貌が収まりそうになく、少し間を空けてしまうと、何をやったのか、何をやろうとしていたのかをほとんど忘れてしまいます。

そこで今回は、表題の製作メモを作成しながら開発することとなった訳です。

メモもどういう形式で残したものか、これまでTex⇒PDFにて作成、読み返しながら文書を組み替えたりやってきて、3-5まで書き終わった段階でページ数も30ページを超える分量となってしまっています。そうなると、アレは何処に書いたっけ?と読み返すのが結構面倒な作業になります。紙に印刷してあれば、パラ読みで探すのはさほど難しい事ではないけれど、書き掛け中の文書を一々印刷したりはしないのが普通です。ここはやはり文書のあちらこちら、参考資料を含めてハイパーリンクで辿れるようになっていないと、コード開発にも文書作成にも生産性が上がりません。

そこで残りは慣れ親しんだHTMLで(というか拙宅ブログ記事として)書こう!となったんですが、せっかくHTMLで書くのなら、これも公開しない理由は無いという事です。公開するメリットとして、

  • 本職プログラマやユーザーから建設的なコメントをもらえるかもしれない
  • DEXCS本第2弾につながるかもしれない

など、あわよくばでしかありませんが、公開しなければ、これら可能性を完全に閉ざしてしまう事になってしまうというか、、、まぁ自己満足でしかないかも。

オープンCAEのためのDEXCS for OpenFOAMハンドブック

表題本が発売されました。これまで特設ページにてDEXCS2019をベースの記事を、DEXCS2020ベースで書き直し、知人と出版社の厳しい校正が入ったもので、B5版で368ページとなり、価格も5,720円(税込み)となってしまい、個人で購入するにはちょっと躊躇する値段になってしまいました。



そこで、本書の情報ページを立ち上げました。

今の所、書中で使用しているカラー原図を一覧で表示できるようにしているのと、DEXCSアドバンス版(DEXCS2020のバグを修正し,さらに応用編のコンテンツであるDakota(最適化システム), preCICE(連成解析システム)などOpenFOAMとのコラボ例題を含めて即使えるようにしたパッケージ)のisoイメージをダウンロードできるようにしてあります。

いずれは、補遺や更新情報なども追加掲載していく予定です。

購入を躊躇されている方は、こちらから入っていただくのも宜しいかと。とりあえず、isoイメージを使ってみて、使えそうなら書籍の購入に進むのも有りです。

久しぶりの講習会

この1年あまりコロナの影響もあって、ほとんどお呼びが掛からなかったのですが、ようやく再開です。もっとも対面でなく、オンラインのハンズオンで、どちらも有料ですが、宜しかったら応募してやって下さい。

3/27(土)preCICEによるFSI(流体構造連成解析)入門

4/1(木)OpenFOAMによるCFD(流体解析)の基礎と実践 <オンラインセミナー>

上のものは、中・上級編になりますが、下のものは定番的な初級編です。またお値段も下のものはやや高いですが、こちら(講師のHP)からの紹介ということで少し割引があるやもしれません。

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ランチャーから起動する際には実行権限が必要という事です。