4.2.1. 環境設定ファイル

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

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

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

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

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

[log]
  print_level = 1

[mode]
  mode = "RPA"

[mode.param]
  T = 0.5
  # mu = 0.0
  CellShape = [32,32,1]
  SubShape = [1,1,1]
  nmat = 1024
  # Ncond = 1024
  filling = 0.5
  matsubara_frequency = "all"

[file]
[file.input]
  path_to_input = "input"
  # initial = "initial.dat"
  # chi0q_init = "chi0q.npz"

[file.input.interaction]
  path_to_input = "input"
  Geometry = "geom.dat"
  Transfer = "transfer.dat"
  CoulombIntra = "coulombintra.dat"
  CoulombInter = "coulombinter.dat"

[file.output]
  path_to_output = "output"
  chiq = "chiq"
  chi0q = "chi0q"

ファイル形式

TOML形式

パラメータ

mode セクション

  • mode

    形式 : string型

    説明 : 計算モードを指定します。乱雑位相近似を利用する場合には "RPA" を記載します。

  • enable_spin_orbital

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

    説明 : スピン軌道相互作用を有効にします。Transfer項の軌道のインデックスはスピン自由度を含む形に解釈されます。インデックスの対応は、軌道 \(\alpha\) とスピン \(s\) に対して \(\alpha + N_\text{orb} \cdot s\) となります。

  • calc_scheme

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

    説明 : 軌道・スピンの取り扱い方を指定します。以下のいずれかの値をとります。

    • general: 軌道とスピンを統一した一般化軌道として扱い、感受率行列は最も一般的な形式をとります。行列のサイズは \(N_\text{orb}^4 N_\text{spin}^4 N_k N_\omega\) となります。

    • reduced: 軌道とスピンを統一した一般化軌道として扱い、感受率行列は \(\alpha=\alpha^\prime\), \(\beta=\beta^\prime\) のみ計算します。行列のサイズは \(N_\text{orb}^2 N_\text{spin}^2 N_k N_\omega\) となります。二体相互作用は CoulombIntra, CoulombInter, Ising, Hund のみを考慮します。

    • squashed: 軌道とスピンを分離し、軌道については \(\alpha=\alpha^\prime\), \(\beta=\beta^\prime\) のみ扱います。感受率行列のサイズは \(N_\text{orb}^2 N_\text{spin}^4 N_k N_\omega\) となります。詳細は アルゴリズム の章を参照してください。

    • 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)

    説明 : 化学ポテンシャル \(\mu\) の値を指定します。指定しない場合は、電子数の期待値が Ncond になるように \(\mu\) の値を計算します。 muNcond または 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以上の偶数の値を指定してください。松原振動数の定義は以下の通りです。インデックス \(n\) は 0〜Nmat-1 の値を取ります。

    • Bosonの場合: \(\omega_n = \dfrac{2\pi (n-\texttt{Nmat}/2)}{\beta}\)

    • Fermionの場合: \(\omega_n = \dfrac{\pi (2n+1-\texttt{Nmat})}{\beta}\)

  • coeff_tail

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

    説明 : フーリエ変換の尾部の補正を行う際の、補正の大きさを指定します。 対角化された一体Green関数に対して \(\texttt{coeff\_tail}/(i \omega_n)\) を引き虚時間表示にフーリエ変換した後、\(-\beta/2\cdot\texttt{coeff\_tail}\) を付加します。

  • matsubara_frequency

    形式 : int型, list型, または str型 (デフォルトは "all")

    説明 : 感受率行列 \(\chi(\vec{q})\) を計算する松原振動数のインデックスを指定します。指定方法は以下のいずれかです。

    • 整数値 : 指定した松原振動数における値を計算します。

    • [ min, max (, step) ] : min から max まで step おきに計算します。 step を省略した場合は step=1 として扱われます。

    • all : 全ての松原振動数での値を計算します。

    • center : Nmat/2 における値を計算します。

    • none : 計算しません。

    感受率行列 \(\chi(\vec{q})\) および既約感受率行列 \(\chi_0(\vec{q})\) をファイルに出力する場合、このパラメータで指定した松原振動数における値が出力されます。

  • coeff_extern

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

    説明 : 外場の係数 \(h\) を指定します。外場は \(\pm h H_{\alpha\beta}(r_{ij})\) の形式で導入され、行列要素 \(H_{\alpha\beta}(r_{ij})\) の定義は相互作用入力ファイルで与えます。符号は \(+(-)\) が spin up(down) です。

  • RndSeed

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

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

  • ene_cutoff

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

    説明 : Fermi分布関数を計算する際に overflow を避けるため、 \(e\) の冪指数に対する上限を指定します。

log セクション

  • print_level

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

    説明 : 標準出力のレベルを指定します。1にすると詳細な情報が出力されます。

file セクション

inputoutput のサブセクションからなります。 入力ファイルおよび出力ファイルについて、ファイルの種別、格納するディレクトリやファイル名などの情報を指定します。 以下、順に説明します。

file.input セクション

  • path_to_input

    形式 : str型 (デフォルトは "" (空文字列))

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

  • chi0q_init

    形式 : str型

    説明 : 計算済みの既約感受率 \(\chi_0(\vec{q})\) を利用して感受率を計算する場合に利用します。既約感受率のデータを格納したファイルの名前を指定します。 ファイルは Numpy zip 形式です。 file.outputchi0q の出力ファイル形式に対応しています。

  • 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型

    説明 : 既約感受率行列 \(\chi_0(\vec{q})\) を出力するファイル名を指定します。このキーワードがない場合には情報は出力されません。

  • chiq

    形式 : str型

    説明 : 感受率行列 \(\chi(\vec{q})\) を出力するファイル名を指定します。このキーワードがない場合には情報は出力されません。