Previous | ToC | Next |
この文書は 2009/9/7 の総研大講義「シミュレーション天文学」に附属する実
習のための資料です。
ソフトウェアのインストールと動作チェックを兼ねたいくつかのコマンドの紹
介まで書いた。
glnemo2 に関する記述を Troubleshooting に移動。
MacOS X で動作確認。2章の構成変更。
この章では、実習当日までにしておくべき準備について述べます。。これができて
いないと当日の実習は無意味になるので、必ずやっておいて下さい。
この実習では、基本的に受講生が自分で持参した計算機の上で作業します。こ
のため、使用するソフトウェアをあらかじめインストールする必要があります。
以下、 OS が Windows (Vista では問題があるかもしれません)、 Linux、Mac
OS X のそれぞれについて、インストールするべきソフトウェアとその作業手順
を述べます。
一応、CfCA の計算機上でも必要なソフトウェアが実行可能(になる予定)です
が、ネットワークごしになるので可視化ツール等はあまりスムースに動かない
です。
インストールするべきソフトウェアは、「nemo」です。 Nemo はメリーランド
大学の Peter Teuben が20年以上にわたって開発・メンテナンスをしている、
主に無衝突 体系用(ですが、衝突系にも使えるし SPH 等へのサポートも
ある)のシミュレーションをサポートする様々なツールの複合体です。沢山のプ
ログラムが共通のユーザーインターフェースやファイル形式をもつことで、色々
便利なことができるようになっています。
nemo のインストールには、グラフィックパッケージ pgplot のインストール
が必要ですが、これは nemo のインストールスクリプトの中で自動的に行われ
るはずなので、上手くいっていればこれは気にする必要はありません。また、
今回の実習では
glnemo はマルセイユ天文台の Jean-Charles Lambert が開発している、
nemo のファイル用に作られた3次元可視化プログラムです。Linux(Qt が動く
UNIX 全般) と Windows の両方で動きますが、まだ色々開発中という感じもあ
ります。が、スナップショットファイルの3次元表示や簡単なアニメーション作
成には十分に使え、ズーム、回転等を非常に高速に行うことができます。
GalacTICS はバルジ・ディスク・ハローからなる銀河モデルの作成パッケージ
です。WIP は PGPLOT をインタラクティブに利用するためのプログラムです。
nemo インストールのためにには、
OS によって、いくつか別の用意が必要になります。ここではまずそれらにつ
いて述べます。
Windows の場合、 Cygwin の利用が前提になるので、 Cygwin のインストール
について述べます。なお、 X11 およびコンパイラ等がはいっていることが必要
なので、 Cygwin を既につかっている、という人の場合でも、 setup.exe を実
行してフルインストールの状態にして下さい。
既に Cygwin を使っていて、 X Windows もコンパイラも入っている、という
人は 2.2 節に進んで下さい。そうでない人は以下の手順
で Cygwin をインストールして下さい。既に Cygwin の基本部分がはいってい
て追加インストールする場合でも、以下の手順で問題ありません。
Windows 上の適当なブラウザで以下を実行します。まず、図 1 にある Cygwin のトップページ から、
Choose installation type ではデフォルトになっているインターネットから
を選択し、
Cygwin 自体は正しく入っても、 X が動かない時があります。この時には、
Cygwin の X サーバーではないものをいれるとそっちは動くこともあります。
Xming のサイト
から、
Xming-fonts
をまずインストールして、それから
Xming
をインストールしましょう。これらはでる画面に従っていけばなんとかなると
思います。もしも、上の、 Xming, Xming-fonts へのリンクが壊れていたら、
Xming のサイト
にあるリンクを辿って下さい。
この時は、まず Xming Xserver を起動し、それから Cygwin bash shell を起
動して、その中から Xterm 等を起動する必要があります。環境変数 DISPLAY
に 127.0.0.1:0.0 を設定しないと上手く動かないかもしれないので注意して
下さい。
Linux の場合も、コンパイラ、 X11 の開発環境といった、デフォルトではは
いっていないかもしれないものをインストールする必要があるかもしれません。
必要なパッケージ等はディストリビューションによるので、ここで詳細は書き
ません。追加インストールで関係ありそうなものをいれるとか、 apt-get や
yum で入れるとかして下さい。例えば、CentOS の場合
Mac OS X の場合、以下のものをいれる必要があります。
以下、手順を簡単に説明します。
まず、Apple の開発環境 Xcode をいれます(いれていない人の場合)。これは、
OS の DVD にはいっているので、 OS の DVD をいれて XCode とかそういう文
字列のほうで何かします。OS の DVD が見つからなくても、
Apple のサイト でユーザ登録すれば
XCodeTools なんとかというのをダウンロード、インストールすることができるはず
です。これをいれると gcc 4.0 が入るはずです。 g77 ははいりません。
g77 が入っていない人の場合、 Intel Mac であれば、
HPC Mac OS Xのページから、
ここに従っ て 入れるのが簡単そうです。
g77-intel-bin.tar-gz (Intel cpu の場合)をダウンロードして、それ
があるディレクトリで
PowerMac の場合、 fink で g77 が入ります。
qt3 も、普通ははいっていないかもしれません。 fink をいれていれば、これ
は
csh の場合:
2009/8/16 現在の状況では、 nemo はソースプログラムの数箇所に変更を加え
ないと Cygwin にインストールできません。変更したファイル等のコピーから、
インストールまでをまとめたスクリプトを牧野が作ったので、これを使ってみ
ることにします。
まず、nemo をインストールするディレクトリを作ります。これは
/home/yourid/work (yourid は Cygwin での自分の user id) とか、適当な
ものを作って下さい。ターミナルウインドウで、そのディレクトリに移動し、
wget 等を使って http://grape.mtk.nao.ac.jp/pub/people/makino/tmp/nemo_cygwin_install.csh をコピーします。
実行には、ターミナルウインドウで、
ここでは、nemo の基本的な概念の学習を兼ねて、簡単な動作確認をします。
そのために、
まず、 nemo のコマンドが使えるような環境設定をする必要があります。これ
には、色々な環境変数やパスを設定する必要がありますが。 csh 系のシェル
に対しては nemo_start というスクリプトが用意されているので、
としてみるのが無難です。
また、質量(Mass)、位置、速度(PhaseSpace) については、それぞれを配列に
しているらしい、ということもわかるかと思います。
tsf の出力はそういうわけでなかなか高級なものですが、例えば gnuplot と
か mongo とか、様々なプロットパッケージで処理するにはあまり向いていま
せん。そういう出力のためにには snapprint を使います
粒子3個ではつまらないので、増やしてみます。
なお、 Cygwin の場合(他の OS でもあるかもしれません)、
というわけで、こちらでは glnemo を使ってみます。
これくらいが全部動くなら、基本的な機能は大丈夫なはずです。
ここは、Windows で glnemo2 が動いた人向けです。
さらに、 glnemo2 を使ってみます。
これくらいが全部動くなら、基本的な機能は大丈夫なはずです。
nemo には Kuijken と Dubinski
の作った、 GalactICS という銀河モデル作成パッケージがはいっています。
2009/9/3 20時前後以前に Cygwin に nemo をインストールした場合には、
mkkd95.c にバグがあってファイルができません。
http://grape.mtk.nao.ac.jp/pub/people/makino/tmp/mkkd95.c
で ~/work/nemo_cvs/src/nbody/init/mkkd95.c を置き換えてから
なお、すみません、 an03 では mkkd95 が動きません。
色々、トラブルが起こって上手く動かない時にどうするか、というのを、実例
があったものをまとめてみます。
開発環境まで含めた Cygwin は数 GB の空きディスク領域を要求するので、既
にハードディスクが色々なもので一杯で、インストールできない、という人が
いることと思います。
もちろん、色々努力して空きを作ればよいのですが、どうしても無理な時には、
外付の USB ハードディスク等を使うのが1つの方法です。
Choose Installation Directory、
Select Local Package Directory の両方のウインドウで、そちら、例えば、ド
ライブ名が F: になっていれば
glnemo で
snapplot で
まず、 X server が起動しているかどうか確認して下さい。 Linux や Mac の
場合には起動していないということはないと思いますが、 Cygwin の場合には
デスクトップアイコンにできた「Cygwin」やスタートアップメニューから
Cygwin を起動して、シェルウインドウがでても X は起動していません。
スタートアップメニューの「すべてのプログラム」から Cygwin-X, XWin
Server の順番に選択して、 X server を起動して下さい。Xming のほうをイ
ンストールした場合には、 XLaunch か Xming のアイコンかスタートアップ
メニューから起動して下さい。これはどちらでもよいですが、 XLaunch では
細かい設定ができます。基本的にはデフォルトでよいはずなので、 Xming を
起動で大丈夫なはずです。
X サーバが起動したら、画面の右下隅に X のアイコンがでるはずです。
この状態で、シェルから
xterm が起動できたウインドウからなら、snapplot や glnemo も動くはずで
す。なお、ここで起動した xterm のほうに移動してしまうと、最初のほうの
Unix にある程度なれている人なら、 ~/.cshrc や ~/.bash_login で上の設
定や、 DISPLAY の設定もしておくとあとが楽です。
xterm は起動でき、 glnemo も起動できるけれど snapplot が動かなくて、相
変わらず
また、既に pgplot がインストール済みであった場合には、そっちを使ってい
るかもしれないので、 nemo が使うことを想定している、独自にいれた
pgplot とは違うデバイスを使うようになっているかもしれません。この時に
は
nemo が、 v とかはあらかじめ知っているはずなのですが、上手くいかないケー
スがあります。この時は、 yvar=v の代わりに、
Linix, Cygwin, MacOS のどれでも、運がよければ glnemo はコンパイルされていま
すが、
一つのありえる理由は、 glnemo は Qt Version 3.x を想定していることです。
ディストリビューションのほうがもしも Qt4 以降をデフォルトにする設定に
なっていたら、コンパイルできないことはありえます。
なお、 glnemo2 は4.3 以降を想定しています。ですので、ディストリビューショ
ンが新しすぎてglnemo がコンパイルできない、といったことがもしもあれば、
glnemo2 ならコンパイルできるかもしれません。但し、 glnemo2 は gcc もバー
ジョン 4.1 以降であることを要求するようです。
また、ディストリビューションによっては、 Qt の make コマンドである
qmake が、通常の実行パスのあるところのどこにもない、というようなことも
あります。その時には、適切なqmake に例えば /usr/local/bin からシンボリッ
クリンクをはってから、の、nemo が使える環境で
牧野の手元の CentOS 5.2 のシステムでは、システムについてくる gcc 4.1.2
と Qt 3.3.6 (それぞれ、 gcc -v と qmake -v でバージョンをチェックでき
ます)で glnemo は問題なくコンパイルされました。また、 Qt 4.5.2 をいれ
たら glnemo2 も問題なくコンパイルできました。
MacOS X の場合、環境変数 QTDIR が上手く設定されない等の理由で、
glnemo のコンパイルに失敗することがあります。この時には
/usr/lib/qt3/bin/qmake というファイルあることを確認して、あれば、
ここは、少し大変かもしれませんが皆様色々試してみて下さい。
すみません、動かないようです。 snapplot を使って下さい。
メニューの、システム -> 外観の設定というので、「視覚効果」というものを
オフにすると表示できるそうです。
Cygwin 環境で glnemo がどうしても動かない時には、 glnemo2 のほうは動く
かもしれないのでこっちをインストールしてみましょう。
Glnemo のダウンロードページから、
Microsoft Win 32 binaryをダウンロードし、展開します。これは、ブラウザのオプ
ションで「展開する」みたいなのがあると思いますので、それを選択します。
で、できたファイル glnemo2.exe をダブルクリックして実行します。そうする
と、ちゃんと展開したファイルをセーブするかどうか、みたいなことを聞いて
きたら、そうするようにします。そうすると、 glnemo2-win32 というディレク
トリを新しく作って、その下にファイルを展開するはずです。これをもう一度
ダブルクリックして実行してみて下さい。起動すればとりあえず OK です。
PowerMac G4 + MacOS X 10.4 だと、そもそも configure + make の基本的な
やり方で失敗することがわかっています。
nemo のインストールの項で csh -f nemo...csh を実行したあとで、
nemo_cvs/lib/makedefs を以下のように編集して下さい
また、 OSX 10.5 の場合でも、同じような問題が発生することがあります。
nemo_cvs/lib/makedefs の中に -lf2c という文字列があったら、それを
-lg2c に変更してから、上と同様に
連絡用アドレス simulation2009 - at - grape.mtk.nao.ac.jp に質問してみ
て下さい。時間がある限り対応します。 0. Abstract
Contents
1. 作成状況
1.1. 2009/8/18
1.2. 2009/8/20
1.3. 2009/8/24
2. 準備
といったツールを使いますが、これらも以下の手順に従えば自動的にインストー
ルされるはずです。
2.1. nemo インストールの前にすること
2.1.1. Windows の場合
2.1.1.1. X が動かない時
2.1.2. Linux の場合
yum install gcc compat-gcc-34-g77
yum install qt qt-devel
といった辺りだと思います。
2.1.3. Mac OS X の場合
多くの方はすでにこれらのものをインストールしているかもしれません。
sudo tar -xvf g77-bin.tar -C /
を実行するだけです。今回の関係は g77 でしかテストしていませんので、
gfortran 等ではコンパイルできません。 g77 をいれて下さい。なお、この手
順でいれた g77 が動作するためには、 gcc が Xcode 由来のもの(fink 等で
いれたものではないもの)である必要があるようです。 fink でいれた gcc を
お使いの方は、なんとかして fink で g77 をいれる(すみません、牧野にはや
り方が今のところわかっていません)か、ソースから make して下さい。
fink install qt3
で入るはずです。 qt3 は可視化ツール glnemo のコンパイルに必要になります。
これがコンパイルできるためには、 環境変数 QTDIR に fink で色々なものを
いれるパスである /sw を設定しておく必要があります。また、 fink は /sw
の下に bin ディレクトリを作るので、環境変数 PATH に /sw/bin を追加して
下さい。
setenv QTDIR /sw
setenv PATH ${PATH}:/sw/bin
bash等の場合
QTDIR=/sw ; export QTDIR
PATH=${PATH}:/sw/bin ; export PATH
まだ fink をいれていなければ
Fink の ダウンロードページの記述に従ってまず fink をインストールします。
この場合、 .profile に勝って fink installer がなんか書くので、
それをやっていれば PATH の設定は必要ないはずです。
2.2. nemo のインストール
%cd
%mkdir work
%cd work
%wget http://grape.mtk.nao.ac.jp/pub/people/makino/tmp/nemo_cygwin_install.csh
MacOS X の場合、 wget がはいっていないようなので、代わりに curl を使い
ます。
%cd
%mkdir work
%cd work
%curl -O http://grape.mtk.nao.ac.jp/pub/people/makino/tmp/nemo_cygwin_install.csh
このファイルの中身はこんな感じのものです
#!/bin/csh -f
#
# nemo_cygwin_install.csh
#
# J. Makino
# 2009/8/16 created
# 2009/8/18 added hack for qmake on Cygwin
# 2009/8/20 Major rewrite: Try not to download/compile if files are already
# there
# 2009/8/24 Try curl if wget failed
# 2009/8/25 Hacks to work on OSX 10.4 and 10.5
#
set hostsys = `uname`
# First get the source from Peter's standard location
if ( ! ( -e nemo_cvs ) ) then
wget ftp://ftp.astro.umd.edu/pub/nemo/nemo_cvs.tar.gz
if ( $status == 1) then
curl -O ftp://ftp.astro.umd.edu/pub/nemo/nemo_cvs.tar.gz
endif
tar zxf nemo_cvs.tar.gz
cd nemo_cvs
cvs login ; cvs update -d # just to be sure to be up to date
else
cd nemo_cvs
endif
# download wip as well
if ( ! ( -e wip) ) then
wget ftp://ftp.astro.umd.edu/progs/morgan/wip2p3.tar.gz
if ( $status == 1) then
curl -O ftp://ftp.astro.umd.edu/progs/morgan/wip2p3.tar.gz
endif
tar xzf wip2p3.tar.gz
endif
# Then get the patched files from Makino's location
wget http://grape.mtk.nao.ac.jp/pub/people/makino/tmp/nemo+pgplot.patch.tgz
if ( $status == 1) then
curl -O http://grape.mtk.nao.ac.jp/pub/people/makino/tmp/nemo+pgplot.patch.tgz
endif
tar xvzf nemo+pgplot.patch.tgz
if ( ( -e bin/snapplot ) || ( -e bin/snapplot.exe ) ) then
echo You seem to have nemo already
echo so skip the installation.
echo If you want to re-install nemo,
echo either remove or rename nemo_cvs and try to run this
echo script again.
source nemo_start
else
switch ($hostsys)
# Cygwin does not have /usr/bin/qmake, even after qt3-devel is installed.
# So make a soft link
case CYGWIN*
echo This system is Cygwin. prepare /usr/bin/qmake
if ( ! ( -e /usr/bin/qmake) ) then
if ( -e /usr/lib/qt3/bin/qmake ) then
ln -s /usr/lib/qt3/bin/qmake /usr/bin/qmake
else
echo cannot find qmake. Please try some other fix.
endif
else
echo qmake is already in /usr/bin
endif
breaksw
case Darwin*
echo This system is Mac OS X. Additional setup for QT
setenv PATH ${PATH}:/sw/bin
setenv QTDIR /sw
breaksw
default:
echo none approptiate
endsw
#and then run the standard script
source AAA_SOURCE_ME
#and try to fix the problem with powerpc macs (or OS X 10.4)
# not sure if this problem is due to PPC implementation or OS X version.
set nemohost = $NEMOHOST
switch ($nemohost)
case powerpc-apple*
echo This system is PowerMac. Things have probably badly failed.
echo Now try to edit lib/makedef and make again
if ( ! ( -e lib/makedefs.org ) ) then
cp -p lib/makedefs lib/makedefs.org
endif
sed -e 's/-lcrt2.o/ /g' < lib/makedefs.org > lib/makedefs
make libs
breaksw
default:
echo Nothing to do here
endsw
endif
# and then make usual binaries
make bins
# make sure that GalacTICS and glnemo are there
mknemo mkkd95
mknemo glnemo
if ( ( -e bin/wip ) || ( -e bin/wip.exe ) ) then
echo WIP is already installed
else
echo now compile wip
cd wip
switch ($hostsys)
case Darwin*
./makewip -host darwin -pgplot $NEMOLIB -xlib /usr/X11R6/lib
breaksw
default:
./makewip -host linux -pgplot $NEMOLIB -xlib /usr/X11R6/lib
endsw
switch ($hostsys)
case CYGWIN*
mv wip.exe $NEMOBIN
breaksw
default:
mv wip $NEMOBIN
endsw
endif
最初の、 cvs update -d までは nemo のサイトに書いてある通りです。
$ csh -f nemo_cygwin_install.csh
とします。すると
$ csh -f nemo_cygwin_install.csh
--2009-08-17 01:08:42-- ftp://ftp.astro.umd.edu/pub/nemo/nemo_cvs.tar.gz
=> `nemo_cvs.tar.gz'
Resolving ftp.astro.umd.edu... 129.2.14.3
Connecting to ftp.astro.umd.edu|129.2.14.3|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD /pub/nemo ... done.
==> SIZE nemo_cvs.tar.gz ... 10949723
==> PASV ... done. ==> RETR nemo_cvs.tar.gz ... done.
Length: 10949723 (10M)
100%[==============================================>] 10,949,723 250K/s in 48s
2009-08-17 01:09:33 (222 KB/s) - `nemo_cvs.tar.gz' saved [10949723]
Logging in to :pserver:anonymous@cvs.astro.umd.edu:2401/home/cvsroot
CVS password:
と、パスワードをいれて、といってくるので、単にリターンをいれます。すると、
? .cvspass
? VERSION_cvs
? local
cvs update: Updating .
cvs update: Updating bugs
cvs update: Updating csh
cvs update: Updating data
cvs update: Updating data/GalPot
cvs update: Updating data/filter
(途中省略)
cvs update: Updating usr/vogl/src/msfort
cvs update: Updating usr/vogl/src/sunfort
といった感じに延々ファイルの更新をした後に
--2009-08-17 01:15:27-- http://grape.mtk.nao.ac.jp/pub/people/makino/tmp/nemo+pgplot.patch.tgz
Resolving grape.mtk.nao.ac.jp... 133.40.7.128
Connecting to grape.mtk.nao.ac.jp|133.40.7.128|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 20361 (20K) [application/x-tar]
Saving to: `nemo+pgplot.patch.tgz'
100%[==============================================>] 20,361 --.-K/s in 0.05s
2009-08-17 01:15:27 (441 KB/s) - `nemo+pgplot.patch.tgz' saved [20361/20361]
inc/nr.h
inc/mathfns.h
src/kernel/loadobj/loadobjCYGWIN.c
src/kernel/loadobj/loadobj.c
src/nbody/cores/bodytrans.c
src/scripts/pgplot.install
という感じのメッセージがでます。ここで、牧野が用意したファイルでいくつ
かのファイルを置き換えています。 その後に、 nemo のコンパイルが始まり
ます。
(Sending output to install.log)
Found a local pgplot, Assuming we're using it
mkdir: cannot create directory `/tmp/NEMO_WAS_HERE': File exists
Your filesystem does not support multi-case unique filenames (like A and a)
A real Unix depends on it...
You probably have a Mac, or use Windows, so, good luck to you
rmdir: failed to remove `/tmp/NEMO_WAS_HERE': Not a directory
./configure --with-yapp=pgplot --with-pgplot-prefix=/home/Makino/work2/nemo_cvs/lib
これはとても長い時間がかかります。コンパイルの作業状況はこのディレクト
リの下にできた nemo_cvs というディレクトリの install.log というファイル
に書かれていくので、端末画面をもうひとつ出すとかして、
tail -f ~/work/nemo_cvs/install.log
で作業状況を確認しましょう。元々のスクリプトを実行した画面では
Initializing NEMO environment
Postconfig
Building NEMO library
Building html files for all the manual pages
Building some sample executables by running the testsuite with -b:
You can later build all executables with "cd $NEMO;make bins"
or using "mknemo <program-name>" on a per-case basis
Since you also seem to have a CVS structure (very good!)
you can also update code directly via CVS, using the -u flag to mknemo:
mknemo -u <programname>
or
mknemo -u -l <programname>
if the library also needs to be rebuild.
Compiling falcON and its tools.
Note: Although your current shell now has the NEMO environment loaded,
new shells will not have NEMO pre-loaded. You would need to add
the following command/alias to your .cshrc (or equivalent) file:
source /home/Makino/work2/nemo_cvs/nemo_start
Found 130 executables (132 at last count)
Found 12/30 problems with the TESTSUITE
TESTSUITE: /home/Makino/work2/nemo_cvs/src/nbody/cores Problems
TESTSUITE: /home/Makino/work2/nemo_cvs/src/nbody/evolve/aarseth/nbody0 Problems
TESTSUITE: /home/Makino/work2/nemo_cvs/src/nbody/evolve/aarseth/tools Problems
TESTSUITE: /home/Makino/work2/nemo_cvs/src/nbody/evolve/dehnen Problems
TESTSUITE: /home/Makino/work2/nemo_cvs/src/nbody/evolve/flowcode Problems
TESTSUITE: /home/Makino/work2/nemo_cvs/src/nbody/evolve/scfm Problems
TESTSUITE: /home/Makino/work2/nemo_cvs/src/nbody/init Problems
TESTSUITE: /home/Makino/work2/nemo_cvs/src/nbody/io Problems
TESTSUITE: /home/Makino/work2/nemo_cvs/src/nbody/io_nemo Problems
TESTSUITE: /home/Makino/work2/nemo_cvs/src/nbody/reduc Problems
TESTSUITE: /home/Makino/work2/nemo_cvs/src/orbit/misc Problems
TESTSUITE: /home/Makino/work2/nemo_cvs/src/orbit/potential Problems
All done.
Starting at Mon Aug 17 01:46:12 2009, tail -f /home/Makino/work2/nemo_cvs/install.log
cd src;make -i bins >> ../install.log 2>&1
cd usr;make -i bins >> ../install.log 2>&1
Done at Mon Aug 17 01:52:32 2009
というような感じで時々出力がでます。
2.3. 簡単な動作確認
ということをします。
2.3.1. nemo の基本機能の確認
% source ~/work/nemo_cvs/nemo_start
で設定ができます。 bash 等 sh 系の場合にはまともなスクリプトが用意され
てないような気がするので、
% csh
% source ~/work/nemo_cvs/nemo_start
% bash
(bash の場合)
% cd ~work
% mkdir sandbox
% cd sandbox
です。次に、以下のコマンドを実行してみます。
% mkplummer
以下のような出力がでるはずです。
Insufficient parameters, try 'help=', 'help=?' or 'help=h',
Usage: mkplummer out=??? nbody=??? ...
construct a Plummer model
mkplummer に限らず、 nemo のコマンドは基本的にコマンドラインオプション
で色々なパラメータを与えます。その中には必須なものがあり、それらが与え
られていない、というのが出力の最初の2語 "Insufficient parameters," で
いいたかったことと思われます。次に try 'help=', 'help=?' or 'help=h'
とあるので次にはそれをやりますが、
Usage: mkplummer out=??? nbody=??? ...
の行を見ると、 out=???, nbody=??? といったパラメータを指定しないといけ
なさそうだとわかります。
% mkplummer help=
mkplummer out=??? nbody=??? mlow=0 mfrac=0.999 rfrac=22.8042468
seed=0 time=0.0 zerocm=t scale=-1 quiet=0 massname= massexpr=pow(m,p)
masspars=p,0.0 massrange=1,1 headline= nmodel=1 VERSION=2.8b
mkplummer "help=?" や mkplummer help=h を実行しても、今一つ暗号めいた
メッセージしかでない、思ったことでしょう。しょうがないので、
% man mkplummer
を実行してみます。途中のほうに、
out=snapfile Output data is written into snapfile, in
standard snapshot format.
nbody=integer Number of particles nobj in Nbody snapshot
realization of the Plummer model.
と書いてあるので、 nbody で指定した粒子数のプラマーモデルを、 out で指
定したファイルに書いてくれそうです。そこで
% mkplummer test3 3
と実行してみます。なにもメッセージはでませんが、
% ls -l
合計 4
-rw-r--r-- 1 makino makino 427 8月18日 18:45 test3
といった感じでファイルができているはずです。このファイルの中身はバイナ
リなので、 cat 等で見ることはできませんが、
% tsf test3
char Headline[35] "init_xrandom: seed used 1250588738"
char History[31] "mkplummer test3 3 VERSION=2.8b"
set SnapShot
set Parameters
int Nobj 3
double Time 0.00000
tes
set Particles
int CoordSystem 66306
double Mass[3] 0.333333 0.333333 0.333333
double PhaseSpace[3][2][3] 0.789543 -0.771532 -0.263389 -0.220791
-0.0611593 0.391509 -0.840700 -0.120641 0.277537 0.416235
-0.0746009 0.219864 0.0511569 0.892173 -0.0141488 -0.195444
0.135760 -0.611373
tes
tes
で見ることができます。nemo のファイルは単なるバイナリの数字の羅列では
なく、それを作るのに実行したコマンドの履歴等のヘッダ情報と、
はいっているデータの実体からなり、実体は、さらに型+名前+データ、
という規則的な構造をもっていること、また、「型」に set、つまり「集合」
という型を準備することで、構造型のようなものも表現可能にしていることが
わかります。
% snapprint test3
### nemo Debug Info: x y z vx vy vz
0.789543 -0.771532 -0.263389 -0.220791 -0.0611593 0.391509
-0.8407 -0.120641 0.277537 0.416235 -0.0746009 0.219864
0.0511569 0.892173 -0.0141488 -0.195444 0.13576 -0.611373
% snapprint test3 options=m,x,y,z,vx,vy,vz
### nemo Debug Info: m x y z vx vy vz
0.333333 0.789543 -0.771532 -0.263389 -0.220791 -0.0611593 0.391509
0.333333 -0.8407 -0.120641 0.277537 0.416235 -0.0746009 0.219864
0.333333 0.0511569 0.892173 -0.0141488 -0.195444 0.13576 -0.611373
これは、粒子一つを1行にまとめています。 nemo の特徴として、粒子データ
から計算したものを出力にできる、ということがあります。
% snapprint test3 options="vx*vx+vy+vy+vz*vz"
### nemo Debug Info: [bodytrans_new: invoking cc +saving .o]
### nemo Debug Info: vx*vx+vy+vy+vz*vz
0.079709
0.0723902
0.683496
この場合、粒子データに対して "vx*vx+vy+vy+vz*vz" という式を評価する関
数を作り、コンパイルして、自分自身にリンクした上で評価して出力する、と
いう、なかなか気が効いたことをしています。
% mkplummer test8k 8192
tsf や snapprint で見るにはデータが膨大過ぎるので、グラフィック表示し
てみます。
% snapplot test8k
図 12 が出れば大成功です。折角なので、少し違うこ
とをしてみます。
%PGPLOT, PGSCI: no graphics device has been selected
とかいったメッセージが大量にでて、グラフィック表示はされない、というこ
とがあるかもしれません。この時の対応は
3.2.1 節をみてみて下さい。
% snapplot test8k xvar=r yvar=v xrange=0:5 yrange=0:2
この場合、x 軸に , y軸に をとり、またそ
れぞれの軸の範囲も指定しています。半径の関数としての速度分布がなんとな
くわかるプロットになっています。
2.3.2. glnemo の利用
% glnemo test8k
画面の左の赤い格子をクリックすると格子がでます。
ができるはずです。色々やってみて下さい。
2.3.3. glnemo2 の利用
../glnemo2-win32/glnemo2
で、図 16 のウインドウがでます。
ができるはずです。色々やってみて下さい。
2.3.4. mkkd95 のテスト
%mkkd95 testkd
を実行してみて下さい。 testkd というファイルができていれば OK です。駄
目な時には、、、色々調べてみて下さい。
% mknemo mkkd95
を実行して mkkd95 を作り直して下さい。
3. Troubleshooting
3.1. 空きディスクが不足で Cygwin 等がインストールできない
F:\CYGWIN
F:\CYGWINPACKAGES
といったものを指定します。必要な容量は 8GB 程度なので USB メモリでもよ
さそうなものですが、安物の USB メモリで実験したところでは5時間程度たっ
ても Cygwin のインストールが終わりませんでした。ただ、これは、
USB メモリのプロパティをなんかすることで高速化できるようです。
3.2. X ウインドウ関係
glnemo: cannot connect to X server
というメッセージがでたり、
%PGPLOT, PGSCI: no graphics device has been selected
というメッセージがでた場合、色々な可能性があります。
3.2.1. X サーバーが正常に起動しているかどうか
% xterm &
と入力してみます。
xterm Xt error: Can't open display:
xterm: DISPLAY is not set
とでるはずです。もっとも、なぜかちゃんと xterm の画面がでるかもしれません。こ
の場合には以下は不要です。 csh 系なら
% setenv DISPLAY 127.0.0.1:0.0
bash 等なら
% DISPLAY=127.0.0.1:0.0; export DISPLAY
と入力します。そうすると、X ウインドウを使うプログラムがどこに表示する
かが指定されるので、今度は
% xterm &
を実行すればウインドウがでるはずです。但し、Cygwin だとウインドウがで
るのですが他のウインドウに隠れているかもしれないので、タスクバーとかで
捜して下さい。
% source ~/work/nemo_cvs/nemo_start
をもう一度実行する必要があります。
3.2.2. xterm は動くが snapplot が動かない
%PGPLOT, PGSCI: no graphics device has been selected
というメッセージが大量にでる、ということがひょっとしたらあるかもしれま
せん。これは、 PGPLOT が使っている Xwindow 用の表示プログラム
pgxwin_server の起動に何故か失敗した、という場合がありえます。この時に
は
% ~/work/nemo_cvs/lib/pgxwin_server &
で、 pgxwin_server を起動しておくと、幸せになれるかもしれません。
% unsetenv YAPP (csh)
% unset YAPP (bash 等)
してから snapplot を実行すると、
%snapplot test8k
Graphics device/type (? to see list, default /NULL):
というふうに何を使うか聞いてきます。ここで、 ? をいれてリターンすると、
例えば以下のようなリストがでるはずです。
PGPLOT v5.2.2 Copyright 1997 California Institute of Technology
Interactive devices:
/XWINDOW (X window window@node:display.screen/xw)
/XSERVE (A /XWINDOW window that persists for re-use)
Non-interactive file formats:
/CGM (CGM file, indexed colour selection mode)
/CGMD (CGM file, direct colour selection mode)
/GIF (Graphics Interchange Format file, landscape orientation)
/VGIF (Graphics Interchange Format file, portrait orientation)
/NULL (Null device, no output)
/PGMF (PGPLOT metafile)
/PPM (Portable Pixel Map file, landscape orientation)
/VPPM (Portable Pixel Map file, portrait orientation)
/PS (PostScript file, landscape orientation)
/VPS (PostScript file, portrait orientation)
/CPS (Colour PostScript file, landscape orientation)
/VCPS (Colour PostScript file, portrait orientation)
/WD (X Window Dump file, landscape orientation)
/VWD (X Window Dump file, portrait orientation)
Graphics device/type (? to see list, default /NULL):
でたデバイスの中で、画面にでそうなものを選んでみて下さい。
3.2.3. snapplot で、 yvar=v としたらそんなのは知らないと言われた。
yvar="sqrt(vx*vx+vy*vy+vz*vz)"
としてみて下さい。このようなエラーがでる場合でも、 x, y, z, vx, vy,
vz, m といった基本的な変数の組合せであれば上手くいくはずです。
3.2.4. glnemo が動かない
% glnemo
と実行したら「そんなコマンドは知らない」的なメッセージがでるかもしれま
せん。コマンド自体がない、つまり make に失敗している場合、色々な理由が
ありえるので一般的な対応は困難です。
% mknemo glnemo
でコンパイルできるかもしれません。
(csh の場合)
%setenv QTDIR /sw
%mknemo glnemo
(bash 等の場合)
%QTDIR=/sw; export QTDIR
%mknemo glnemo
で上手くいく可能性があります。もしも /sw/bin/qmake がないなら、 fink
で qt3 をインストールして下さい:
fink install qt3
Cygwin でも、何故か失敗していることがあります。
ln -s /usr/lib/qt3/bin/qmake /usr/bin/qmake
を実行してから
mknemo glnemo
を実行して下さい。
3.2.5. Ubuntu で glnemo が動かない。
3.2.6. glnemo2 を使う
3.3. nemo の色々なコマンドが全然できていない
*** makedefs Tue Aug 25 14:50:41 2009
--- makedefs.original Tue Aug 25 14:30:17 2009
***************
*** 92 ****
! YAPPLIB = $(NEMOLIB)/yapp_pgplot.o -L/Users/makino/work/nemo_cvs/lib -lcpgplot -lpgplot -L/usr/X11R6/lib -lSM -lICE -lXext -lX11 -L/sw/lib/gcc/powerpc-apple-darwin8.4.0/3.4.3 -lfrtbegin -lg2c -lSystemStubs -lSystem -lmx /usr/lib/gcc/powerpc-apple-darwin8/4.0.1/libgcc.a
--- 92 ----
! YAPPLIB = $(NEMOLIB)/yapp_pgplot.o -L/Users/makino/work/nemo_cvs/lib -lcpgplot -lpgplot -L/usr/X11R6/lib -lSM -lICE -lXext -lX11 -lcrt2.o -L/sw/lib/gcc/powerpc-apple-darwin8.4.0/3.4.3 -L/sw/lib/gcc/powerpc-apple-darwin8.4.0/3.4.3/../../.. -lfrtbegin -lg2c -lSystemStubs -lSystem -lmx /usr/lib/gcc/powerpc-apple-darwin8/4.0.1/libgcc.a
ちょっとなんだかわからないですが、
-lcrt2.o
-L/sw/lib/gcc/powerpc-apple-darwin8.4.0/3.4.3/../../.. (こっちはこのままでもいいかも)
を消して下さい。で、 csh で
cd ~/work/nemo_cvs
source nemo_start
make libs
make bins
のあと、もう一度
cd ~/work
csh -f nemo*.csh
を実行してみて下さい。
cd ~/work/nemo_cvs
source nemo_start
make libs
make bins
を実行してみて下さい。
3.4. なんだか全然わからなくなった時
Previous | ToC | Next |