1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

メッシュ作成ソフトウェア Gmsh を Google Colaboratory で使う

Posted at

有限要素法におけるメッシュ作成ソフトウェアである。
Gmsh
image.png
Google Colaboratory で使う方法をメモとして残します。
image.png

はじめに

今回は、Gmsh の チュートリアル
https://gitlab.onelab.info/gmsh/gmsh/-/blob/master/tutorial/python/t1.py
Google Colaboratory(以下 colab) で実行できることをゴールとします。

ソースはここに置いておきます。
https://colab.research.google.com/drive/1E_jqvzYpJ84iBfVAPFV5v55szWo0xpVv?usp=sharing

環境設定

Google Colaboratory に gmsh をインストールします。
image.png

1. gmsh 本体のインストール

gmsh 本体 は apt-get でインストールします。

!apt-get install gmsh

2. python モジュール gmsh のインストール

python モジュール gmshpip でインストールします。

!pip install --upgrade gmsh

3. import gmsh に失敗する

2021.08.22 現在 import gmsh に失敗する
原因は、 以下の示す colab のモジュールの参照 path に gmsh のインストールフォルダ/usr/local/lib/python3.7/site-packages/ が含まれていないからです。

import sys
import pprint
pprint.pprint(sys.path)

['',
'/content',
'/env/python',
'/usr/lib/python37.zip',
'/usr/lib/python3.7',
'/usr/lib/python3.7/lib-dynload',
'/usr/local/lib/python3.7/dist-packages',
'/usr/lib/python3/dist-packages',
'/usr/local/lib/python3.7/dist-packages/IPython/extensions',
'/root/.ipython']

対策としてcolab の参照に一時的に追加します。

import sys
sys.path.append('/usr/local/lib/python3.7/site-packages/gmsh-4.8.4-Linux64-sdk/lib/')

チュートリアルを実行します。

gmsh でモデルを作成する

import gmsh
gmsh.initialize()
gmsh.model.add("t1")
lc = 1e-2
gmsh.model.geo.addPoint(0, 0, 0, lc, 1)
gmsh.model.geo.addPoint(.1, 0, 0, lc, 2)
gmsh.model.geo.addPoint(.1, .3, 0, lc, 3)
p4 = gmsh.model.geo.addPoint(0, .3, 0, lc)
gmsh.model.geo.addLine(1, 2, 1)
gmsh.model.geo.addLine(3, 2, 2)
gmsh.model.geo.addLine(3, p4, 3)
gmsh.model.geo.addLine(4, 1, p4)
gmsh.model.geo.addCurveLoop([4, 1, -2, 3], 1)
gmsh.model.geo.addPlaneSurface([1], 1)
gmsh.model.geo.synchronize()
gmsh.model.addPhysicalGroup(1, [1, 2, 4], 5)
ps = gmsh.model.addPhysicalGroup(2, [1])
gmsh.model.setPhysicalName(2, ps, "My surface")
gmsh.model.mesh.generate(2)
gmsh.write("t1.msh")
gmsh.finalize()

モデルを表示してみる

meshiomatplotlib を使って結果を表示してみます。

!pip install meshio
import meshio
meshio.read("t1.msh")
import matplotlib.pyplot as plt
reader = meshio.read("t1.msh")
x = reader.points

fig = plt.figure()
plt.rcParams["font.size"] = 18
plt.rcParams["figure.figsize"] = (10.0, 6.0)
plt.figure(figsize=(16, 16))
plt.triplot(x[:, 0], x[:, 1], color="gray")
plt.gca().set_aspect("equal")
plt.savefig("mesh.svg")

image.png

まとめ

結局この記事は、

ハマったポイント
インストールフォルダがエラーの原因になるらしい
ので
sys.path.append('/usr/local/lib/python3.7/site-packages/gmsh-4.8.4-Linux64-sdk/lib/')
を実行する

が言いたかっただけ

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?