Exchange and correlation functionals¶
Libxc¶
We used the functionals from libxc. …
Calculation of GGA potential¶
In libxc we have (see also “Standard subroutine calls” on ccg_dft_design) \(\sigma_0=\sigma_{\uparrow\uparrow}\), \(\sigma_1=\sigma_{\uparrow\downarrow}\) and \(\sigma_2=\sigma_{\downarrow\downarrow}\) with
Uniform 3D grid¶
We use a finite-difference stencil to calculate the gradients:
The \(x\)-component of \(\mathbf{D}_{gg'}\) will be non-zero only when \(g\) and \(g'\) grid points are neighbors in the \(x\)-direction, where the values will be \(1/(2h)\) when \(g'\) is to the right of \(g\) and \(-1/(2h)\) when \(g'\) is to the left of \(g\). Similar story for the \(y\) and \(z\) components.
Let’s look at the spin-\(k\) XC potential from the energy expression \(\sum_g\epsilon(\sigma_{ijg})\):
Using \(v_{ijg}=\partial \epsilon(\sigma_{ijg})/\partial \sigma_{ijg}\), \(\mathbf{D}_{gg'}=-\mathbf{D}_{g'g}\) and
we get:
The potentials from the general energy expression \(\sum_g\epsilon(\sigma_{0g}, \sigma_{1g}, \sigma_{2g})\) will be:
and
PAW correction¶
Spin-paired case:
where \(w\) is the weight …
where
and
Notice that \(r \mathbf{\nabla} Y_L\) is independent of \(r\) - just as \(Y_L\) is. From the two contributions, which are orthogonal (\(\hat{\mathbf{r}} \cdot \mathbf{b}_g = 0\)), we get
Inserting
we get