.. highlight:: none .. _Ch:Config: 環境設定ファイル -------------------------------- このファイルでは、TOML形式でH-waveに関する環境を設定します。 本ファイルは以下の3つのセクションから構成されます。 1. ``mode`` セクション: 計算モードに関する設定を指定するセクション。 2. ``log`` セクション: 標準出力に関する設定を指定するセクション。 3. ``file`` セクション: 入出力ファイルのパスなどを設定するセクションで、 ``input`` , ``output`` のサブセクションから構成される。 以下、ファイル例を記載します。 .. literalinclude:: ../../sample/input.toml ファイル形式 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TOML形式 パラメータ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``mode`` セクション ================================ - ``mode`` **形式 :** string型 **説明 :** 計算モードを指定します。実波数空間UHFを利用する場合には、 ``UHFk`` (波数空間版)を記載します。 - ``flag_fock`` **形式 :** bool型 (デフォルトは ``true`` ) **説明 :** ``true`` の場合にはFock項を考慮し、 ``false`` の場合にはHartree項のみ取り扱います。 - ``enable_spin_orbital`` **形式 :** bool型 (デフォルトは false) **説明 :** スピン軌道相互作用を有効にします。Transfer項の軌道のインデックスはスピン自由度を含む形に解釈されます。インデックスの対応は、軌道 :math:`\alpha` とスピン :math:`s` に対して :math:`\alpha + N_\text{orb} \cdot s` となります。 ``mode.param`` セクション ================================ ``mode.param`` セクションでは計算用のパラメータを指定します。 - ``CellShape`` **形式 :** int array型 **説明 :** box の形状 Lx, Ly, Lz を指定します。 - ``SubShape`` **形式 :** int array型 (デフォルトは ``[`` Lx, Ly, Lz ``]``) **説明 :** 副格子の形状 Bx, By, Bz を指定します。 - ``T`` **形式 :** float型 (デフォルトは0) **説明 :** 温度を指定します。0以上の値を指定してください。 - ``Ncond`` **形式 :** int型 **説明 :** 伝導電子の数を指定します。1以上の値を指定してください。 - ``filling`` **形式 :** float型 **説明 :** 伝導電子の状態数に対する占有率を指定します。0以上1以下の値を指定してください。 ``Ncond`` と同時に指定されている場合はエラーで終了します。 - ``Ncond_round_mode`` **形式 :** str型 (デフォルトは ``"strict"``) **説明 :** ``filling`` から計算される伝導電子数を整数値に丸める方法を指定します。以下のいずれかの値をとります。 - ``as-is`` : 丸めを行いません。(戻り値は float型です) - ``round-up`` : 小数点以下を切り上げます。 - ``round-down`` : 小数点以下を切り捨てます。 - ``round-off`` : 小数点以下を四捨五入します。 - ``round`` : 小数点以下を ``round`` 関数で丸めます。0.5 は 0 に丸められるので注意。 - ``strict`` : 整数でない場合はエラーで終了します。 - ``exact`` : 整数でない場合は warning を表示し、 ``round`` で丸めた整数値を返します。 - ``IterationMax`` **形式 :** int型 (デフォルトは20000) **説明 :** 反復回数の上限を指定します。0以上の値を指定してください。 - ``EPS`` **形式 :** int型 (デフォルトは6) **説明 :** 収束条件を指定します。一つ前のステップのグリーン関数との差のノルムが :math:`10^{\rm -EPS}` 以下になった場合に収束したと判定します。 残差は :math:`R = \sum_{i, j}^{N} \sqrt{ \left| G_{ij}^{\rm new} - G_{ij}^{\rm old} \right|^2} / 2N^2` で定義されます。 0以上の値を指定してください。 - ``Mix`` **形式 :** float型 (デフォルトは0.5) **説明 :** Green関数の更新時に、古い値と新しく得られた値を混ぜる(simple-mixing)割合 :math:`\alpha` を指定します。 0以上から1以下の実数で指定してください。1にすると古い値は使われません。 simple-mixingについては :ref:`アルゴリズムの章 ` をご覧ください。 - ``RndSeed`` **形式 :** int型 (デフォルトは1234) **説明 :** 乱数のシード(種)を指定します。 - ``ene_cutoff`` **形式 :** float型 (デフォルトは100.0) **説明 :** Fermi分布関数を計算する際に overflow を避けるためのカットオフを指定します。 - ``strict_hermite`` **形式 :** bool型 (デフォルトは false) **説明 :** 相互作用定義ファイルの読み込み時に Hermiticity を厳密にチェックします。true の場合、 ``hermite_tolerance`` 以上のズレが見つかったときはエラーで終了します。false の場合は warning を表示して実行を継続します。 - ``hermite_tolerance`` **形式 :** float型 (デフォルトは :math:`10^{-8}` ) **説明 :** Hermiticity の許容値 :math:`|t_{ij} - t_{ji}^*| < \varepsilon` を指定します。 - ``trustme_interaction_range`` **形式 :** bool型 (デフォルトは false) **説明 :** ホッピングや相互作用の距離が ``CellShape`` の半分以内におさまっているかのチェックを緩和します。 true の場合、warning を表示して実行を継続し、 false の場合、エラー終了します。 ``log`` セクション ================================ - ``print_level`` **形式 :** int型 (デフォルトは1) **説明 :** 標準出力のレベルを指定します。1にすると詳細な情報が出力されます。 - ``print_step`` **形式 :** int型 (デフォルトは1) **説明 :** 反復計算の途中に計算ログを標準出力に書き出す間隔を指定します。1以上の値を指定してください。 - ``print_check`` **形式 :** str型 (デフォルトはNone) **説明 :** 反復計算の途中に計算ログをファイルに書き出す場合、出力先ファイル名を指定します。無指定のときは出力しません。 ``file`` セクション ================================ ``input`` と ``output`` のサブセクションからなります。 前者は入力ファイルに関する情報(格納場所やファイル名の指定など)、後者は出力ファイルに関する情報(格納場所など)について指定します。 以下、順に説明します。 ``file.input`` セクション ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ``path_to_input`` **形式 :** str型 (デフォルトは "") **説明 :** 入力ファイルの格納されているディレクトリを指定します。 - ``initial`` **形式 :** str型 **説明 :** 初期状態の一体グリーン関数データを格納したファイルの名前を指定します。 ファイルは NumPy binary 形式です。 ``file.output`` の ``green`` の出力ファイル形式に対応しています。 - ``initial_mode`` **形式 :** str型 **説明 :** 初期状態の一体グリーン関数データが指定されていない場合、初期値をどのように取るかを指定します。以下のいずれかの値を取ります。 ``zero``: 初期値を 0 に設定します。(デフォルト) ``one`` または ``unity``: 初期値を :math:`G_{\alpha\sigma,\beta\sigma^\prime}(\vec{r}) = \delta_{\vec{r},0}\delta_{\alpha\beta}\delta_{\sigma\sigma^\prime}` で与えます。 ``random``: 初期値を乱数で与えます。 ``file.input.interaction`` セクション ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 波数空間版UHFで、幾何情報や相互作用のタイプと定義ファイルとの対応付けを行います。 - ``path_to_input`` **形式 :** str型 **説明 :** 入力ファイルを格納するディレクトリを指定します。 ``file.input`` セクションの ``path_to_input`` とは独立に指定できます。 - ``Geometry`` **形式 :** str型 **説明 :** 幾何情報のファイル名を指定します。 - ``Transfer``, ``CoulombIntra``, ``CoulombInter``, ``Hund``, ``Ising``, ``Exchange``, ``PairLift``, ``PairHop`` **形式 :** str型 **説明 :** 各相互作用の係数ファイル名を指定します。 ``file.output`` セクション ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ``path_to_output`` **形式 :** str型 (デフォルトは ``"output"`` ) **説明 :** 出力ファイルを格納するディレクトリを指定します。 - ``energy`` **形式 :** str型 **説明 :** エネルギーを出力するファイル名を指定します。このキーワードがない場合には情報は出力されません。 - ``eigen`` **形式 :** str型 **説明 :** ハミルトニアンの固有値を出力するファイル名を指定します。このキーワードがない場合には情報は出力されません。 - ``green`` **形式 :** str型 (デフォルトは ``"green"`` ) **説明 :** 一体グリーン関数を出力するファイル名を指定します。空文字列 ``""`` を指定した場合には情報は出力されません。 - ``rpa`` **形式 :** str型 **説明 :** UHF法で近似した相互作用項を含む一体項を出力するファイル名を指定します。出力ファイルは RPAの初期値として ``trans_mod`` パラメータに指定して利用できます。このキーワードがない場合には情報は出力されません。