🐙

Gmshのインストール

2022/03/09に公開

FreeCADの練習に、基礎からのFreeCAD [三訂版]を買ってみました。

応力解析機能の説明があり、やってみたらメッシュ作成のところで躓いてしまいました。

メッシャーの違い

些細な違いなので大した問題ではないのですが、本ではNetgenを使ってメッシュを作成していますが、手元の環境ではNetgenは出てこなくてGmshになります。

本は2021年6月出版で、FreeCADはバージョン0.19.1 (2021/3/12リリース)が紹介されていました。一方、手元の環境(Windows11 WSL Ubuntu 20.04)ではバージョン0.19.3 (2021/12/5リリース)を使っています。

ただ、下記をみると2017年にNetgenを使わなくなったのかな?

https://wiki.freecadweb.org/FEM_Install#Netgen

買った本は三訂版だけど、オリジナル版は2016年1月出版。この辺は内容更新されていなかったということなのかな?

Gmshのインストール

で、エラーの原因はGmshがインストールされていなかったためです。

apt installでインストールしてみるとエラー。(パッケージのバージョンは4.4.1。)

$ sudo apt install gmsh
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 gmsh : 依存: libgmsh4 しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。
$ sudo apt install libgmsh4
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 libgmsh4 : 依存: libocct-data-exchange-7.3 しかし、インストールされようとしていません
            依存: libocct-foundation-7.3 しかし、インストールされようとしていません
            依存: libocct-modeling-algorithms-7.3 しかし、インストールされようとしていません
            依存: libocct-modeling-data-7.3 しかし、インストールされようとしていません
            依存: libocct-ocaf-7.3 しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

今、インストールされているlibocct関係はバージョン7.5で、要求されているのはバージョン7.3とのこと。

$ apt list | grep libocct-data-exchange

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libocct-data-exchange-7.3/focal 7.3.3+dfsg1-1build1 amd64
libocct-data-exchange-7.5/focal,now 1:7.5.2+dfsg1-0~202107020155~ubuntu20.04.1 amd64 [インストール済み、自動]
libocct-data-exchange-dev/focal 1:7.5.2+dfsg1-0~202107020155~ubuntu20.04.1 amd64

libocct関係はFreeCADをインストールしたときにインストールされた模様。

$ apt-cache rdepends libocct-data-exchange-7.5
libocct-data-exchange-7.5
Reverse Depends:
  libocct-data-exchange-dev
  libocct-draw-7.5
  libocct-data-exchange-dev
  libfreecad-python3-0.19
  libnglib-6.2

FreeCADのインストールが悪さしたっぽいです。:-(

面倒なので、バイナリをダウンロードして使うことにします。最新はバージョン4.9.5 (2022/2/21リリース)。

$ wget http://gmsh.info/bin/Linux/gmsh-4.9.5-Linux64.tgz
$ sudo tar zxvf gmsh-4.9.5-Linux64.tgz -C /opt
$ sudo ln -s /opt/gmsh-4.9.5-Linux64 /opt/gmsh

PATHを追加しておきます。

--- .bashrc,orig        2022-02-28 21:38:49.321912600 +0900
+++ .bashrc     2022-03-09 23:07:42.060463000 +0900
@@ -126,3 +126,8 @@
   export PATH=/opt/paraview/bin:$PATH

 fi
+
+# for gmsh
+if [ -f /opt/gmsh/bin/gmsh ]; then
+  export PATH=/opt/gmsh/bin:$PATH
+fi

無事、Gmshでメッシュをきって、解析できました。

Discussion