MPB on Linux立ち上げメモ

注:このメモは説明形式で書いてはいますが、完全な個人の備忘録です。間違っている事もあると思いますのでお気をつけ下さい。逆に、間違ってる点等がありましたら教えてもらえると助かります。

ここはSteven G. Johnson によって作られたMIT Photonic-Bands packageのインストールに関するメモです。彼はPhotonic Crystals: Molding the Flow of Light, J. D. Joannopoulos, R. D. Meade, and J. N. Winn (Princeton, 1995) を書いたJoannopoulosのグループの一人。

12/06/2000現在バージョンは0.12

MPBのホームページにもあるようにこのパッケージを導入するためにはさまざまな物がインストールされている必要があります。が、あなたがIntel Processor上で動くLinuxを使っているのであればかなりその負担は軽減されます。

基本的にほとんど全てのパッケージはGNU形式で配布されており、

>./configure
>make
>make check
>make install

でインストールする事ができます。rpmパッケージとして配布されているものに至ってはLinuxをインストールしただけで同時にインストールされている可能性が高いです。(もちろんどの"モデル"でインストールしたかによりますが。)

一応MPBに書かれているインストールの順番通りに書いて行く事にします。

前準備

インストール作業を始める前に環境を整えます。使っているシェルによって異なりますが、コンパイラに与える情報を.bash_profileや.cshrcに書き込みます。MPBのHome Pageに書かれている

setenv LDFLAGS "-L/usr/local/lib"
setenv CPPFLAGS "-I/usr/local/include"

は./cshrc向けの物です。次に、shared libraryを使えるようにするためにまず/etc/ld.so.confに/usr/local/libの一行を加えて、それを認識させるために/sbin/ldconfigを実行します。この作業は基本的にルート権限を持っている事を前提にしています。そうでない人は上記のLDFLAGS等を変更する必要があるでしょう。多分。

BLAS

BLASは"Basic Linear Algebra Subroutines,"の略で基本的な数値計算の関数をパッケージ化したもの。BLAS Home Pageでさまざまな形式で配布されている。一番簡単な方法はrpm形式で配布されているものをダウンロードしてインストールする。例えばここ

blas_linux.tgz

LAPACK

LAPACKはBLASを使った線形代数のパッケージ。 Linear Algebra PACKageの略。LAPACK Home Pageから持ってきてコンパイルしてもいいが、BLASの時と同様にNETLIBから持ってくるのが簡単。

lapack_linux.tgz

MPI (optional)

これは特にインストールせずに使っています。(12/06/2000現在)

HDF5 (optional)

optionalと書いていますがこれがなくては結局何もできないでしょう。このhdf5形式で計算結果を出力する事を前提にしているため必ず必要です。で、当然のことながらこのデータを見るために別途ソフトウエアが必要になります。まずHDF Home Pageに行ってDownload HDF5 の Platforms Supportedからダウンロードしてもかまいませんし、自分でソースからコンパイルしてもうまくいくでしょう。

hdf5-1.2.2.tar.gz 又はPlatforms Supportedのどれか。

あと必要になるのでThe h5utils Package

h5utils-1.5.tar.gz

も持ってきて入れておきましょう。

GNU Readline (optional)、 GNU Guile、 GNU Autoconf (optional)

Linuxを使っている人はラッキーです。最近のディストリビューションでは、ほぼDefaultで入っているでしょう。Optionと書いてはいますがReadlineやAutoconfも必ず使います。もしかしたらGuileをコンパイルしなければいらないのかもしれませんが。とにかく無駄な時間を費やさずにすむでしょう。とくに個別に入れようとする場合にはGNU m4と呼ばれるパッケージも別途必要になるので面倒です。i386系であれば全てrpm化されているのでそうでも無いかもしれませんけどね。

FFTW

高速フーリエ変換のパッケージ。これも親切な事にrpmパッケージが配布されている。FFTWのHome Pageからfftw-2.1.3-1.i386.rpmfftw-2.1.3-devel-1.i386.rpmが持ってこれる。ソースを

fftw-2.1.3.tar.gz

持ってきてコンパイルしても特に問題はない。最適化はちゃんと考えたほうがいいですが。

libctl

libctlはguileと組み合わせてインタラクティブな条件入力をするために使われているらしい。

libctl-1.2.tar.gz

を持ってきて通常のインストール作業を行う。

MIT Photonic-Bands

このプログラムを走らせるためにいろいろとやってきました。

mpb-0.12.tar.gz

をダウンロードしてインストールしますが、上記のソフトウエアの数々がきちんとインストールされてさえいれば、それほど問題は無いでしょう。使い方等はonline manualがありますのでここでは書きません。

本家の方のインストールではここまでしかありません。基本的にバンド構造だけをテキストファイルとして得るにはここまでで十分ですが、出力されたものを視覚的に取り扱うにはここから先の作業も必要です。

上にも書きましたがこのプログラムで出力されるFile形式はHDF5という形式を使っています。この形式は比較的新しいため、市販のソフトでも対応しているものは少ないようです。この前のhdf4形式であればHDFファイルとしてIgorやTransform等で視覚化できたのですが、hdf5の場合データの構造が更に多重化されているため対応できていません。(単に知らないだけかもしれませんが。)そこでVis5d+を入れる事にしました。

netCDF

まずnetCDFを入れます。The Unidata network Common Data Form (netCDF)ですがVis5d+を入れるのに必要な3D graphic package, Mesaを入れるのに必要になります。

ftp://unidata.ucar.edu/pub/netcdf/にいろいろとおいていますが、netcdf-3.4はFORTRAN Compilerの認識がおかしいためg77ではうまくコンパイルできません。そのため、β版ですが

netcdf-3.5-beta6.tar.Z

を使えばうまくいきます。不具合もあるのかもしれませんが今のところ問題なく動いています。

Mesa

次にMesaを入れます。これは上でも書きましたが3D Graphics Libraryです。誘電体や電場の様子を3次元表示するために必要なのでしょう。ftp://ftp.mesa3d.org/pub/sourceforge/mesa3d/にある

MesaLib-3.4.tar.gz

を持ってきてインストールしましょう。

Vis5d+

ようやくVis5d+のインストールです。ここにある物を持ってきます。

vis5d+-1.0.2.tar.gz

後は通常のインストール作業を行えば動きます。下はmpbを用いて出したダイヤモンド格子の図です。

 

wpe1.jpg (1154 バイト)

E-mail

INOUYE's Home Page

inoue@a-gogo.ws