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\) に対応し、 s1s4 はスピンインデックス \(\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']