補遺¶
逆補間¶
積分
を計算するとする. このとき,
\(w\) は \(\varepsilon_k\) に敏感な関数(階段関数 \(\cdot\) デルタ関数等)であり, なるべく細かいグリッド上の \(\varepsilon_k\) が必要である.
\(X_k\) を求めるための計算コストが \(\varepsilon_k\) の計算コストよりかなり大きい.
という場合には \(X_k\) のグリッドを補間により増やす方法が有効である. それは,
\(\varepsilon_k\) を細かい \(k\) グリッド上で計算する.
\(X_k\) を粗いグリッド上で計算し, それを補間(線形補間, 多項式補間, スプライン補間など)して細かいグリッド上での値を得る.
細かい \(k\) グリッドで上記の積分を行う.
という流れで行われる.
さらに, この計算と同じ結果を得るように粗いグリッド上での積分重み \(w_k^{\rm coarse}\) を \(w_k{\rm dense}\) から求める 逆補間 ( [2] のAppendix)も可能である. すなわち,
が満たされる事を要請すると
となる. この場合の計算手順は,
細かい \(k\) グリッド上の \(\varepsilon_k\) から \(w_k^{\rm dense}\) を計算する.
逆補間により \(w_k^{\rm coarse}\) を求める.
粗いグリッド上での \(X_k\) との積和を行う.
となる. このライブラリ内の全ルーチンはこの逆補間の機能を備えており, 軌道エネルギーの \(k\) グリッドと重み関数の \(k\) グリッドを 異なる値にすると逆補間された \(w_k^{\rm coarse}\) が出力される.
2重デルタ関数の積分¶
For the integration
first, we cut out one or two triangles where \(\varepsilon_{n k} = \varepsilon_{\rm F}\) from a tetrahedron and evaluate \(\varepsilon_{n' k+q}\) at the corners of each triangles as
Then we calculate \(\delta(\varepsilon_{n' k+q} - \varepsilon{\rm F})\) in each triangles and obtain weights of corners. This weights of corners are mapped into those of corners of the original tetrahedron as
\(F_{i j}\) and \(\frac{S}{\nabla_k \varepsilon_k}\) are calculated as follows (\(a_{i j} \equiv (\varepsilon_i - \varepsilon_j)/(\varepsilon_{\rm F} - \varepsilon_j)\)):
When \(\varepsilon_1 \leq \varepsilon_{\rm F} \leq \varepsilon_2 \leq \varepsilon_3 \leq\varepsilon_4\) [Fig. 1 (a)],
\[\begin{split}\begin{align} F &= \begin{pmatrix} a_{1 2} & a_{2 1} & 0 & 0 \\ a_{1 3} & 0 & a_{3 1} & 0 \\ a_{1 4} & 0 & 0 & a_{4 1} \end{pmatrix}, \qquad \frac{S}{\nabla_k \varepsilon_k} = \frac{3 a_{2 1} a_{3 1} a_{4 1}}{\varepsilon_{\rm F} - \varepsilon_1} \end{align}\end{split}\]When \(\varepsilon_1 \leq \varepsilon_2 \leq \varepsilon_{\rm F} \leq \varepsilon_3 \leq\varepsilon_4\) [Fig. 1 (b)],
\[\begin{split}\begin{align} F &= \begin{pmatrix} a_{1 3} & 0 & a_{3 1} & 0 \\ a_{1 4} & 0 & 0 & a_{4 1} \\ 0 & a_{2 4} & 0 & a_{4 2} \end{pmatrix}, \qquad \frac{S}{\nabla_k \varepsilon_k} = \frac{3 a_{3 1} a_{4 1} a_{2 4}}{\varepsilon_{\rm F} - \varepsilon_1} \end{align}\end{split}\]\[\begin{split}\begin{align} F &= \begin{pmatrix} a_{1 3} & 0 & a_{3 1} & 0 \\ 0 & a_{2 3} & a_{3 2} & 0 \\ 0 & a_{2 4} & 0 & a_{4 2} \end{pmatrix}, \qquad \frac{S}{\nabla_k \varepsilon_k} = \frac{3 a_{2 3} a_{3 1} a_{4 2}}{\varepsilon_{\rm F} - \varepsilon_1} \end{align}\end{split}\]When \(\varepsilon_1 \leq \varepsilon_2 \leq \varepsilon_3 \leq \varepsilon_{\rm F} \leq \varepsilon_4\) [Fig. 1 (c)],
\[\begin{split}\begin{align} F &= \begin{pmatrix} a_{1 4} & 0 & 0 & a_{4 1} \\ a_{1 3} & a_{2 4} & 0 & a_{4 2} \\ a_{1 2} & 0 & a_{3 4} & a_{4 3} \end{pmatrix}, \qquad \frac{S}{\nabla_k \varepsilon_k} = \frac{3 a_{1 4} a_{2 4} a_{3 4}}{\varepsilon_1 - \varepsilon_{\rm F}} \end{align}\end{split}\]
Weights on each corners of the triangle are computed as follows [(\(a'_{i j} \equiv (\varepsilon'_i - \varepsilon'_j)/(\varepsilon_{\rm F} - \varepsilon'_j)\))]:
When \(\varepsilon'_1 \leq \varepsilon_{\rm F} \leq \varepsilon'_2 \leq \varepsilon'_3\) [Fig. 1 (d)],
\[\begin{align} W'_1 = L (a'_{1 2} + a'_{1 3}), \qquad W'_2 = L a'_{2 1}, \qquad W'_3 = L a'_{3 1}, \qquad L \equiv \frac{a'_{2 1} a'_{3 1}}{\varepsilon_{\rm F} - \varepsilon'_{1}} \end{align}\]When \(\varepsilon'_1 \leq \varepsilon'_2 \leq \varepsilon_{\rm F} \leq \varepsilon'_3\) [Fig. 1 (e)],
\[\begin{align} W'_1 = L a'_{1 3}, \qquad W'_2 = L a'_{2 3}, \qquad W'_3 = L (a'_{3 1} + a'_{3 2}), \qquad L \equiv \frac{a'_{1 3} a'_{2 3}}{\varepsilon'_{3} - \varepsilon_{\rm F}} \end{align}\]