Locked History Actions

Programs Memo

Programs Memo

リンク

NuShell@MSU

Windows 7 に インストール

  • Windows 7 (32 bit) に NuShell@MSU をインストールした。32 bit だけでなく 64 bit の PC でも動く。インストールで使用したファイルは D.S. Jodson 氏のページ (http://ns.ph.liv.ac.uk/~dsj/NuShell/) の NuShell@MSU.zip。インストール方法は、この zip ファイル内の Nushel\help\help.pdf の 2 章: Setup and login に書いてある。一応、自分用に以下にインストール方法をまとめておく。次の手順を踏めば、インストールできるはず。インストールといっても、インストーラは使わず、ファイルをコピーして幾つかのファイルをいじるだけで良い。64 bit 環境でも動くようだ。

    1. C: ドライブ直下に aaa というフォルダを作成(C:\aaa)。
    2. C:\aaa に NuShell@MSU.zip を持ってきてそこで展開。

    3. C:\aaa\NuShell というフォルダが出来るはず。中に入っているフォルダは次の通り。もし解凍プログラムの関係で C:\aaa\NuShell@MSU\NuShell というディレクトリ構造になったら、C:\aaa\NuShell にする。

      • be, data, exe, help, login, mass, nu, nufor, pot, rsh, rsh-example, speplot, sps, spsn
    4. NuShell の名前を nushell に変更(C:\aaa\NuShell -> C:\aaa\nushell)(もしや必要ない作業?)。

    5. C:\aaa\nushell\login\login.bat の中身を確認(ファイルを右クリックして"編集")。書き換えなくて良い。C:\aaa ディレクトリ以外に NuShell をインストールしたい場合は、この login.dat ファイルを書き換えれば良い?(インストールしたドライブが違う場合は、\aaa\nushell\login\nushell-dir.dat を書きかえるようだ。フォルダ名は X:\aaa じゃないとうまくいかない。他のフォルダにインストールする場合は、nushell-dir.dat ファイルを適切に編集し、shell を実行するフォルダの一つ上のフォルダに置けば良いようだ。)このファイルで NuShell の実行ファイル(*.exe)がある場所を指定している(path の設定)。その他にもいろいろ設定しているようだ。NuShell に login したときに、これらの設定が読み込まれる。

      • set disknu=c:
        call ifortvars101021
        set nudir=\aaa\nushell\
        set path=%path%;%nudir%exe\
    6. C:\aaa\nushell\login\Nushell-command-prompt というリンクファイルを自分がアクセスしやすい場所(例えばデスクトップ)に置く。さらにこのファイルのプロパティを開き、作業フォルダーを h:\aaa\nushell\login から c:\aaa\nushell\login に変更。
      • 作業フォルダー(S) : h:\aaa\nushell\login
        ↓
        作業フォルダー(S) : c:\aaa\nushell\login
    7. この Nushell-command-prompt をダブルクリックすれば、NuShell にログインできる。ログイン画面は次の通り。ログイン時にやっていることは、コマンドプロンプトを立ち上げ、login.bat でさまざまな環境変数(?)の設定を行い、作業フォルダーに移動しているだけのようだ。

      • c:\aaa\nushell\login>set disknu=c:
        
        c:\aaa\nushell\login>call ifortvars101021
        
        Intel(R) Visual Fortran Compiler for applications running on IA-32, Version 10.1.021
        Copyright (C) 1985-2008 Intel Corporation. All rights reserved.
        
        c:\aaa\nushell\login>_

計算する

  • PRC 74, 034315 (2006) の束縛エネルギーとスペクトルを再現

    • 近藤さんの oxbash のメモや Manual を見つつ、PRC 74, 034315 (2006) にある、A=26 の Al, Mg, Na, Ne, F, O の束縛エネルギーと励起エネルギーのスペクトルが再現できるか試した。論文中では、+ parity のみを計算しているようなので、それに従う。 モデルスペースは sd シェルであるので、 偶々核に対して計算しているので、 + parity のみ計算すればよい。

    • 26Mg の計算例

      1. NuShell にログインする(上述の Nushell-command-prompt をダブルクリック)。

      2. コマンドプロンプトで rsh フォルダーに移動し、26Mg フォルダーを作ってそこに移動し、そこで shell を実行。具体的には、以下のコマンドを打つ。&:: の後ろはコメント。

        • c:\aaa\nushell\login>sd rsh        &:: rsh フォルダーに移動
          c:\aaa\nushell\rsh>md 26Mg         &:: 26Mg フォルダーを作成
          c:\aaa\nushell\rsh\26Mg>sd 26Mg    &:: 26Mg フォルダーに移動
          c:\aaa\nushell\rsh\26Mg>shell      &:: shell を起動。
      3. shell を実行すると、対話的に 26Mg の計算に必要なバッチファイルが作成できる(26Mg.bat)。後でこのバッチファイルを実行して、実際の Shell Model 計算を行う。shell の回答例は次の通り。
        • Using \aaa\nushell\login\nushell-dir.dat
           this is nushell for windows
           directory for exe files > c:\aaa\nushell\exe\
           directory for old sps and int files > c:\aaa\nushell\sps\
           directory for new sps and int files > c:\aaa\nushell\spsn\
            ( using label.dat     from area c:\aaa\nushell\sps\  )
          
          
          name for batch file (h=help) :26Mg
          
          option (lpe, den, help or st) :lpe
          model space (*.sp) name: sd
            ( using sd.sp         from area c:\aaa\nushell\sps\  )
          number of valence particles :10
          any restrictions (y/n) :n
          interaction (*.int) name : usdb
          min, max J (f,f) :0.,10.
          min, max T (f,f) :1.,1.
          J,T to leave out (end with zero or blank) :
          parity (0 for +) (1 for -) (2 for both) :0
           tbme norm =   0.8955 = (  16.0/  18.0)^ 0.30000 from first line in usdb.int
          wavefunctions with output labels
             b020ab.lpe
             b220ab.lpe
             b420ab.lpe
             b620ab.lpe
             b820ab.lpe
             ba20ab.lpe
             bc20ab.lpe
             be20ab.lpe
             bg20ab.lpe
             bi20ab.lpe
             bk20ab.lpe
          
          option (lpe, den, help or st) :st
          the batch file name is 26Mg.bat
          
          c:\aaa\nushell\rsh\26Mg>
          各回答の意味は次の通り。
          1. name for batch file (h=help) :26Mg
            • バッチファイルの名前を決める。これで 26Mg.bat というバッチファイルが出来る。
          2. option (lpe, den, help or st) :lpe
            • 波動関数の計算をするというオプション。このオプションを選べば、束縛エネルギーと励起エネルギーも同時に計算される。lpe, 5 などと書けば、各 J に対し最大 5 個の波動関数を計算することになる。
          3. model space (*.sp) name: sd
            • Model space として sd.sp ファイルで指定したものを使う。sd.sp ではその名の通り、 sd-shell を Model space にしている。 *.sp ファイルは、c:\aaa\nushell\sps\ にある。また、c:\aaa\nushell\sps\label.dat にその解説が書いてある。この label.dat ファイルは、Model space code と Interaction code の 割り当てにも使われているようだ。ちなみに interaction として WBP や WBT を用いたい場合、psd のモデルスペースを選択してもうまく計算できないようだ。psd の model space で WBP や WBT を用いたい場合、 spsdpf を選択し、下の any restrictions の項目で、 p-shell と sd-shell だけ計算するように model space を制限すれば良い。

          4. number of valence particles :10
            • 上で選んだ model space に入れるバレンス核子の数を書く。ここでは、sd-shell を選択しているので、陽子側と中性子側の sd-shell 内にある核子(陽子+中性子)の数を書く。コアは、s-shell (0s1/2 軌道) と p-shell (0p3/2, 0p1/2 軌道) であるため、陽子 8 個と中性子 8 個がコアに入っている核子となる。26Mg の陽子数は 12, 中性子は 14 であるため、バレンスの核子は陽子側 : 12 - 8 = 4, 中性子側 14 - 8 = 6 で合計 10 個となる。もし model space として spsdpf (s-shell, p-shell, sd-shell, pf-shell を含む) を選んだ場合、コアはないので、すべての核子数 26 を入力。spsdpf を選んだ場合、 model space として広すぎるので、通常、下の restrictions の項目で制限を加える。

          5. any restrictions (y/n) :n
            • モデルスペースに制限を加えるない場合 n とする。
          6. interaction (*.int) name : usdb
            • Interaction として usdb.int ファイルで指定したものを使う。usdb.int はその名の通り、 USDB 相互作用を意味する。 *.int ファイルは、c:\aaa\nushell\sps\ にある。また、c:\aaa\nushell\sps\label.dat にその解説が書いてある。
          7. min, max J (f,f) :0.,10.
            • 計算する原子核のスピン(全角運動量)を指定する。 基底状態や、低励起状態のみを考える場合は、最大 J = 10 程度で十分なようだ。Yrast line が示すように、さらに J が大きい状態は低励起状態に現れないはず。そもそも核子の組み方を考えれば、最大値がわかるかも。
          8. min, max T (f,f) :1.,1.
            • 計算する原子核のアイソスピンを指定する。 26Mg の場合、Tz = (Z-N)/2 = (14-12)/2 = 1 なので、T >= 1 の場合を考えれば良い。基底状態や、低励起状態のみを考える場合は T = Tz = 1 とすれば良いようだ?

          9. J,T to leave out (end with zero or blank) :
            • 空白を指定すると J,T には制限を加えない。
          10. parity (0 for +) (1 for -) (2 for both) :0
            • 論文と合わせるために 0 を指定して positive parity のみを考えることにする。1 で negative parity, 2 で両方の計算を行う。
          11. option (lpe, den, help or st) :st
            • st で計算をストップ。これで、26Mg.bat が作成される。
      4. 次のように 26Mg.bat を実行すると Shell Model の計算が始まる。
        • c:\aaa\nushell\rsh\26Mg>26Mg
      5. 多くの計算結果が出力される。今必要なのは束縛エネルギーと励起エネルギーであるが、これは 26Mg.lpt というファイルに次のように出力される。
        • Interaction file information from 26Mg.mit     
          spe taken from first line in *.int file
          Interaction   spe-norm    tbme-norm  spe
          usdb           1.00000      0.89555  2.1117 -3.9257 -3.2079 16.0000 18.0000  0.3000
          
             N  name  Njtp  T    E(MeV)   J     Ex(MeV) (* for yrast)
          
             1 b020ab   1   1   -105.521  0  +   0.000 *
             2 b420ab   1   1   -103.624  2  +   1.897 *
             3 b420ab   2   1   -102.514  2  +   3.007  
             4 b020ab   2   1   -101.886  0  +   3.635  
             5 b620ab   1   1   -101.638  3  +   3.883 *
             6 b620ab   2   1   -101.204  3  +   4.317  
             7 b820ab   1   1   -101.156  4  +   4.365 *
             8 b420ab   3   1   -101.071  2  +   4.450  
          ...
        その他に、 J と T に応じて b020ab.*, b220ab.*, b420ab.*, ... というファイルが出来る。b020ab の意味は、近藤さんのメモや、Manual にある通り、
        • b020ab
          ^^^^^^
          |||||`- 相互作用コード (c:\aaa\nushell\sps\label.dat 内参照)
          ||||`-- バレンス核子の数 (10 以上は a, b, c, ... と表される)
          |||`--- parity (0:+,1:-)
          ||`---- 2*T
          |`----- 2*J
          `------ モデルスペースコード (c:\aaa\nushell\sps\label.dat 内参照)
        例えば b020ab.lpe というファイルは J = 0, T = 1, + parity の状態の励起エネルギーとそのコンフィグレーション(?)が書いてある(以下参照、空白行は適宜省略)。
        •   NuShell@MSU V1.0 R1.000 
            B.A. Brown  and W.D.M. Rae 2007 
            Based on NuShell code by W.D.M. Rae, Garsington, Oxford, UK, 2006/7
            onejtih
          
            2*J,   2*T           0           2 
            Lowest Energy Levels
           
           Level    1 E=  -105.521 MeV Parity +
           
            1.325 % Partition  3  5  2
            1.507 % Partition  3  6  1
            6.524 % Partition  2  6  2
            3.120 % Partition  2  7  1
            1.741 % Partition  4  6  0
            2.599 % Partition  3  7  0
            5.208 % Partition  1  7  2
            1.317 % Partition  1  6  3
            5.423 % Partition  1  8  1
           14.729 % Partition  2  8  0
            1.241 % Partition  0  7  3
           13.437 % Partition  0  8  2
            4.944 % Partition  1  9  0
            3.161 % Partition  0  9  1
            2.091 % Partition  0  6  4
           28.364 % Partition  0 10  0
           
            Average n  0.976 8.107 0.917
           
            Norm, total %, total n   1.000000       100.0000       10.00000    
           
           Level    2 E=  -101.886 MeV Parity +
           
            2.694 % Partition  3  5  2
            1.446 % Partition  4  5  1
            5.936 % Partition  3  6  1
          ...
    • 計算結果のプロット

      • 26Al, 26Mg, 26Na, 26Ne, 26F, 26O について計算を行い、26Al.lpt, 26Mg.lpt, ... を得る。これを図示するには、うまいプログラムがあるのだろうか?とりあえず、Linux にデータをコピーし PAW で表示すると以下のようになる。sm.kumac というマクロを用いた。マクロ内では、awk を使い 26Al.lpt の各準位のエネルギーとスピンパリティを抜き出して、26Al.lpt.part というファイルに書き出している。*.lpt を置いたディレクトリは、leveldir で指定。

      • a26_sm.png

      • 縦軸は励起準位のエネルギーを表し、棒の長さは原子核のスピン J (J = 0, 1, 2... )を表す。パリティは、ここではすべて正である。これは PRC 74, 034315 (2006) の図を再現しており、束縛エネルギーもほぼ合っている。同じ図は、Brown 氏のページにもある: al26.jpg, mg26.jpg, na26.jpg, ne26.jpg, f_26.jpg, o_26.jpg

エラー

  • 問題と対処

    • 計算をしていたら、次のようなエラーが出るようになった。仮想メモリを増したら直った。
      c:\aaa\nushell\rsh\26Ne>call nush 26Ne      b060ab  1>b060ab.cpu
      指定されたプログラムは実行できません。
      forrtl: severe (24): end-of-file during read, unit 10, file c:\aaa\nushell\rsh\26Ne\onejti00i.npt
      Image              PC        Routine            Line        Source
      nuorderpart.exe    00457A3A  Unknown               Unknown  Unknown

      26Ne.bat を実行した時、call nush 26Ne b060ab 1>b060ab.cpu の部分で問題が起きていることがわかる。nush はバッチファイルなのでこの中身を辿りつつ、各コマンドを手動で実行していくと、nupart で paa ファイルというのが生成されていないことがわかる。直接 nupart.exe を実行すると、「ページング ファイルが小さすぎるため、この操作を完了できません。」と出る。ネットで調べると、仮想メモリが足りないようなので、4096 MB に増やす。増やし方は、次の通り (Windows 7)。

      • コントロールパネル(表示方法: 小さいアイコン) - システム - システムの詳細設定 - 詳細設定 - パフォーマンス - 詳細設定 - 仮想メモリ の [変更]
      • 仮想メモリ変更画面が起動。
      • カスタムサイズを選択し、 初期サイズ 4096 MB、 最大 4096 MB に変更。

NuShell (Rae 氏版?)

  • 結局 NuShell@MSU に移行した。

Windows(32bit) に インストール

  • D.S. Jodson 氏のページ (http://ns.ph.liv.ac.uk/~dsj/NuShell/) の NuShell Manual.doc に NuShell_V6_R1 のインストール方法がとても丁寧に書いてある。インストーラ(NuShell_220708.zip)も一緒に置いてあるので、これを使えばバージョンの違いを気にせずインストール出来る。

  • ダウンロードしたファイル

ファイル

備考

URL

NuShell Manual.doc

NuShell のインストールマニュアル(Windows 用)

http://ns.ph.liv.ac.uk/~dsj/NuShell/NuShell%20Manual.doc

NuShell_220708.zip

NuShell 本体

http://ns.ph.liv.ac.uk/~dsj/NuShell/NuShell_220708.zip

oxbash.zip

oxbash 本体 ( sps ディレクトリにある .int ファイル(相互作用ファイル)を使う)

http://ns.ph.liv.ac.uk/~dsj/NuShell/oxbash.zip

NuShell@MSU.zip

NuShell@MSU 本体 ( sps ディレクトリにある usdbpn.int ファイル(USDB 相互作用ファイル)を使う)。
大体は oxbash の相互作用ファイルで事足りるようだ。

http://ns.ph.liv.ac.uk/~dsj/NuShell/NuShell@MSU.zip

42Ca_example.doc

42Ca の第一2+励起状態などの計算手順のサンプル

http://ns.ph.liv.ac.uk/~dsj/NuShell/42Ca_example.doc

  • Windows XP と Windows 7

    • Windows XP には NuShell Manual.doc の手順通りにインストールできるが Windows 7 にはマニュアル通りにインストールできない。それは Windows 7 には My Documents がない為(?)。Windows XP における C:\Documents and Settings\koba\My Documents を Windows 7 では C:\Users\koba\Documents に適宜読み替える。

  • 計算してみる

    • 42Ca_example.doc の計算はできたが、USDB の相互作用 (usdbpn.int)を NuShell@MSU から持ってきて、一行目に次の行を追加し、エネルギー準位を計算しても出来なかった。よくわからないので、NuShell@MSU を動かすことにする。

      • ! 18 16 0.3

Oxbash

  • Oxbash を 64 bit の Scientific Linux で動かそうとしたらうまくいかなかった。 32 bit の Linux じゃないと駄目かも?コンパイルのオプションで何とかなる?