15 2015年の桂田研GLSC環境
基本的に去昨年度のを踏襲する。
今年度は簡単コピペ・インストール。
Xcode, XQuartz のインストールされた (でも GLSC は入っていない) Mac の場合、
4, 5, 6, 7 の枠内のコマンドをターミナルにコピペすれば良いと思う。
cglsc, cglscs, ccmg が使えるようになるはず。
現象数理学科の学生 Mac だったら (GLSC も入っているので)、
4, 5, 7 の枠内のコマンドをターミナルにコピペすれば良いと思う。
こうすれば元からある GLSC 関係のファイルには一切手を触れずに、
桂田研 GLSC 環境が追加出来る。
- 龍谷大学のサイト
から
glsc-3.5.a.tar.Z
を入手する。
- MacOSXでシミュレーション
から上山パッチ glsc-3.5+a.patch を入手する。
- 桂田の機能拡張 glsc+2014.tar.gz
も入手する。
- 以上 3 つのファイルを一つの作業ディレクトリィに置く。
ファイルの入手は例えば wget を使うと簡単である。
which wget としてインストールしてあるかどうか調べて、
インストールしてなければ
でインストールする (MacPorts をインストールしてあると仮定している)。
wget があれば、1,2,3 とまとめて
mkdir sagyou
cd sagyou
wget http://www602.math.ryukoku.ac.jp/~nakano/software/math/glsc-3.5.a.tar.Z
wget http://nalab.mind.meiji.ac.jp/~mk/daishin/glsc-3.5+a.patch
wget http://nalab.mind.meiji.ac.jp/~mk/program/graphics/glsc+2014.tar.gz
ls
|
で準備が整う。
- 後はルーチン・ワークで、tar.Z を展開して、パッチを当てて、
make して、make install するだけ。
tar xzf glsc-3.5.a.tar.Z
cd glsc-3.5.a
patch -p1 < ../glsc-3.5+a.patch
tar xzf ../glsc+2014.tar.gz
cp libs/pMakefile.mk libs/pMakefile
cp libs/src/glsc.h.mk libs/src/glsc.h
make
sudo mkdir /usr/local/include
sudo make install
|
最後の2つは管理者権限が必要で、sudo してパスワードを打つことになる。
これが終わると、
/usr/local/lib/libglscd.a,
/usr/local/lib/libglscs.a,
/usr/local/include/glsc.h,
/usr/local/include/glsc_ftn.h,
/usr/local/bin/g_out がインストールされているはず。
- MacOSXでシミュレーション
から
cglsc,
cglscs
を PATH の通った適当な場所 (現象数理学科 Mac だったら、
~/bin とか) に置く、と書いてあるけれど、
$HOME/include を /usr/local/include,
$HOME/lib を /usr/local/lib に直す。
また実行許可属性を与える必要がある。
mkdir -p ~/bin
wget http://nalab.mind.meiji.ac.jp/~mk/daishin/cglsc
wget http://nalab.mind.meiji.ac.jp/~mk/daishin/cglscs
sed 's/\$HOME/\/usr\/local/g' cglsc > ~/bin/cglsc
sed 's/\$HOME/\/usr\/local/g' cglscs > ~/bin/cglscs
chmod +x ~/bin/cglsc*
|
チェックしてみよう。お題は1次元熱方程式の初期値境界値問題。
PATH に ~/bin を入れておく。
export PATH=~/bin:$PATH
wget http://nalab.mind.meiji.ac.jp/~mk/program/fdm/heat1d-e-glsc.c
cglsc heat1d-e-glsc.c
./heat1d-e-glsc
|
これで heat1d-e-glsc の実行が始まるはず。
区間の分割数 N = 40
λ (=τ/h^2) = 0.5
τ=0.0003125
最終時刻 Tmax = 1
終りました。X の場合はウィンドウをクリックして下さい。
|
ふむ。これらのスクリプトは 、
cc にデバッグ・オプション -g を与えているのね。
それで 実行形式名.dSYM というフォルダが出来る。
こういうのを毎回作るかどうかは趣味の問題だな。
- 個人的には (というか、これまでの桂田研的には)、
matrix-lib というのを作ってあって、
それと一緒にコンパイル&リンクするスクリプト ccmg を使っている。
ついでにインストールするか。
wget http://nalab.mind.meiji.ac.jp/~mk/program/matrix/matrix-lib3.3.tar.gz
tar xzf matrix-lib3.3.tar.gz
cd matrix-lib3.3
make
sudo make install
sudo cp ccmg /usr/local/bin
|
このチェックをしてみよう。
今度は2次元長方形領域における熱方程式の初期値境界値問題。
wget http://nalab.mind.meiji.ac.jp/~mk/program/fdm/heat2d-i.c
wget http://nalab.mind.meiji.ac.jp/~mk/program/fdm/symbandlu.h
wget http://nalab.mind.meiji.ac.jp/~mk/program/fdm/symbandlu.c
ccmg heat2d-i.c symbandlu.c
./heat2d-i
|
これで heat2d-i の実行が始まるはず。
./heat2d-i
Nx, Ny: 100 100
θ (0≦θ≦1): 0.5
τ(≦5e-05≡最大値ノルムに関する安定性条件を満たすτの上限): 0.001
注意: λ=20>1/2(1-θ) となっています。
備考: 1+2θλ=21.0, -θλx= -5.0, -θλy= -5.0
Tmax: 0.5
Δt: 0.01
|
桂田 祐史
2016-04-02