Previous | ToC | Next |
この文書は 2009/9/7 の総研大講義「シミュレーション天文学」に附属する実
習のための資料です。
ソフトウェアのインストールと動作チェックを兼ねたいくつかのコマンドの紹
介まで書いた。
glnemo2 に関する記述を Troubleshooting に移動。
MacOS X で動作確認。2章の構成変更。
この章では、実習当日までにしておくべき準備について述べます。。これができて
いないと当日の実習は無意味になるので、必ずやっておいて下さい。
この実習では、基本的に受講生が自分で持参した計算機の上で作業します。こ
のため、使用するソフトウェアをあらかじめインストールする必要があります。
以下、 OS が Windows (Vista では問題があるかもしれません)、 Linux、Mac
OS X のそれぞれについて、インストールするべきソフトウェアとその作業手順
を述べます。
一応、CfCA の計算機上でも必要なソフトウェアが実行可能(になる予定)です
が、ネットワークごしになるので可視化ツール等はあまりスムースに動かない
です。
インストールするべきソフトウェアは、「nemo」です。 Nemo はメリーランド
大学の Peter Teuben が20年以上にわたって開発・メンテナンスをしている、
主に無衝突
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. 準備
体系用(ですが、衝突系にも使えるし SPH 等へのサポートも
ある)のシミュレーションをサポートする様々なツールの複合体です。沢山のプ
ログラムが共通のユーザーインターフェースやファイル形式をもつことで、色々
便利なことができるようになっています。
といったツールを使いますが、これらも以下の手順に従えば自動的にインストー
ルされるはずです。
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 |