スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[CFD備忘録] CGNS Version 2.5-4 のインストール方法(Ubuntu 64bit)

●記事修正
(2011/2/18) インストール先を「/usr/local」から「/opt」に変更しました。
        記事だけ修正し、インストールは再検証していません。

●関連記事

[CFD備忘録] CGNS Version 2.5-4 のインストール方法(Windows XP 32bit)

[CFD備忘録] CGNS Version 3.0.8 のインストール方法(Ubuntu 64bit)
[CFD備忘録] CGNS Version 3.0.8 のインストール方法(Windows XP 32bit)

●インストールの(私の)方針

今回インストールするのは、安定バージョンの CGNS Version 2.5-4 である。
CGNSライブラリ(cgnslib)と CGNSツール(cgnstools)の両方をインストールすることにする。
Version 2.Xでは、自分のプログラムをビルドする時、ADF版かHDF5版か、どちらか一方のライブラリを選んでリンクすることになり、ビルドされた実行ファイルはADF専用またはHDF5専用となる。
ちなみに新バージョンのVersion 3.0では、ライブラリは一種類であり、プログラム実行時にADFとHDF5の使用を切り替えることができる。

今回は、自分のプログラムをビルドする時、ADF版とHDF5版のどちらのライブラリでも選べるように、それぞれのライブラリ(&ツール)を別ディレクトリにインストールすることにする。

インストール先ディレクトリは任意だが、今回は以下のディレクトリにインストールすることにする。
・Tcl/Tk         /opt/tcl8.5.9
             ← シンボリックリンク /opt/tcl
・HDF5、szip、zlib    /opt/hdf5-1.8.5-patch1
             ← シンボリックリンク /opt/hdf5
・CGNS 2.5-4(ADF版)   /opt/cgns_2.5-4_adf
             ← シンボリックリンク /opt/cgns2a
・CGNS 2.5-4(HDF5版)  /opt/cgns_2.5-4_hdf5
             ← シンボリックリンク /opt/cgns2h

●可視化

私の使用環境では、「Tecplot 360 2009」でADF版CGNSファイルを可視化できた。
HDF5版CGNSファイルは可視化できなかった。

●コンパイラ

「gcc 4.4.3」を使用した。

●HDF5、szip、zlibの入手先
入手先:http://www.hdfgroup.org/HDF5/
  「hdf5-1.8.5-patch1.tar.gz」(ソース)、「szip-2.1.tar.gz」(ソース)、「zlib-1.2.5.tar.gz」(ソース)を入手した。

●szipのコンパイル/インストール(オプション。HDF5が内部的に使用するらしい)

①「szip-2.1.tar.gz」をホームディレクトリに置き、端末で以下を実行。
----------------------------- (begin) ---------------------------------------
cd
tar zxf szip-2.1.tar.gz
cd szip-2.1
./configure --prefix=/opt/hdf5-1.8.5-patch1
make
make check
sudo make install
------------------------------ (end) ----------------------------------------
「/opt/hdf5-1.8.5-patch1」の「include」「lib」の下に、sz関連のヘッダとライブラリがコピーされれば、インストール成功。

●zlibのコンパイル/インストール(オプション。HDF5が内部的に使用するらしい)

①「zlib-1.2.5.tar.gz」をホームディレクトリに置き、端末で以下を実行。
----------------------------- (begin) ---------------------------------------
cd
tar zxf zlib-1.2.5.tar.gz
cd zlib-1.2.5
./configure --prefix=/opt/hdf5-1.8.5-patch1
make
make check
sudo make install
------------------------------ (end) ----------------------------------------
「/opt/hdf5-1.8.5-patch1」の「include」「lib」の下に、zlib関連のヘッダとライブラリがコピーされれば、インストール成功。

●HDF5のコンパイル/インストール

①「hdf5-1.8.5-patch1.tar.gz」をホームディレクトリに置き、以下を実行。
----------------------------- (begin) ---------------------------------------
cd
tar zxf hdf5-1.8.5-patch1.tar.gz
cd hdf5-1.8.5-patch1
#./configure --help
./configure --prefix=/opt/hdf5-1.8.5-patch1 --with-zlib=/opt/hdf5-1.8.5-patch1 --with-szlib=/opt/hdf5-1.8.5-patch1
make
make check # 長時間かかるので、「PASSED」というメッセージを確認後、適当にCtrl-Cした
sudo make install
make check-install
------------------------------ (end) ----------------------------------------
「/opt/hdf5-1.8.5-patch1」の各サブディレクトリの下に、hdf5関連のファイルがコピーされれば、インストール成功。

② シンボリックリンクを張る
----------------------------- (begin) ---------------------------------------
cd /opt
sudo ln -s hdf5-1.8.5-patch1 hdf5
------------------------------ (end) ----------------------------------------

●Tclのインストール(CGNSツールを使用するなら必要)
入手先:http://www.tcl.tk/software/tcltk/download.html
  最新バージョン「tcl8.5.9-src.tar.gz」(ソース)と「tk8.5.9-src.tar.gz」(ソース)を入手した。

Tcl/TkをインストールせずにCGNSツールのインストールを試みると、makeしたとき以下のエラーが出た。
  adfwish.c:15:16: error: tk.h: No such file or directory
そこで、事前にTcl/Tkをインストールする。

①「tcl8.5.9-src.tar.gz」をホームディレクトリに置き、以下を実行。
----------------------------- (begin) ---------------------------------------
cd
tar zxf tcl8.5.9-src.tar.gz
cd tcl8.5.9/unix
./configure --prefix=/opt/tcl8.5.9
make
sudo make install
------------------------------ (end) ----------------------------------------
「/opt/tcl8.5.9」の「bin」「include」「lib」の下に、tcl関連のファイルがコピーされれば、インストール成功。

② シンボリックリンクを張る
----------------------------- (begin) ---------------------------------------
cd /opt
sudo ln -s tcl8.5.9 tcl
------------------------------ (end) ----------------------------------------

●Tkのコンパイル/インストール(CGNSツールを使用するなら必要)

①「tk8.5.9-src.tar.gz」をホームディレクトリに置き、以下を実行。
----------------------------- (begin) ---------------------------------------
cd
tar zxf tk8.5.9-src.tar.gz
cd tk8.5.9/unix/
./configure --prefix=/opt/tcl8.5.9
make
sudo make install
------------------------------ (end) ----------------------------------------

make時に以下のエラーが出たら、
  ~/tk8.5.9/unix/../generic/tk.h:78:23: error: X11/Xlib.h: No such file or directory
以下を実行して、再びmake。
----------------------------- (begin) ---------------------------------------
sudo apt-get install libx11-dev
------------------------------ (end) ----------------------------------------

make時に以下のエラーが出たら、
  /usr/bin/ld: cannot find -lXss
以下を実行して、再びmake。
----------------------------- (begin) ---------------------------------------
sudo apt-get install libxss-dev
------------------------------ (end) ----------------------------------------

「/opt/tcl8.5.9」の「include」「lib」の下に、tk関連のファイルがコピーされれば、インストール成功。

●CGNSライブラリ(ADF版)のコンパイル/インストール
入手先:http://cgns.sourceforge.net/download.html
  「cgnslib_2.5-4.tar.gz」(ソース)を入手した。
  「cgnstools-2-5-4.tar.gz」(ソース)を入手した(CGNSツールをインストールするなら必要)。

① 以下を実行して、ADF版ライブラリ&ツールのインストール先ディレクトリを作成しておく。
----------------------------- (begin) ---------------------------------------
cd /opt
sudo mkdir -p cgns_2.5-4_adf/{include,lib}
------------------------------ (end) ----------------------------------------

②「cgnslib_2.5-4.tar.gz」をホームディレクトリに置き、以下を実行してADF版ライブラリをコンパイル&インストール。
----------------------------- (begin) ---------------------------------------
cd
tar zxf cgnslib_2.5-4.tar.gz
cd cgnslib_2.5
#./configure -help
./configure --prefix=/opt/cgns_2.5-4_adf
make
sudo make install
------------------------------ (end) ----------------------------------------
「/opt/cgns_2.5-4_adf」の「include」「lib」サブディレクトリの下に、cgns関連のファイルがコピーされれば、インストール成功。

③ シンボリックリンクを張る
----------------------------- (begin) ---------------------------------------
cd /opt
sudo ln -s cgns_2.5-4_adf cgns2a
------------------------------ (end) ----------------------------------------

●CGNSツールのソース修正(ADF版&HDF5版共通)

①「cgnstools-2-5-4.tar.gz」をホームディレクトリに置き、以下を実行。
----------------------------- (begin) ---------------------------------------
cd
cd cgnslib_2.5
tar zxf ../cgnstools-2-5-4.tar.gz
cd cgnstools
------------------------------ (end) ----------------------------------------

② オリジナルのままconfigure&makeすると、以下のコンパイルエラーが発生した。
----------------------------- (begin) ---------------------------------------
tecplot_to_cgns.c:67: error: conflicting types for ‘getline’
/usr/include/stdio.h:651: note: previous declaration of ‘getline’ was here
make[1]: *** [tecplot_to_cgns.o] エラー 1
make[1]: ディレクトリ `~/cgnslib_2.5/cgnstools/utilities' から出ます
make: *** [prog-utilities] エラー 2
------------------------------ (end) ----------------------------------------

そこで、ソースを以下のように編集してコンパイルエラーを回避した。
----------------------------- (begin) ---------------------------------------
編集するソースコード:
  ~/cgnslib_2.5/cgnstools/utilities/tecplot_to_cgns.c
編集内容
  文字列「getline」を「getline_」に置換(すべて)
------------------------------ (end) ----------------------------------------

●CGNSツール(ADF版)のコンパイル/インストール

① 以下を実行して、ADF版ツールをコンパイル&インストール。
----------------------------- (begin) ---------------------------------------
cd
cd cgnslib_2.5/cgnstools
#./configure -help
./configure --prefix=/opt/cgns_2.5-4_adf
make
sudo make install
------------------------------ (end) ----------------------------------------
「/opt/cgns2a/bin」の下にツールがコピーされれば、インストール成功。

●CGNSライブラリ(HDF5版)のコンパイル/インストール

① 以下を実行して、HDF5版ライブラリ&ツールのインストール先ディレクトリを作成しておく。
----------------------------- (begin) ---------------------------------------
cd /opt
sudo mkdir -p cgns_2.5-4_hdf5/{include,lib}
------------------------------ (end) ----------------------------------------

② 以下を実行して、ADF版ライブラリのmake結果を消去
----------------------------- (begin) ---------------------------------------
cd
cd cgnslib_2.5
make clean
rm LINUX/libcgns.a
------------------------------ (end) ----------------------------------------

③ 以下を実行して、HDF5版ライブラリをコンパイル&インストール。
----------------------------- (begin) ---------------------------------------
#./configure -help
./configure --prefix=/opt/cgns_2.5-4_hdf5 --with-hdf5=/opt/hdf5 --with-szip=/opt/hdf5/lib/libsz.a
make
sudo make install
------------------------------ (end) ----------------------------------------
「/opt/cgns_2.5-4_hdf5」の「include」「lib」サブディレクトリの下に、cgns関連のファイルがコピーされれば、インストール成功。

③ シンボリックリンクを張る
----------------------------- (begin) ---------------------------------------
cd /opt
sudo ln -s cgns_2.5-4_hdf5 cgns2h
------------------------------ (end) ----------------------------------------

●CGNSツール(HDF5版)のコンパイル/インストール

① 以下を実行して、ADF版ツールのmake結果を消去
----------------------------- (begin) ---------------------------------------
cd
cd cgnslib_2.5/cgnstools
make clean
------------------------------ (end) ----------------------------------------

② 以下を実行。
----------------------------- (begin) ---------------------------------------
#./configure -help
./configure --prefix=/opt/cgns_2.5-4_hdf5
------------------------------ (end) ----------------------------------------

③「~/cgnslib_2.5/cgnstools/make.defs」を以下のように修正する。

  エディタで「LDFLAGS」を検索し、
----------------------------- (begin) ---------------------------------------
LDFLAGS =
  ↓ 変更
LDFLAGS = -L /opt/hdf5/lib -lhdf5
------------------------------ (end) ----------------------------------------

④ 以下を実行して、HDF5版ツールをコンパイル&インストール。

----------------------------- (begin) ---------------------------------------
make
sudo make install
------------------------------ (end) ----------------------------------------
「/opt/cgns2h/bin」の下にツールがコピーされれば、インストール成功。

●最終確認と後始末

① CGNSツールをインストールした場合は、端末で以下を実行して、ADF版とHDF5版のadfviewerを起動。
 起動前に、Tcl/Tkやhdf5の共有ライブラリへの LD_LIBRARY_PATH パスを設定した。
----------------------------- (begin) ---------------------------------------
# ADF版
export LD_LIBRARY_PATH=/opt/tcl/lib
/opt/cgns2a/bin/adfviewer &

# HDF5版
export LD_LIBRARY_PATH=/opt/tcl/lib:/opt/hdf5/lib
/opt/cgns2h/bin/adfviewer &
------------------------------ (end) ----------------------------------------
起動できたら、「Helpメニュー」→「About...」を選択し、バージョンの2~3行目を確かめる。
2行目は、ADF版は「ADF Library Version E01」、HDF5版は「HDF5 Version 1.8.5」と表示された。
3行目は、両方とも「CGNS Library Version 2.54」と表示された。

② ホームディレクトリの下の、ターボールを展開した以下のディレクトリは、ディレクトリごと削除してよい。
----------------------------- (begin) ---------------------------------------
zlib-1.2.5
szip-2.1
hdf5-1.8.5-patch1
tcl8.5.9
tk8.5.9
cgnslib_2.5
------------------------------ (end) ----------------------------------------

●自作プログラムのコンパイル例

例えばfoo.cをコンパイルするとき、以下を実行(szipもzlibも使用しない例)。

ADF版:「foo_a.exe」という実行ファイルを作るには
----------------------------- (begin) ---------------------------------------
gcc -o foo_a foo.c -I/opt/cgns2a/include -L/opt/cgns2a/lib -lcgns
------------------------------ (end) ----------------------------------------

HDF5版:「foo_h.exe」という実行ファイルを作るには
----------------------------- (begin) ---------------------------------------
gcc -o foo_h foo.c -I/opt/cgns2h/include -L/opt/cgns2h/lib -L/opt/hdf5/lib -lcgns -lhdf5
------------------------------ (end) ----------------------------------------

プログラムを実行するときは、必要に応じて、事前にhdf5やTcl/Tkの共有ライブラリへの LD_LIBRARY_PATH を設定する。
------------------------------ (end) ----------------------------------------
# Tcl/Tk
export LD_LIBRARY_PATH=/opt/tcl/lib

# HDF5
export LD_LIBRARY_PATH=/opt/hdf5/lib

# Tcl/Tk & HDF5
export LD_LIBRARY_PATH=/opt/tcl/lib:/opt/hdf5/lib
------------------------------ (end) ----------------------------------------

●課題

・CGNS++のインストール
http://cgnspp.sourceforge.net/
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

カネダック

Author:カネダック
 
普通のC++プログラマですが、業務で流体解析をやっていて格子職人と呼ばれています。
J.S.バッハ等、古楽をピリオド楽器による演奏で聴くのが好き。
リュート演奏にあこがれつつ、クラシックギターを弾きます。

保有資格
・中小企業診断士
・Oracle Master 8 Platinum(今のGold相当)

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。