桂田 祐史
Date: 2021年11月8日, 2021年11月8日
現象数理学科創設以来、比較的最近まで、“現象数理学科 Mac” には、 GLSC というグラフィックス・ライブラリィがインストールされていました。 最近の新入生の Mac にはインストールされていないようです。
GLSC がインストールされていることを前提としたサンプル・プログラムがあるので、 それを動かすために、GLSC をインストールするにはどうすれば良いか説明します。
(GLSC はコンパクトで、ライブラリィとヘッダーファイル合わせて 1MB 程度ですので、 ストレージの消費は無視できるレベルです。)
GLSC を動かすには、X (X11 Window System) というものが必要になります。 Mac の場合、 XQuartz というソフトで X を使うのが普通で、 学部生の現象数理学科 Mac にはインストールされているはずです。 しかし古くてなってバージョン・アップが必要になっている可能性もあります。
インストールされているかチェック (ターミナルで次のコマンドを実行する。) |
xeyes & |
xeyes はマウス・カーソルを見つめる目玉がディスプレイに表示するプログラムです。
cd /private/var/select sudo ln -s /opt/X11 .sudo は管理者権限でコマンドを実行するときに用いるコマンドです。 パスワードを入力するよう要求されるので、パスワードを入力してください (最後に [enter] を打ちます)。 cd - |
GLSC は C 言語で記述されています。 ネットからソース・プログラムを入手してライブラリィをコンパイルするのが、 普通のインストール手順です。
GLSC を入手して、コンパイル、テスト、インストール (ターミナルで作業する) |
必要なファイルを入手して、パッチを当てる (ソース・プログラムを修正する)。
rm -rf glsc-sagyou mkdir glsc-sagyou cd glsc-sagyou curl -O http://www602.math.ryukoku.ac.jp/~nakano/software/math/glsc-3.5.a.tar.Z curl -O http://nalab.mind.meiji.ac.jp/~mk/daishin/glsc-3.5+a.patch curl -O http://nalab.mind.meiji.ac.jp/~mk/program/graphics/glsc-3.5+mk.patch20201229 tar xzf glsc-3.5.a.tar.Z cd glsc-3.5.a patch -p1 < ../glsc-3.5+a.patch patch -p1 < ../glsc-3.5+mk.patch20201229 gfortran を使う必要があるならば、 ここで、 Makefile の FC をgfortran にセットする。 それから make でコンパイルする。 make >& make.log 続いてテストするには cd test ./ctests ./ctestd cd ..(順に、C言語単精度、C言語倍精度) うまく動いたらインストールする。次は sudo を使うので、 一つずつ実行することを勧める。 sudo mkdir -p /usr/local/bin /usr/local/lib /usr/local/include sudo make install >& make-install.log これが済んだら glsc-sagyou は削除しても良い。 |
/usr/local/lib, /usr/local/include にライブラリィ・ファイルやインクルード・ファイルがコピーされる。
プログラムをコンパイル&リンクするとき、それらの場所を指定する必要がある。 それはやや面倒なので、現象数理学科 Mac では、 cglsc という名前のシェル・スクリプトを用いることにしていた。
cglsc の入手し、実行許可属性をつけて、インストール |
curl -O http://nalab.mind.meiji.ac.jp/~mk/misc/20210429/cglsc chmod +x cglsc cp cglsc ~/binあるいは /usr/local/bin にインストールする。 sudo cp cglsc /usr/local/bin |
試しにプログラムを一つコンパイル&実行してみよう。 以下は 1次元熱方程式の初期値境界値問題を差分法で解くプログラムを コンパイルして実行する例。
cglsc のテスト -- 実行例 |
以下の % はシェルのプロンプトで、入力する必要はない。
% curl -O http://nalab.mind.meiji.ac.jp/~mk/program/fdm/heat1d-e-glsc.c % cglsc heat1d-e-glsc.c % ./heat1d-e-glsc 区間の分割数 N = 50 λ (=τ/h^2) = 0.5 τ=0.0002 最終時刻 Tmax = 0.5 終りました。X の場合はウィンドウをクリックして下さい。 % |