3.2.1. 環境設定ファイル

このファイルでは、TOML形式でH-waveに関する環境を設定します。 本ファイルは以下の3つのセクションから構成されます。

  1. mode セクション: 計算モードに関する設定を指定するセクション。

  2. log セクション: 標準出力に関する設定を指定するセクション。

  3. file セクション: 入出力ファイルのパスなどを設定するセクションで、 input , output のサブセクションから構成される。

以下、ファイル例を記載します。

[log]
  print_level = 1
  print_step = 10
[mode]
  mode = "UHFk"
[mode.param]
  # 2Sz = 0
  Ncond = 16
  IterationMax = 1000
  EPS = 8
  Mix = 0.5
  RndSeed = 123456789
  # ene_cutoff = 1.0e+2
  T = 0.0
  CellShape = [ 4, 4, 1 ]
  SubShape = [ 2, 2, 1 ]
[file]
[file.input]
  path_to_input = ""
  # initial = "green_init.dat.npz"
[file.input.interaction]
  path_to_input = "./"
  Geometry = "geom.dat"
  Transfer = "transfer.dat"
  CoulombInter = "coulombinter.dat"
[file.output]
  path_to_output = "output"
  energy = "energy.dat"
  eigen = "eigen"
  green = "green"

ファイル形式

TOML形式

パラメータ

mode セクション

  • mode

    形式 : string型

    説明 : 計算モードを指定します。実波数空間UHFを利用する場合には、 UHFk (波数空間版)を記載します。

  • flag_fock

    形式 : bool型 (デフォルトは true )

    説明 : true の場合にはFock項を考慮し、 false の場合にはHartree項のみ取り扱います。

  • enable_spin_orbital

    形式 : bool型 (デフォルトは false)

    説明 : スピン軌道相互作用を有効にします。Transfer項の軌道のインデックスはスピン自由度を含む形に解釈されます。インデックスの対応は、軌道 \(\alpha\) とスピン \(s\) に対して \(\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)

    説明 : 収束条件を指定します。一つ前のステップのグリーン関数との差のノルムが \(10^{\rm -EPS}\) 以下になった場合に収束したと判定します。 残差は \(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)割合 \(\alpha\) を指定します。 0以上から1以下の実数で指定してください。1にすると古い値は使われません。 simple-mixingについては アルゴリズムの章 をご覧ください。

  • RndSeed

    形式 : int型 (デフォルトは1234)

    説明 : 乱数のシード(種)を指定します。

  • ene_cutoff

    形式 : float型 (デフォルトは100.0)

    説明 : Fermi分布関数を計算する際に overflow を避けるためのカットオフを指定します。

  • strict_hermite

    形式 : bool型 (デフォルトは false)

    説明 : 相互作用定義ファイルの読み込み時に Hermiticity を厳密にチェックします。true の場合、 hermite_tolerance 以上のズレが見つかったときはエラーで終了します。false の場合は warning を表示して実行を継続します。

  • hermite_tolerance

    形式 : float型 (デフォルトは \(10^{-8}\) )

    説明 : Hermiticity の許容値 \(|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 セクション

inputoutput のサブセクションからなります。 前者は入力ファイルに関する情報(格納場所やファイル名の指定など)、後者は出力ファイルに関する情報(格納場所など)について指定します。 以下、順に説明します。

file.input セクション

  • path_to_input

    形式 : str型 (デフォルトは "")

    説明 : 入力ファイルの格納されているディレクトリを指定します。

  • initial

    形式 : str型

    説明 : 初期状態の一体グリーン関数データを格納したファイルの名前を指定します。 ファイルは NumPy binary 形式です。 file.outputgreen の出力ファイル形式に対応しています。

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 パラメータに指定して利用できます。このキーワードがない場合には情報は出力されません。