LoginSignup
2
0

More than 1 year has passed since last update.

GerrisをUbuntuにインストール

Last updated at Posted at 2021-10-23

この記事は流体解析のオープンソースソフトウェアであるGerrisを,Ubuntuにソースからインストールした際の手順を備忘録としてまとめたものです.

Gerrisとは?

GerrisはStéphane Popinetによって開発されたオープンソースの流体解析コードであり,先進的な機能の開発はBasiliskというコードに引き継がれています.Gerrisに関する情報はWikiのページでほぼ網羅的に入手できます.

インストールの種類

各種プラットフォームにインストールすることができます.

  • Linuxの場合,Ubuntu/Debian,Open SUSE,Fedra,CentOS用にバイナリが用意されています.
  • Macの場合,brewでインストールできます.
  • Windowsの場合,cygwin上でソースからコンパイルできたという情報があります.
  • どのようなプラットフォームでもソースからビルドできます.
  • 開発者向け(ソースを拡張する人)には,darcsを使うことが推奨されています.darcsはgitのようにソースコードのバージョン管理ができます.

インストールするもの

Gerrisでプリ・ポストを含めた流体解析を行うためには以下の3つをインストールする必要があります.

  • Gerris Flow Solver本体
  • GTS(GNU Triangulated Surface),形状データを扱うために必要
  • GfsView,可視化画像・動画を出力するために必要

darcsを用いたバージョン管理

今回はUbuntu 20.04にインストールを行います.はじめに,Wikiを参照してdarcsをインストールします.

$ sudo apt-get install darcs

darcsがインストールできたら,darcsを用いてGerrisのlatest stable versionのソースを持ってきます.

$ darcs get http://gerris.dalembert.upmc.fr/darcs/gerris-stable

同様にdarcsでGTS(GNU Triangulated Surface)のソースを持ってきます.

$ darcs get http://gerris.dalembert.upmc.fr/darcs/gts-stable

同様にdarcsでGfsView(可視化用ユーティリティ)のソースを持ってきます.

$ darcs get http://gerris.dalembert.upmc.fr/darcs/gfsview-stable

Gerris本体,GTS,GfsViewをインストールするためにはautomake(バージョン1.6以上)が必要であり,無ければ以下のようにインストールします.

$ sudo apt-get install automake libtool libtool-bin

今回,libtool --versionでlibtoolが見つからなかったので,以下のようにlibtool-binをインストールした.

$ sudo apt-get install libtool-bin

GTSのインストール

glib development packageをインストールします.

$ sudo apt-get install libglib2.0-dev

依存パッケージをインストールしておきます.

$ sudo apt-get install libglib2.0-dev libnetpbm10-dev m4 libproj-dev \
libgsl0-dev libnetcdf-dev libode-dev libfftw3-dev libhypre-dev \ 
libgtkglext1-dev libstartup-notification0-dev ffmpeg

さらに,以下のようにOpenMPIのライブラリをインストールします(今回は必要なし,インストール済み).

$ sudo apt-get install libopenmpi-dev

autogen.shスクリプトでconfigureスクリプトを生成し,makeでインストールします.

$ cd gts-stable
$ sh autogen.sh
$ make
$ sudo make install

prefixを指定しない場合は/usr/local以下にライブラリがインストールされます.新しくイントールされたライブリをシステムに認識させる必要があります.いま,/etc/ld.so.confの中身は以下のようになっています.

$ cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf

自分の環境では,/etc/ld.so.conf.d/libc.confの中に/usr/local/libが見つかりましたので,何も追記する必要はありません(/usr/local/libが見つからないようだったら適当な.confを作成して追記する).

$ cat /etc/ld.so.conf.d/libc.conf
# libc default configuration
/usr/local/lib

ldconfigを実行します.

$ sudo /sbin/ldconfig

HOMEディレクトリ以下などにライブラリをインストールした場合は,適当なパス(PATH, LD_LIBRARY_PATH)を設定してあげます.

Gerris本体のインストール

Gerrisは並列計算が可能なのでOpenMPIをインストールしておきます(今回は必要なし,インストール済み)

$ sudo apt-get install openmpi-bin libopenmpi-dev

autogen.shスクリプトでconfigureスクリプトを生成し,makeでインストールします.

$ cd ../gerris-stable
$ sh autogen.sh
$ make
$ sudo make install

make中に以下のようなエラーが出てコンパイルできませんでした.

gerris.c:38:10: fatal error: version.h: そのようなファイルやディレクトリはありません
   38 | #include "version.h"
      |          ^~~~~~~~~~~
compilation terminated.

version.hにはソフトウェアのバージョンが記載されているのですが,darcsで持ってきたソースコードにはこのファイルが含まれていないようでした.仕方ないので,source tarballを持ってきてコンパイルすることにします.

$ wget http://gerris.dalembert.upmc.fr/gerris/gerris-snapshot.tar.gz
$ tar zxvf gerris-snapshot.tar.gz
$ mv gerris-snapshot-131206 gerris

ソースを無事に持って来れたら,configureしてmakeします.

$ ./configure
$ make

またmakeの途中で以下のようなエラーを出力して止まってしまいました.

init.c:416:5: error: call to 'MPI_Errhandler_set' declared with attribute error: MPI_Errhandler_set was removed in MPI-3.0.  Use MPI_Comm_set_errhandler instead.
  416 |     MPI_Errhandler_set (MPI_COMM_WORLD, MPI_ERRORS_ARE_FATAL);

MPI関連のエラーで,新しいエラーハンドラーに変えてくださいね,ということなので該当ソースを修正します.

    else
      MPI_Init (argc, argv);
//      MPI_Errhandler_set (MPI_COMM_WORLD, MPI_ERRORS_ARE_FATAL);
      MPI_Comm_set_errhandler (MPI_COMM_WORLD, MPI_ERRORS_ARE_FATAL);
  }

修正したら,makeしてインストールします.

$ make
$ sudo make install
$ sudo /sbin/ldconfig

無事にインストールできたら,以下のようにバージョンを確認してみます.

$ gerris2D -V 
gerris: using 2D libgfs version 1.3.2 (131206-155120)
  compiled with flags: 
  MPI:          yes
  pkg-config:   yes
  m4:           yes
Copyright (C) 2001-2011 NIWA.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

GfsViewのインストール

依存パッケージライブラリをインストールします.

$ sudo apt-get install libgtk2.0-dev libgtkglext1-dev libstartup-notification0-dev libftgl-dev

バッチ処理でGUIビューワーを介さずに可視化動画の作成を行うためにOSMesaをインストールします.

$  sudo apt-get install libosmesa6-dev

configuremakeでインストールします.

$ cd ../gfsview-stable
$ sh autogen.sh
$ make
$ sudo make install

以上でGTS,Gerris本体,GfsViewのインストールは完了です.

まとめ

Gerris Flow Solverの本体と,形状データを扱うためのGTS,及び可視化用のGfsViewをUbuntuにインストールできました.無事にインストールできましたら,Gerris Tutorialに従って使い方を学びましょう.

2
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
2
0