#はじめに
オープンソースメッシャーのgmshをwsl環境にインストールしたいと思います。
単一版であればバイナリをダウンロードするだけですが、並列版の場合はソースからコンパイルする必要があります。
- [Gmsh] (https://gmsh.info/)
- [Gmsh compilation] (https://gitlab.onelab.info/gmsh/gmsh/-/wikis/Gmsh-compilation)
- Gmsh Info : Appendix C にコンパイルの件があります。
環境
OS : Windows 10
WSL : Ubuntu 18.04 LTS
- 単一版code_asterをインストールした環境で実施しています。
#ダウンロードとコンパイル
sudo apt install git ca-certificates liboce-foundation-dev liboce-modeling-dev libfltk1.3-dev
git clone http://gitlab.onelab.info/gmsh/gmsh.git
cd gmsh
mkdir build
cd build
cmake -ENABLE_OPENMP ..
make
並列効果の確認
下記の設定で並列数毎の計算時間を確認してみたいと思います。
test.geo
SetFactory("OpenCASCADE");
lc = .005;
Mesh.CharacteristicLengthMin = lc;
Mesh.CharacteristicLengthMax = lc;
Box(1) = {0, 0, 0, 1, 1, 1};
Physical Volume(1) = {1};
./path/to/gmsh -3 -algo hxt -nt number_of_threads test.geo
...
Info : 5004628 nodes 31096484 elements
作成されたメッシュ
所要時間一覧
number_of_threads | meshing 1D | meshing 2D | meshing 3D |
---|---|---|---|
1 | 0.0011s | 7.60s | 46.6s |
2 | 0.0012s | 4.05s | 42.7s |
4 | 0.0008s | 2.91s | 36.3s |
8 | 0.0014s | 1.81s | 34.3s |
並列効果はそれなりにありそうです。
1Dは元が少ないので効果が見えず、2Dではそれなりの効果、3Dではなんとなくの結果が出ている様に見えます。
真価を発揮するためにはもう少し設定が必要な模様です。今後の課題にしたいと思います。
以上です。