DFT 平面波方法
时间:2022-11-19 14:00:00
DFT 平面波方法
文章目录
-
- DFT 平面波方法
-
- 变分法
- DFT 平面波方法
- DFT 平面波迭代解
- abacus 源码阅读
变分法
考虑薛定谔方程,
H ^ ψ = E ψ \hat{H} \psi=E \psi H^ψ=Eψ
我们通常无法准确地获得这里的波函数,所以我们通常会找到一个可以在数学上处理的函数来接近,
? ≈ ψ \phi \approx \psi ?≈ψ
特征值理论告诉我们,能量泛函的极小化
E ~ = ? ? ∣ H ^ ∣ ? ? ? ? ∣ ? ? \tilde{E}=\frac{\langle\phi|\hat{H}| \phi\rangle}{\langle\phi \mid \phi\rangle} E~=??∣????∣H^∣ϕ⟩
便可以得到最小的特征值 E 0 E_0 E0(基态能量),此时的 ϕ \phi ϕ 也就是对应的特征函数。
如果我们把逼近波函数 ϕ \phi ϕ 找一组基底展开,
ϕ ( x ⃗ ) = ∑ i = 1 N c i χ i ( x ⃗ ) \phi(\vec{x})=\sum_{i=1}^{N} c_{i} \chi_{i}(\vec{x}) ϕ(x)=i=1∑Nciχi(x)
在毕竟波函数单位化约束 ⟨ ϕ ∣ ϕ ⟩ = 1 \langle\phi \mid \phi\rangle=1 ⟨ϕ∣ϕ⟩=1 的条件下,我们使用拉格朗日乘子法,可以得到广义代数特征值问题,
H ⋅ C = λ ⋅ S ⋅ C \mathbf{H} \cdot \mathbf{C}=\lambda \cdot \mathbf{S} \cdot \mathbf{C} H⋅C=λ⋅S⋅C
其中,
H n m = ⟨ χ n ∣ H ^ ∣ χ m ⟩ S n m = ⟨ χ n ∣ χ m ⟩ \begin{aligned} H_{n m} &=\left\langle\chi_{n}|\hat{H}| \chi_{m}\right\rangle \\ S_{n m} &=\left\langle\chi_{n} \mid \chi_{m}\right\rangle \end{aligned} HnmSnm=⟨χn∣H^∣χm⟩=⟨χn∣χm⟩
类比有限元方法,其中的 S n m S_{nm} Snm 是质量矩阵, H n m H_{nm} Hnm 可以看成是瑞利泛函意义下的“刚度”矩阵。
DFT 平面波方法
求解 KS 方程
[ T ^ s + V e f f ] ϕ i = ϵ i ϕ i \left[\hat{T}_{s}+V_{e f f}\right] \phi_{i}=\epsilon_{i} \phi_{i} [T^s+Veff]ϕi=ϵiϕi
对波函数进行平面波展开,并对有效势做傅里叶展开,和有限元方法类似,使用平面波基底做测试函数进行变分,忽略一堆推导,最后可以得到一个代数特征值问题,
∑ m H m ′ m ( k ⃗ ) c i , m ( k ⃗ ) = ϵ i ( k ⃗ ) c i , m ′ ( k ⃗ ) \sum_{m} H_{m^{\prime} m}(\vec{k}) c_{i, m}(\vec{k})=\epsilon_{i}(\vec{k}) c_{i, m^{\prime}}(\vec{k}) m∑Hm′m(k)ci,m(k)=ϵi(k)ci,m′(k)
其中,
H m ′ m ( k ⃗ ) = 1 2 ∣ k ⃗ + G ⃗ m ∣ 2 δ m ′ m + V e f f ( G ⃗ m − G ⃗ m ′ ) H_{m^{\prime} m}(\vec{k})=\frac{1}{2}\left|\vec{k}+\vec{G}_{m}\right|^{2} \delta_{m^{\prime} m}+V_{e f f}\left(\vec{G}_{m}-\vec{G}_{m^{\prime}}\right) Hm′m(k)=21∣∣∣k+Gm∣∣∣2δm′m+Veff(Gm−Gm′)
第一部分是动能项,比较好理解。第二部分可以进一步细化。略去推导,我们直接给出表达式。
- Hartree 势
V H ( G ⃗ ) = 4 π n ( G ⃗ ) G 2 V_{H}(\vec{G})=4 \pi \frac{n(\vec{G})}{G^{2}} VH(G)=4πG2n(G)
其中的 n n n 表示电子密度。 - 交换关联势
V x c ( G ⃗ ) = ∑ G ⃗ ′ n x c ( G ⃗ − G ⃗ ′ ) d ϵ x c d n ( G ⃗ ′ ) + ϵ x c ( G ⃗ ) V_{x c}(\vec{G})=\sum_{\vec{G}^{\prime}} n_{x c}\left(\vec{G}-\vec{G}^{\prime}\right) \frac{d \epsilon_{x c}}{d n}\left(\vec{G}^{\prime}\right)+\epsilon_{x c}(\vec{G}) Vxc(G)=G