スポンサーサイト

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

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

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

●関連記事

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

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

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

今回インストールするのは、ベータバージョンの CGNS Version 3.0.8 である。
CGNSライブラリ(cgnslib)と CGNSツール(cgnstools)の両方をインストールすることにする。

インストール先ディレクトリは任意だが、今回は以下のディレクトリにインストールすることにする。
・Tcl/Tk         /opt/tcl8.5.9
             ← シンボリックリンク /opt/tcl
・HDF5、szip、zlib    /opt/hdf5-1.8.5-patch1
             ← シンボリックリンク /opt/hdf5
・CGNS 3.0.8       /opt/cgns_3.0.8
             ← シンボリックリンク /opt/cgns3

●可視化

私の使用環境では、ADF版とHDF5版のいずれのCGNSファイルも、可視化できなかった。
可視化ソフト用にファイルフォーマットを変換すれば、可視化は可能だろう。
CGNSツールの中に、変換プログラムがあるかもしれない。

●cgns-3.0.8の注意点

現象:
CGNSツールに、正しく動かないプログラムがあった。

原因:
「cgnslib.h」で定義されているenum「ElementType_t」に、新たに「PYRA_13」が加わっている。
そのため、「PYRA_13」以降の数字が、CGNSの旧バージョンと比べて1ずつずれるため、cgnstoolsの「cgnsutil.c」で定義されている配列「element_node_counts」へのアクセスが正しく行われなくなる。
従って、「cgnsutil.c」とリンクしているプログラムは正しく動かない。

●コンパイラ

「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ライブラリのコンパイル/インストール
入手先:http://cgns.sourceforge.net/download.html
  「cgns-3.0.8-Source.tar.gz」(ソース)を入手した。

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

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

③シンボリックリンクを張る
----------------------------- (begin) ---------------------------------------
cd /opt
sudo ln -s cgns_3.0.8 cgns3
------------------------------ (end) ----------------------------------------

●CGNSツールのコンパイル/インストール

①CGNSツールのソース修正

オリジナルのまま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]: ディレクトリ `~/cgns-3.0.8-Source/src/cgnstools/utilities' から出ます
make: *** [prog-utilities] エラー 2
------------------------------ (end) ----------------------------------------

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

②以下を実行して、ツールをコンパイル&インストール。
----------------------------- (begin) ---------------------------------------
cd
cd cgns-3.0.8-Source/src/cgnstools
#./configure -help
./configure --prefix=/opt/cgns_3.0.8
make
sudo make install
------------------------------ (end) ----------------------------------------
「/opt/cgns3/bin」の下にツールがコピーされれば、インストール成功。

●最終確認と後始末

①CGNSツールをインストールした場合は、端末で以下を実行して、cgnsviewを起動。
 起動前に、Tcl/Tkとhdf5の共有ライブラリへの LD_LIBRARY_PATH を設定した。
----------------------------- (begin) ---------------------------------------
export LD_LIBRARY_PATH=/opt/tcl/lib:/opt/hdf5/lib
/opt/cgns3/bin/cgnsview &
------------------------------ (end) ----------------------------------------
起動できたら、「Helpメニュー」→「About...」を選択し、バージョンの2行目を確かめる。
「ADF」や「HDF5」の文字はなく、「CGNS Library Version 3」と表示された。

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

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

例えばfoo.cをコンパイルするとき、以下を実行(szipもzlibも使用しない例)。
----------------------------- (begin) ---------------------------------------
gcc -o foo foo.c -I/opt/cgns3/include -L/opt/cgns3/lib -L/opt/hdf5/lib -lcgns -lhdf5
------------------------------ (end) ----------------------------------------

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

# Tcl/Tk & HDF5
export LD_LIBRARY_PATH=/opt/tcl/lib:/opt/hdf5/lib
------------------------------ (end) ----------------------------------------
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

カネダック

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

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

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

この人とブロともになる

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