計算の流れ

本ソフトウェアでは

  1. 条件ファイルの読み込み

  2. (オプション)入力ファイルの読み込み (ハミルトニアン, ベクトルなど)

  3. (オプション)リスタート用ファイルの読み込み (係数, 残差ベクトルなど)

  4. ライブラリを利用したループ計算

  5. 計算結果ファイル出力(係数, 残差ベクトル, 動的グリーン関数)

の流れで計算を行います (図 1 ). 使用の流れおよび各ファイルの詳細については, 使用の流れ , ファイルフォーマット にそれぞれ記載してあります.

_images/flow_ja.png

Figure 1: 計算の流れ.

使用の流れ

(リスタートではない)通常の計算

入力条件ファイルの作成

周波数や計算時のループ回数の最大数などを指定するファイルを作成します.

以下に入力ファイルの例を示します.

&filename
  inham = ""
  invec = ""
/
&ham
nsite = 4
Jx = 1d0
Jy = 1d0
Jz = 1d0
Dz = 0d0
/
&cg
  maxloops = 100
  convfactor = 6
/
&dyn
  calctype = "normal"
  nomega = 100
  omegamin = (-2d0, 0.1d0)
  omegamax = ( 1d0, 0.1d0)
  outrestart = .TRUE.
/

ここで InHam はMatrixMarket形式に従ったハミルトニアンの要素が記載されたファイル名, InVec は励起ベクトルが記載されたファイル名です. また, OmegaMin\(z\) の始点, OmegaMax\(z\) の終点 に対応します. "(実部,虚部)"の形式で入力してください. NOmega は動的グリーン関数を求めるための周波数

\[\begin{align} \omega_n = {\tt OmegaMin} + \frac{n-1}{{\tt NOmega}-1}({\tt OmegaMax} - {\tt OmegaMin}), \end{align}\]

(\(n=1\cdots\) NOmega)を指定するための変数です. また, MaxLoops はループの最大数を指定します. 残りの変数の説明や 省略可能な変数など, 入力条件ファイルの詳細はSec. ファイル名および計算条件指定ファイル を参照してください. また文字列変数は ' もしくは " で囲ってください.

(オプション)入力ファイルの作成

MatrixMarket形式に従ったハミルトニアンの要素が記載されたファイルと 励起ベクトルを記載したファイルを作成します.

以下に励起ベクトルのファイル例を示します.

256
0.01    0.0
0.05    0.0
0.1     0.0
(continue ...)

ファイル形式は InHamファイル, InVecファイル を参照してください.

計算実行

作成した入力ファイル指定ファイルを引数にして計算実行します. 計算の途中経過は標準出力されます. 以下, 実行ファイルを ShiftK.out , 入力ファイル指定ファイルを namelist.def としてコマンド例を記載します.

$ ShiftK.out namelist.def

計算結果出力

以下のファイルが output フォルダに出力されます.

TriDiagComp.dat, ResVec.dat, dynamicalG.dat

ここで, TriDiagComp.dat はリスタート用の係数およびノルムが格納されているファイル, ResVec.dat はリスタート用の残差ベクトルが格納されているファイル, dynamicalG.dat は動的グリーン関数の計算結果が格納されているファイルをそれぞれ表します. 各ファイルのフォーマットは リスタート用ベクトル - 動的グリーン関数ファイル を参照ください.

動的グリーン関数の再計算を行う場合

動的グリーン関数を求めた際に出力される TriDiagComp.dat および ResVec.dat を用い, 異なる周波数での動的グリーン関数を再計算する場合の流れを示します.

入力条件ファイルの作成

namelist.def 内の calctype パラメーターを "normal" から "recalc" に変更のうえ, OmegaMin 等その他のパラメーターをお好きなように変更してください. InHam , InVec およびそれらのファイルの中身は変更しないでください.

計算実行

作成した入力ファイル指定ファイルを引数にして計算実行します. output/ フォルダにある TriDiagComp.dat および ResVec.dat が自動的に読み込まれます. 計算の途中経過は標準出力されます. なお, output/ フォルダ内に dynamicalG.dat が存在する場合は計算終了時に上書きされます.

以下, 実行ファイルを ShiftK.out , 入力ファイル指定ファイルを namelist.def としてコマンド例を記載します.

$ ShiftK.out namelist.def

計算結果出力

output/ フォルダ内にある dynamicalG.dat が 出力(同名のファイルが存在する場合には上書き)されます.

リスタート計算をする場合

入力条件ファイルの作成

namelist.def 内の calctype パラメーターを "restart" に変更してください. あとは上記の再計算の場合と同様です.

計算実行

作成した入力ファイル指定ファイルを引数にして計算実行します. 計算の途中経過は標準出力されます. 以下, 実行ファイルを ShiftK.out , 入力ファイル指定ファイルを namelist.def としてコマンド例を記載します.

$ ShiftK.out namelist.def

計算結果出力

以下のファイルが output/ フォルダに出力されます.

TriDiagComp.dat, ResVec.dat, dynamicalG.dat

ここで, TriDiagComp.dat はリスタート用の係数およびノルムが格納されているファイル, ResVec.dat はリスタート用の残差ベクトルが格納されているファイル, dynamicalG.dat は動的グリーン関数の計算結果が格納されているファイルをそれぞれ表します. 各ファイルのフォーマットは, リスタート用ベクトル - 動的グリーン関数ファイル を参照ください.