計算の流れ ========== 本ソフトウェアでは #. 条件ファイルの読み込み #. (オプション)入力ファイルの読み込み (ハミルトニアン, ベクトルなど) #. (オプション)リスタート用ファイルの読み込み (係数, 残差ベクトルなど) #. ライブラリを利用したループ計算 #. 計算結果ファイル出力(係数, 残差ベクトル, 動的グリーン関数) の流れで計算を行います (図 :num:`calcflow` ). 使用の流れおよび各ファイルの詳細については, :ref:`usage` , :ref:`fileformat` にそれぞれ記載してあります. .. _calcflow: .. figure:: ../figs/flow_ja.png :width: 8cm 計算の流れ. .. _usage: 使用の流れ ---------- (リスタートではない)通常の計算 ------------------------------ 入力条件ファイルの作成 ~~~~~~~~~~~~~~~~~~~~~~ 周波数や計算時のループ回数の最大数などを指定するファイルを作成します. 以下に入力ファイルの例を示します. :: &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`` は :math:`z` の始点, ``OmegaMax`` は :math:`z` の終点 に対応します. "(実部,虚部)"の形式で入力してください. ``NOmega`` は動的グリーン関数を求めるための周波数 .. math:: \begin{align} \omega_n = {\tt OmegaMin} + \frac{n-1}{{\tt NOmega}-1}({\tt OmegaMax} - {\tt OmegaMin}), \end{align} (:math:`n=1\cdots` ``NOmega``)を指定するための変数です. また, ``MaxLoops`` はループの最大数を指定します. 残りの変数の説明や 省略可能な変数など, 入力条件ファイルの詳細はSec. :ref:`modpara` を参照してください. また文字列変数は ``'`` もしくは ``"`` で囲ってください. (オプション)入力ファイルの作成 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MatrixMarket形式に従ったハミルトニアンの要素が記載されたファイルと 励起ベクトルを記載したファイルを作成します. 以下に励起ベクトルのファイル例を示します. :: 256 0.01 0.0 0.05 0.0 0.1 0.0 (continue ...) ファイル形式は :ref:`ham`, :ref:`vec` を参照してください. 計算実行 ~~~~~~~~ 作成した入力ファイル指定ファイルを引数にして計算実行します. 計算の途中経過は標準出力されます. 以下, 実行ファイルを ``ShiftK.out`` , 入力ファイル指定ファイルを ``namelist.def`` としてコマンド例を記載します. .. code-block:: bash $ ShiftK.out namelist.def 計算結果出力 ~~~~~~~~~~~~ 以下のファイルが ``output`` フォルダに出力されます. :: TriDiagComp.dat, ResVec.dat, dynamicalG.dat ここで, ``TriDiagComp.dat`` はリスタート用の係数およびノルムが格納されているファイル, ``ResVec.dat`` はリスタート用の残差ベクトルが格納されているファイル, ``dynamicalG.dat`` は動的グリーン関数の計算結果が格納されているファイルをそれぞれ表します. 各ファイルのフォーマットは :ref:`revec` - :ref:`dynamicalg` を参照ください. 動的グリーン関数の再計算を行う場合 ---------------------------------- 動的グリーン関数を求めた際に出力される ``TriDiagComp.dat`` および ``ResVec.dat`` を用い, 異なる周波数での動的グリーン関数を再計算する場合の流れを示します. 入力条件ファイルの作成 ~~~~~~~~~~~~~~~~~~~~~~ ``namelist.def`` 内の ``calctype`` パラメーターを ``"normal"`` から ``"recalc"`` に変更のうえ, ``OmegaMin`` 等その他のパラメーターをお好きなように変更してください. ``InHam`` , ``InVec`` およびそれらのファイルの中身は変更しないでください. 計算実行 ~~~~~~~~ 作成した入力ファイル指定ファイルを引数にして計算実行します. ``output/`` フォルダにある ``TriDiagComp.dat`` および ``ResVec.dat`` が自動的に読み込まれます. 計算の途中経過は標準出力されます. なお, ``output/`` フォルダ内に ``dynamicalG.dat`` が存在する場合は計算終了時に上書きされます. 以下, 実行ファイルを ``ShiftK.out`` , 入力ファイル指定ファイルを ``namelist.def`` としてコマンド例を記載します. .. code-block:: bash $ ShiftK.out namelist.def 計算結果出力 ~~~~~~~~~~~~ ``output/`` フォルダ内にある ``dynamicalG.dat`` が 出力(同名のファイルが存在する場合には上書き)されます. リスタート計算をする場合 ------------------------ 入力条件ファイルの作成 ~~~~~~~~~~~~~~~~~~~~~~ ``namelist.def`` 内の ``calctype`` パラメーターを ``"restart"`` に変更してください. あとは上記の再計算の場合と同様です. 計算実行 ~~~~~~~~ 作成した入力ファイル指定ファイルを引数にして計算実行します. 計算の途中経過は標準出力されます. 以下, 実行ファイルを ``ShiftK.out`` , 入力ファイル指定ファイルを ``namelist.def`` としてコマンド例を記載します. .. code-block:: bash $ ShiftK.out namelist.def 計算結果出力 ~~~~~~~~~~~~ 以下のファイルが ``output/`` フォルダに出力されます. :: TriDiagComp.dat, ResVec.dat, dynamicalG.dat ここで, ``TriDiagComp.dat`` はリスタート用の係数およびノルムが格納されているファイル, ``ResVec.dat`` はリスタート用の残差ベクトルが格納されているファイル, ``dynamicalG.dat`` は動的グリーン関数の計算結果が格納されているファイルをそれぞれ表します. 各ファイルのフォーマットは, :ref:`revec` - :ref:`dynamicalg` を参照ください.