.. highlight:: none .. _Ch:Config_rpa: 環境設定ファイル -------------------------------- このファイルでは、TOML形式でH-waveに関する環境を設定します。 本ファイルは以下の3つのセクションから構成されます。 1. ``mode`` セクション: 計算モードに関する設定を指定するセクション。 2. ``log`` セクション: 標準出力に関する設定を指定するセクション。 3. ``file`` セクション: 入出力ファイルのパスなどを設定するセクションで、 ``input`` , ``output`` のサブセクションから構成される。 以下、ファイル例を記載します。 .. literalinclude:: ../../sample/input.toml ファイル形式 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TOML形式 パラメータ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``mode`` セクション ================================ - ``mode`` **形式 :** string型 **説明 :** 計算モードを指定します。乱雑位相近似を利用する場合には ``"RPA"`` を記載します。 - ``enable_spin_orbital`` **形式 :** bool型 (デフォルトは false) **説明 :** スピン軌道相互作用を有効にします。Transfer項の軌道のインデックスはスピン自由度を含む形に解釈されます。インデックスの対応は、軌道 :math:`\alpha` とスピン :math:`s` に対して :math:`\alpha + N_\text{orb} \cdot s` となります。 - ``calc_scheme`` **形式 :** string型 (デフォルトは ``"auto"``) **説明 :** 軌道・スピンの取り扱い方を指定します。以下のいずれかの値をとります。 - ``general``: 軌道とスピンを統一した一般化軌道として扱い、感受率行列は最も一般的な形式をとります。行列のサイズは :math:`N_\text{orb}^4 N_\text{spin}^4 N_k N_\omega` となります。 - ``reduced``: 軌道とスピンを統一した一般化軌道として扱い、感受率行列は :math:`\alpha=\alpha^\prime`, :math:`\beta=\beta^\prime` のみ計算します。行列のサイズは :math:`N_\text{orb}^2 N_\text{spin}^2 N_k N_\omega` となります。二体相互作用は CoulombIntra, CoulombInter, Ising, Hund のみを考慮します。 - ``squashed``: 軌道とスピンを分離し、軌道については :math:`\alpha=\alpha^\prime`, :math:`\beta=\beta^\prime` のみ扱います。感受率行列のサイズは :math:`N_\text{orb}^2 N_\text{spin}^4 N_k N_\omega` となります。詳細は :ref:`Ch:Algorithm` の章を参照してください。 - ``auto``: 相互作用項の指定に応じて自動判別します。 ``chi0q`` のみを計算する場合は指定できません。 ``mode.param`` セクション ================================ ``mode.param`` セクションでは計算用のパラメータを指定します。 - ``CellShape`` **形式 :** int array型 **説明 :** box の形状 Lx, Ly, Lz を指定します。 - ``SubShape`` **形式 :** int array型 (デフォルトは ``[`` Lx, Ly, Lz ``]``) **説明 :** 副格子の形状 Bx, By, Bz を指定します。 - ``T`` **形式 :** float型 (デフォルトは0) **説明 :** 温度を指定します。0以上の値を指定してください。 - ``mu`` **形式 :** float型 または None (デフォルトは None) **説明 :** 化学ポテンシャル :math:`\mu` の値を指定します。指定しない場合は、電子数の期待値が ``Ncond`` になるように :math:`\mu` の値を計算します。 ``mu`` と ``Ncond`` または ``filling`` が同時に指定されている場合はエラーで終了します。 - ``Ncond`` **形式 :** int型 **説明 :** 伝導電子の数を指定します。1以上の値を指定してください。 - ``filling`` **形式 :** float型 **説明 :** 伝導電子の状態数に対する占有率を指定します。 ``Ncond`` と同時に指定されている場合はエラーで終了します。 - ``Ncond_round_mode`` **形式 :** str型 (デフォルトは ``"strict"``) **説明 :** 温度T = 0の場合、 ``filling`` から計算される伝導電子数を整数値に丸める方法を指定します。以下のいずれかの値をとります。 - ``as-is`` : 丸めを行いません。(戻り値は float型です) - ``round-up`` : 小数点以下を切り上げます。 - ``round-down`` : 小数点以下を切り捨てます。 - ``round-off`` : 小数点以下を四捨五入します。 - ``round`` : 小数点以下を ``round`` 関数で丸めます。0.5 は 0 に丸められるので注意。 - ``strict`` : 整数でない場合はエラーで終了します。 - ``exact`` : 整数でない場合は warning を表示し、 ``round`` で丸めた整数値を返します。 - ``Nmat`` **形式 :** int型 (デフォルトは1024) **説明 :** 松原振動数のカットオフを指定します。1以上の偶数の値を指定してください。松原振動数の定義は以下の通りです。インデックス :math:`n` は 0〜``Nmat-1`` の値を取ります。 - Bosonの場合: :math:`\omega_n = \dfrac{2\pi (n-\texttt{Nmat}/2)}{\beta}` - Fermionの場合: :math:`\omega_n = \dfrac{\pi (2n+1-\texttt{Nmat})}{\beta}` - ``coeff_tail`` **形式 :** float型 (デフォルトは0.0) **説明 :** フーリエ変換の尾部の補正を行う際の、補正の大きさを指定します。 対角化された一体Green関数に対して :math:`\texttt{coeff\_tail}/(i \omega_n)` を引き虚時間表示にフーリエ変換した後、:math:`-\beta/2\cdot\texttt{coeff\_tail}` を付加します。 - ``matsubara_frequency`` **形式 :** int型, list型, または str型 (デフォルトは ``"all"``) **説明 :** 感受率行列 :math:`\chi(\vec{q})` を計算する松原振動数のインデックスを指定します。指定方法は以下のいずれかです。 - 整数値 : 指定した松原振動数における値を計算します。 - ``[ min, max (, step) ]`` : ``min`` から ``max`` まで ``step`` おきに計算します。 ``step`` を省略した場合は ``step=1`` として扱われます。 - ``all`` : 全ての松原振動数での値を計算します。 - ``center`` : ``Nmat/2`` における値を計算します。 - ``none`` : 計算しません。 感受率行列 :math:`\chi(\vec{q})` および既約感受率行列 :math:`\chi_0(\vec{q})` をファイルに出力する場合、このパラメータで指定した松原振動数における値が出力されます。 - ``coeff_extern`` **形式 :** float型 (デフォルトは0.0) **説明 :** 外場の係数 :math:`h` を指定します。外場は :math:`\pm h H_{\alpha\beta}(r_{ij})` の形式で導入され、行列要素 :math:`H_{\alpha\beta}(r_{ij})` の定義は相互作用入力ファイルで与えます。符号は :math:`+(-)` が spin up(down) です。 - ``RndSeed`` **形式 :** int型 (デフォルトは1234) **説明 :** 乱数のシード(種)を指定します。 - ``ene_cutoff`` **形式 :** float型 (デフォルトは100.0) **説明 :** Fermi分布関数を計算する際に overflow を避けるため、 :math:`e` の冪指数に対する上限を指定します。 ``log`` セクション ================================ - ``print_level`` **形式 :** int型 (デフォルトは1) **説明 :** 標準出力のレベルを指定します。1にすると詳細な情報が出力されます。 ``file`` セクション ================================ ``input`` と ``output`` のサブセクションからなります。 入力ファイルおよび出力ファイルについて、ファイルの種別、格納するディレクトリやファイル名などの情報を指定します。 以下、順に説明します。 ``file.input`` セクション ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ``path_to_input`` **形式 :** str型 (デフォルトは "" (空文字列)) **説明 :** 入力ファイルの格納されているディレクトリを指定します。 - ``chi0q_init`` **形式 :** str型 **説明 :** 計算済みの既約感受率 :math:`\chi_0(\vec{q})` を利用して感受率を計算する場合に利用します。既約感受率のデータを格納したファイルの名前を指定します。 ファイルは Numpy zip 形式です。 ``file.output`` の ``chi0q`` の出力ファイル形式に対応しています。 - ``trans_mod`` **形式 :** str型 **説明 :** UHF法で近似した相互作用項を含む一体項を RPA の初期値として利用します。UHFk の ``file.output.rpa`` に指定した出力ファイルのファイル名を指定します。 - ``green_init`` **形式 :** str型 **説明 :** RPA の初期値として与える Green 関数を格納したファイルの名前を指定します。UHFk の ``green`` の出力ファイル形式に対応しています。 ``trans_mod`` が指定されている場合、 ``green_init`` は使われません。 ``file.input.interaction`` セクション ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 乱雑位相近似で、幾何情報や相互作用のタイプと定義ファイルとの対応付けを行います。 - ``path_to_input`` **形式 :** str型 **説明 :** 入力ファイルを格納するディレクトリを指定します。 ``file.input`` セクションの ``path_to_input`` とは独立に指定できます。 - ``Geometry`` **形式 :** str型 **説明 :** 幾何情報のファイル名を指定します。 - ``Transfer``, ``CoulombIntra``, ``CoulombInter``, ``Hund``, ``Ising``, ``Exchange``, ``PairLift``, ``PairHop``, ``Extern`` **形式 :** str型 **説明 :** 各相互作用の係数ファイル名を指定します。 二体相互作用項 (``CoulombIntra``, ``CoulombInter``, ``Hund``, ``Ising``, ``Exchange``, ``PairLift``, ``PairHop``) の指定がない場合は、``chi0q`` のみを計算して終了します。 ``file.output`` セクション ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ``path_to_output`` **形式 :** str型 (デフォルトは "output" ) **説明 :** 出力ファイルを格納するディレクトリを指定します。 - ``chi0q`` **形式 :** str型 **説明 :** 既約感受率行列 :math:`\chi_0(\vec{q})` を出力するファイル名を指定します。このキーワードがない場合には情報は出力されません。 - ``chiq`` **形式 :** str型 **説明 :** 感受率行列 :math:`\chi(\vec{q})` を出力するファイル名を指定します。このキーワードがない場合には情報は出力されません。