chiq, chi0q¶
感受率行列および既約感受率行列の計算結果を Numpy zip 形式で出力します。
ファイル名は、環境設定ファイルの中の file.output セクションでキーワード chiq および chi0q を用いて指定された文字列(以下 chiq_str と記述)を用いて、 chiq_str.npz という名前で出力されます。
ファイルの内容は、以下のキーにバインドされる複数の配列データからなります。
chiqまたはchi0q:感受率行列または既約感受率行列のデータ。データ形式は以下の節で説明します。
freq_index:出力する松原振動数の値または範囲はパラメータ
matsubara_frequencyで指定されます。出力データの配列インデックスと、実際の松原振動数のラベルの対応付けをfreq_indexに格納します。wavevector_unitおよびwavevector_index:波数ベクトルの情報を格納します。詳細は UHFk の出力ファイル を参照してください。
副格子を指定している場合は、出力されるデータは副格子を単位とした感受率の値です。波数ベクトルおよび軌道のインデックスは副格子に読み替えます。
chi0q の出力ファイルは、計算済み既約感受率データとして file.input セクションの chi0q_init に指定して使用できます。
chi0q のデータ形式¶
chi0q のデータ形式は、スピン軌道相互作用および外場の有無と、 mode.calc_scheme パラメータの値によって以下の形をとります。
スピン非依存 (spin-free):
enable_spin_orbitalパラメータがfalseの場合、もしくはtrueであっても \(T_{\tilde\alpha\tilde\beta}(k)\) がスピンについて対角かつ対称な場合で、外場がないとき、既約感受率行列のスピン非依存部分を出力します。calc_scheme = generalの場合、データ配列はndarray(l,q,a,ap,b,bp)で、インデックスは以下のとおりですl: 松原振動数のラベル。インデックスとラベルの対応は前述のfreq_indexで与えられます。q: 波数ベクトルのインデックス \([q_x\ q_y\ q_z]\) を1次元化したインデックスで、 \(q = q_z + N_z \cdot (q_y + N_y \cdot q_x)\) となります。a,ap,b,bpはスピンを含まない軌道インデックス \(\alpha\), \(\alpha^\prime\), \(\beta\), \(\beta^\prime\) に対応します。
calc_scheme = reducedまたはsquashedの場合、データ配列はndarray(l,q,a,b)です。インデックスの意味は上記と同じです。
スピン対角 (spin-diagonal):
enable_spin_orbitalパラメータがfalseで外場がある場合、もしくはenable_spin_orbitalパラメータがtrueで \(T_{\tilde\alpha\tilde\beta}(k)\) がスピンについて対角な場合に、既約感受率行列の spin up/down 成分を出力します。calc_scheme = generalの場合、データ配列はndarray(s,l,q,a,ap,b,bp)となります。s = 0 (1)はそれぞれ spin up (down) 成分を表し、それ以外のインデックスは上記と同じです。calc_scheme = reducedまたはsquashedの場合、データ配列はndarray(s,l,q,a,b)となります。
スピン依存 (spinful):
enable_spin_orbitalパラメータがtrueで Transfer項が一般的な形の場合、一般化軌道をインデックスとする既約感受率行列を出力します。calc_scheme = generalの場合、データ配列はndarray(l,q,a,ap,b,bp)となります。a,ap,b,bpはスピンを含む一般化軌道インデックス \(\tilde\alpha\), \(\tilde\alpha^\prime\), \(\tilde\beta\), \(\tilde\beta^\prime\) に対応します。calc_scheme = reducedの場合、データ配列はndarray(l,q,a,b)となります。a,bはスピンを含む一般化軌道インデックス \(\tilde\alpha\), \(\tilde\beta\) に対応します。
chiq のデータ形式¶
chiq のデータ形式は calc_scheme パラメータの値によって以下の形をとります。
calc_scheme = generalの場合、データ配列はndarray(l,q,a,ap,b,bp)となります。a,ap,b,bpはスピンを含む一般化軌道インデックス \(\tilde\alpha\), \(\tilde\alpha^\prime\), \(\tilde\beta\), \(\tilde\beta^\prime\) に対応します。calc_scheme = reducedの場合、データ配列はndarray(l,q,a,b)となります。a,bはスピンを含む一般化軌道インデックス \(\tilde\alpha\), \(\tilde\beta\) に対応します。calc_scheme = squashedの場合、データ配列はndarray(l,q,s1,s2,a,s3,s4,b)となります。a,bは軌道インデックス \(\alpha\), \(\beta\) に対応し、s1〜s4はスピンインデックス \(\sigma\), \(\sigma^\prime\), \(\sigma_1\), \(\sigma_1^\prime\) にそれぞれ対応します。
データ読み込みの例¶
以下にデータの読み込み方の例を示します。
import numpy as np
data = np.load('output/chiq.npz')
chiq = data['chiq']
freq_index = data['freq_index']