DEXCSランチャー on CentOS



DEXCSランチャーは、DEXCS2020あたりから、DEXCS for OpenFOAM(on ubuntu)以外のLinux環境でも動かせることを目標に開発しているが、今回具体的にCentOS7で動作することを確認した。DEXCSランチャーがv2.5のままで動作しなかった部分は改変したり、インストール以前のモジュールインストールで諸々回り道もあったが、モジュールインストールも含めて、多分これが最短コースとなるであろうやり方にまとめ直したものを備忘録としてここに記しておく。

但し、今回構築した環境では、以下の難点がある点はお断りしておく。

  • TreeFoamの動作に関して一部不具合がある
  • DEXCSツールバーからの起動についても少々難有りである
  • 日本語メニューになってくれない

動作確認環境

CentOS Linux release 7.9.2009 を仮想環境(VMware Workstation 16 Player)にインストールして動作確認

主要モジュールとインストール先

DEXCSランチャーのうち、DEXCSワークベンチを動かすのに必要なモジュールは、OpenFOAMは当然のこととして、ParaViewとFreeCADがインストールされているのが必須で、ここではそれぞれのモジュールのバージョンやインストール情報が以下のようになっているものとして説明する。すでにOpenFOAMの稼働する環境が存在するのであれば、読み替えて実施もできるであろう。但し、FreeCADに関しては、AppImage版以外の動作は確認できておらず、DEXCS for OpenFOAMでの古いバージョンでの経験からすると、難しそうである。

  • OpenFOAM-v2106 ⇒ (インストール先)/usr/lib/openfoam/openfoam2106
  • ParaView-5.10.0-RC1-MPI-Linux-Python3.9-x86_64 ⇒ /usr/bin/paraview で起動できるようにしてある
  • FreeCAD_0.19-24276-Linux-Conda_glibc2.12-x86_64.AppImage
  • TreeFoam-3.07+dexcsSwak

DEXCSツールバーの多くはTreeFoamのサブセットを起動するものであり、TreeFoamがインストールされていることが前提となる。但しTreeFoamがインストールされていないと、これらの機能が使えないというだけで、DEXCSワークベンチ(メッシュ作成とソルバー実行、プロット処理)を使うには支障ない。因みにDEXCS-WBとDEXCSツールバーの違いは以下の図を参照されたい。

DEXCSランチャーのインストール方法

DEXCS2021 for OpenFOAM の内容($HOME/.FreeCAD)そのままでは不具合があるので、GitLabのページからソース一式(v2.5.3以降)をダウンロード(あるいはgit clone git@gitlab.com:dexcsof/dexcs-launcher.git)する。

configDexcs

同梱のconfigDexcs.2021等を参考に、configDexcsを作成。本例の場合は、前項のインストール先モジュール情報に基づくと以下の内容になる(行頭の#はコメント)。

# cfMesh がインストールされたOpenFOAM環境
    cfMesh  /usr/lib/openfoam/openfoam2106

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

#dexcs のインストール場所
    dexcs   /opt/DEXCS

なお、最下行のdexcsのインストール先については、TreeFoam+dexcsSwakを使用する場合に必要なモジュールの収納先を指定するもので、オリジナルのTreeFoamを使用する場合や、そもそもTreeFoamをインストールしていない場合には、2番目のTreeFoam のパラメタも含めて不要である(但し、後述のFreeCADの設定メニューで、雛形フォルダの設定変更が必要になる)。

updateDexcsLauncher.sh

 ソース一式の収納フォルダ中に、updateDexcsLauncher.sh というファイルが存在するので、これを実行する。その際、既存の user.cfg を上書きするかどうかの質問があるので、上書きして良ければ「 Y 」を入力してインストール(.FreeCADのアップデート)は完了である。すでにFreeCADを使い込んで、独自のマクロツールなどを使用している場合には、上書きしないで、同梱README.md中のセットアップ方法の記述を参考に、user.cfgを変更する作業をしても良い。

FreeCADの設定

FreeCADを起動したら、「編集」⇒「設定」メニューを選択した以下の設定画面で、左欄の[dexcsCfdOf]を選択すると、以下の設定画面状態となる。

本記事の前項(主要モジュールとインストール先)で対象としたシステムであれば、このまま確認するだけで良いが、OpenFOAMやParaViewのインストール場所が異なる場合に、この画面を使って指定箇所を変更する。特に、TreeFOAM+dexcsSwak を使わない場合に、4番目の「Template Case」が存在しないことになってしまうので、標準チュートリアルケースなり、事前に雛形に出来そうなケースファイルを用意しておくことが必要になる。

なお、5番目(Software dependencies)以下のボタンについては、DEXCSワークベンチ(dexcsCfdOF)を作成するにおいて元ネタであるCfdOF用に付属していたもので、DEXCSワークベンチ用にはこれらを削除してリリースしたかったが、削除すると全体動作がおかしくなるので、やむを得ず残したままの状態にしてある。それぞれのボタンを押したからといって、システムに不具合を生じる可能性はないと思うが、多分正しく機能しない点はお断りしておく。

DEXCSツールバーの動作について

DEXCSランチャーのうち、DEXCS-WB(ワークベンチ)は凡そ問題なく動作することは確認できているが、DEXCSツールバーについては不具合がいくつかあるので、ここにその内容を取り纏めておく。

また、DEXCSツールバーだけを並び方向を変えて表示すると以下のようになっているが、システム(アイコンファイルの有無)によって異なってくる。

TreeFoamを使わない(インストールされていない)場合

そもそもDEXCSツールバーにおいて、TreeFoamのサブセットを使えないのは当然として、ほとんどのボタンに×マークが付く(アイコンが非表示というだけである)が、以下一部のボタンは使用可能である。

  • 解析ケースファイルの確認
  • 計算結果を削除して、caseを初期化します
  • paraFoamの起動
  • postProcessingファイルのプロット
  • OpenFOAM端末を起動
  • postProcessプロット用GUIエディタ
  • FSI用inpファイルを作成します
  • stlファイル(アスキー形式)を作成します
  • 複数の形状の和集合を作成
  • オブジェクトの体積・表面積・重心を表示します
  • オブジェクトのダウングレード

TreeFoam+dexcsSwakを使う場合

前節(TreeFoamが無い場合)に加えて以下のボタンが使用可能になるが、使えるというだけで、いずれもDEXCS-WBでの使用が推奨される。

  • cfMesh用設定ファイルを作成します
  • solverを起動(但し、単体計算で、計算ログは表示されない)
  • plotWatcherの起動

以下のボタンは、押しても実行はしてくれないが、押した後に、ケースフォルダ中で開いた端末から./run を実行すると、TreeFoamのサブセット機能がそれなりには使える。

  • 新規にcaseを作成。またはsolverやmeshを入れ替え
  • gridEditorの起動
  • Propertiesの編集
  • Dict(system)の編集
  • 並列処理

treefoamを起動します」のボタンだけは機能しないので、TreeFoamを使いたい場合は、コマンドラインでi

$ /opt/TreeFoam/treefoam

と入力して起動する。

TreeFoamの不具合について

上述したように端末から、/opt/TreeFoam/treefoamと入力すれば、起動できるが、一部の機能(vtk表示)が不全である。pytho3-vtkはインストールされているはずなんだが。。。原因は不明。本記事の本来目的からは外れるので、これ以上の追求は中断している。ご要望あれば調査する。

日本語表示について

端末にて、echo $LANG と打ち込んだら、

en_US.UTF-8

と帰ってきた。これが ja_JP.UTF-8 になっていれば、日本語表示されるはずで、こちらはそんなに難しいことでははいはずだが、これも本記事の本来目的から外れるので、これ以上の追求は中断している。これもご要望あれば調査する。

主要モジュールのインストール方法メモ

動作確認には、手元にCentOSで稼働する環境がなかったので、DEXCSランチャー以外のモジュール(OpenFOAM, ParaView, FreeCAD, TreeFoam,…)のインストールも実施することになったので、以下に実際にインストールした方法について取り纏めておく。

なお、ほとんどのモジュールがバイナリファイルの直接コピーなり、yumのパッケージインストールができたので、一昔前の苦労は何だったのかという内容になっている。

OS、デスクトップ環境

何故か、ネットワークがつながらないようであった。そこで、何年かぶりにvi エディタを使わざるを得ない状況となった。

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=06cfdf96-e304-4765-b67d-d0b28edd6b8f
DEVICE=ens33
ONBOOT=yes

最下行が、no になっていたので、これをyesに変更してreboot したらつながった。

ここで、CentOSって、標準はGUIのデスクトップ環境が組み込まれないということに気付いた。

$ sudo yum update -y
$ sudo yum group install “GNOME Desktop” -y

インストールには10分程かかるが、再起動してログインし、startx と入力してようやくデスクトップ環境が立ち上がる。

最近のvmplayerでは、共有ファイルを使えるようにするのに、ひと手間必要になった。

$ sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o nonempty

OpenFOAM

基本的には以下のサイト情報を、ほとんどそのまま信用できたが、

https://develop.openfoam.com/Development/openfoam/-/wikis/precompiled/redhat

dnfが無いといって叱られたので、これも追加インストールした。

$ sudo yum -y install dnf-plugins-core
$ sudo yum -y config-manager –set-enabled PowerTools
$ sudo yum -y install epel-release
$ sudo yum install dnf
$ sudo dnf copr enable user/project
$ sudo dnf -y copr enable openfoam/openfoam
$ sudo yum -y install openfoam-selector
$ sudo yum -y install openfoam

ParaView

Paraviewのダウンロードサイトより最新版(ParaView-5.10.0-RC1-MPI-Linux-Python3.9-x86_64.tar.gz)をダウンロードして展開。これを/opt下に収納し、

$ sudo ln -s /opt/ParaView-5.10.0-RC1-MPI-Linux-Python3.9-x86_64 /opt/paraview

また、ParaViewの実行コマンドとして/usr/bin/paraviewを以下の内容

#!/bin/bash
/opt/paraview --mesa $1

paraFoamの実行コマンドとして、/usr/bin/paraFoamを以下の内容

#!/bin/bash
#paraview launcher
export LD_LIBRARY_PATH=''
a=`pwd`
openName=`basename $a`.foam
touch $openName
/usr/bin/paraview $openName
rm $openName

のスクリプトファイル(実行権限付き)を収納した。

FreeCAD

これもFreeCADのダウンロードサイトより最新のAppImage版(FreeCAD_0.19-24291-Linux-Conda_glibc2.12-x86_64.AppImage)をダウンロードし、そのまま/opt下に収納。

$ sudo chmod +x FreeCAD_0.19-24291-Linux-Conda_glibc2.12-x86_64.AppImage
$ sudo ln -s /opt/FreeCAD_0.19-24291-Linux-Conda_glibc2.12-x86_64.AppImage /opt/freecad
$ sudo yum install -y libXScrnSaver

TreeFoam+dexcsSwak

TreeFoamに関しては、DEXCS2021 for OpenFOAM で構築した仮想マシンの /opt/TreeFoam および/opt/DEXCS以下をまるごと、ホームディレクトリ下の.TreeFoamUser をコピーしたものを予め共有フォルダ下に収納しておいて、

$ sudo cp -r TreeFoam /opt
$ sudo cp -r DEXCS /opt
$ cp -r .TreeFoamUser ~/

としてコピー収納したのと、CentOS7には、python3が入っていないので、以下python3周りでいくつかモジュールインストールが必要であった。

python3

$ sudo yum install -y https://repo.ius.io/ius-release-el7.rpm
$ sudo yum install -y python36u
$ sudo yum install -y python36u-libs
$ sudo  yum install -y python36u-devel
$ sudo  yum install -y python36u-pip
$ sudo yum install -y python36-gobject
$ sudo chmod 666 /opt/TreeFoam/TreeFoamVersion
$ sudo pip3 install -y PySide2
$ sudo pip3 install -y vtk

MPI

OpenFOAMで並列計算できるよう、MPIのインストールも必要であった。

$ sudo yum install -y openmpi