4.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 = "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})\) を出力するファイル名を指定します。このキーワードがない場合には情報は出力されません。