5.2.1. 環境設定ファイル¶
このファイルでは、TOML形式でH-waveに関する環境を設定します。 本ファイルは以下の3つのセクションから構成されます。
modeセクション: 計算モードに関する設定を指定するセクション。logセクション: 標準出力に関する設定を指定するセクション。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 = "."
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\) の値を計算します。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以上の偶数の値を指定してください。松原振動数の定義は以下の通りです。インデックス \(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 セクション¶
input と output のサブセクションからなります。
入力ファイルおよび出力ファイルについて、ファイルの種別、格納するディレクトリやファイル名などの情報を指定します。
以下、順に説明します。
file.input セクション¶
path_to_input形式 : str型 (デフォルトは "" (空文字列))
説明 : 入力ファイルの格納されているディレクトリを指定します。
chi0q_init形式 : str型
説明 : 計算済みの既約感受率 \(\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型
説明 : 既約感受率行列 \(\chi_0(\vec{q})\) を出力するファイル名を指定します。このキーワードがない場合には情報は出力されません。
chiq形式 : str型
説明 : 感受率行列 \(\chi(\vec{q})\) を出力するファイル名を指定します。このキーワードがない場合には情報は出力されません。