15 2015年の桂田研GLSC環境

基本的に去昨年度のを踏襲する。 今年度は簡単コピペ・インストール。

Xcode, XQuartz のインストールされた (でも GLSC は入っていない) Mac の場合、 4, 5, 6, 7 の枠内のコマンドをターミナルにコピペすれば良いと思う。 cglsc, cglscs, ccmg が使えるようになるはず。

現象数理学科の学生 Mac だったら (GLSC も入っているので)、 4, 5, 7 の枠内のコマンドをターミナルにコピペすれば良いと思う。 こうすれば元からある GLSC 関係のファイルには一切手を触れずに、 桂田研 GLSC 環境が追加出来る。

  1. 龍谷大学のサイト から glsc-3.5.a.tar.Z を入手する。
  2. MacOSXでシミュレーション から上山パッチ glsc-3.5+a.patch を入手する。
  3. 桂田の機能拡張 glsc+2014.tar.gz も入手する。
  4. 以上 3 つのファイルを一つの作業ディレクトリィに置く。 ファイルの入手は例えば wget を使うと簡単である。 which wget としてインストールしてあるかどうか調べて、 インストールしてなければ
    sudo port install 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
    
    で準備が整う。
  5. 後はルーチン・ワークで、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 がインストールされているはず。
  6. 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 というフォルダが出来る。 こういうのを毎回作るかどうかは趣味の問題だな。
  7. 個人的には (というか、これまでの桂田研的には)、 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