FrontISTRの計算速度2023年08月17日 16:44

最近はCAEから遠ざかっていましたが、EasyISTRがFrontISTRの新機能に対応したとのことで環境を新しくしました。
http://opencae.gifu-nct.ac.jp/pukiwiki/index.php?plugin=attach&refer=AboutEasyISTR&openfile=%BF%B7EasyISTR-3.40.230720%A4%CE%BE%D2%B2%F0.pdf

また、デスクトップPCでFrontISTRのtutorialの計算時間を比較しました。

WSL2のIntel MPI, MKL版が計算速度の面で良さそうです。https://github.com/kazuya-goto/autofistr のスクリプトで自動コンパイルしました。

私の環境ではWindows / Intel MPI, MKLの公式バイナリは低速でした。

なお、WindowsのIntel MPI, MKLの公式バイナリでの並列計算ですが、FrontISTRのフォルダのmpiexec.exeをフルパスで実行するとことが必要でした。

WindowsのWSL2にSalome meca 2022をインストールしました2023年08月20日 12:47

Windows版のバイナリはVer.2021で少し古いのと、ソルバーの連携が悪いです。

Linux版は、singularityを一からコンパイルする必要があるとのことで、面倒なので躊躇していました。

https://code-aster.org/forum2/viewtopic.php?id=27156
によると、設定済のWSL2用バイナリをダウンロードして、若干のコマンド操作でインストールできるとのことです。

実際に操作してみると、最新版を簡単にインストールできました。
形状作成、メッシュ作成、ソルバー、ポスト処理が動作することを確認しました。

なお、起動時の端末にWarningが表示されますが、動作に問題ないとのことです。また、マウスのカーソルが大きいのが気になりました。

WindowsにSalome Meca 2022を簡単にインストールする方法2023年08月23日 20:08

code-assterのフォーラムにWSL2へのインストール方法が書かれています。

https://code-aster.org/forum2/viewtopic.php?id=27156

導入後、私が修正したのは、以下の3点です。

1. ネットワークを接続できるようにした
以下のページを参考にして、/etc/wsl.confと/etc/resolv.confを編集
https://sqlazure.jp/r/tips/1752/

2. /opt/sm/binのシェルスクリプトの名前と内部コマンドが一致していなかったので、修正した

3. paraviewを起動するとQStandardPathsの警告がでるので、/opt/sm/binのシェルスクリプトにXDG_RUNTIME_DIRも追記した
https://broaden-your-horizons.com/ai-ss/pooping/err-matplotlib1/

六面体2次要素でメッシュをわざと増やして解析しても動作しました。
なお、計算はFrontISTRでMUMPSを使う方が速いです。

2023/8/25 追記
WSLのSalomemecaからメッシュメニューのグループ作成ができなかったです。
プリとポストは、Salome-9.11.0を使用して、AsterStudyとcode-assterのみsalomemeca 2022を使用しようかと考えています。

PrePoMaxの出力をParaviewファイルに変換する方法2023年08月25日 19:30

フリーの構造解析用CAEソフトで使いやすいのはPrePoMaxと言われています。
https://prepomax.fs.um.si/

日本語の情報としては
 書籍
   https://techbookfest.org/product/idNXQsbvEjPn4d9u1SKNCF?productVariantID=kuytdGQU3qc8GA3QxKbhAA
   https://www.kinokuniya.co.jp/f/dsg-01-9784777522156
  Qiita
https://qiita.com/Sagittarius_Chiron/items/fd806361ceca4864bc79

ただ、ポスト機能はParaviewの方が汎用性があるので、変換方法を探しました。

PrePoMaxのTmpフォルダーにあるfrdファイルをCalculiX to Paraview converterによりParaviewファイルに変換できました。
WSL2のUbuntu 20.04 / 22.04の環境で動作確認しました。スクリーンショットを添付します。
詳しくは以下のページ参考に。
https://github.com/calculix/ccx2paraview

ElmerFEMにIntel MKLを組み込んでコンパイルしました2023年08月30日 19:22

OSは、WSLのDebian 12 (VirtualBoxにおいても動作確認しました)を使用しました。
Ubuntu 22.04では、直接法の並列計算ができなかったので、Debianにしました。

MKLはintel oneAPIのものを用いました。

インストール方法は、Intelのページの記載通りです(Debian、Ubuntu用)。
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
| gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt update
sudo apt install intel-oneapi-mkl intel-oneapi-mkl-devel

以下のフォーラムの方法に、Hypre、Paraview、OpenMPを加えます。
http://www.elmerfem.org/forum/viewtopic.php?p=28018#p28018

sudo apt install libhypre-dev
qt関係で名前間違いがあるので、apt search で探してください。

source /opt/intel/oneapi/mkl/2023.2.0/env/vars.sh を実行してから、cmakeを実行する。
$MKLROOT が表示されればOKです。
cmake -DWITH_QT5=TRUE -DWITH_ELMERGUI:BOOL=TRUE -DWITH_MPI:BOOLEAN=TRUE -DWITH_Mumps:BOOL=TRUE -DWITH_LUA:BOOL=TRUE -DWITH_MKL:BOOL=TRUE -DWITH_Hypre:BOOL=TRUE -DHypre_INCLUDE_DIR="/usr/include/hypre" -DWITH_PARAVIEW:BOOL=TRUE -DWITH_OpenMP:BOOLEAN=TRUE -DWITH_ElmerIce:BOOLEAN=TRUE -DCMAKE_INSTALL_PREFIX=../install ../elmerfem

~/.bashrc に以下を追加します。
source /opt/intel/oneapi/mkl/2023.2.0/env/vars.sh
export ELMER_HOME=$HOME/elmer/install/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ELMER_HOME/lib
export PATH=$PATH:$ELMER_HOME/bin

ldd ElmerSolverとldd ElmerSolver_mpiのコマンドでmklにリンクされているか確認できます。

Salomeは、Debian 12用が配布されていないので、Salome_mecaを使用しました。
インストールは、一時的にsidのリポジトリを有効にして、singularity-containerをインストールしました。
https://packages.debian.org/sid/singularity-container

singularity run --app install salome_meca-lgpl-2022.1.0-1-20221225-scibian-9.sif
./salome_meca-lgpl-2022.1.0-1-20221225-scibian-9 --soft で起動します。

Paraviewは、Linux用をダウンロードして解凍するだけで動作します。
https://www.paraview.org/download/

本内容は、個人的なメモです。動作を保証するものではありません。