Ewald求和在分子静电势能计算中的应用

news/2024/10/10 17:44:21/文章来源:https://www.cnblogs.com/dechinphy/p/18434945/ewald

技术背景

分子动力学模拟中,计算周期性边界条件的静电势常被视作计算的瓶颈之一。形式上是比较容易的,例如不考虑周期性边界条件的话,静电势能就是:

\[E=\frac{1}{4\pi\epsilon_0}\sum_{i=0}^{N-2}\sum_{j=i+1}^{N-1}\frac{q_iq_j}{r_{ij}} \]

如果考虑周期性边界条件,那么静电势能变为:

\[E=\frac{1}{4\pi\epsilon_0}\sum_{\mathbf{n}}\sum_{i=0}^{N-2}\sum_{j=i+1}^{N-1}\frac{q_iq_j}{\left|\mathbf{r}_{ij}+\mathbf{n}\mathbf{L}\right|}+\frac{1}{4\pi\epsilon_0}\sum_{|\mathbf{n}|>0}\frac{q_i^2}{\left|\mathbf{n}\mathbf{L}\right|},\mathbf{n}=(n_1,n_2,...,n_d)\in\mathbb{Z} \]

且不说对无穷个盒子的叠加,就算是单个的盒子,也是\(O(N^2)\)的计算复杂度,这也是求解困难的原因。在分子动力学中,为了简化这个计算量,使用了三种思想:傅里叶变换、Ewald Summation以及Particle Mesh的方法,本文主要涉及傅里叶变换与Ewald求和计算的部分。

周期性电势

首先我们从物理概念上理解静电势能项的含义:单一的电荷\(q_i\)会在空间中形成一个电势\(V_i\),当另一个电荷\(q_j\)位于\(V_i\)对应的电场中时,就会受到静电相互作用,其能量为\(E_{ij}\)。因为无穷远处的静电势能为0,这也就以为着,如果我们需要将\(q_j\)从原始的位置推到无穷远之外,就需要\(E_{ij}\)的能量。这个思路告诉我们,可以先计算电势\(V_i\),再计算电势能\(E_{ij}\),也就是这个东西:

\[V_i(\mathbf{r})=\frac{1}{4\pi\epsilon_0}\frac{q_i}{\left|\mathbf{r}-\mathbf{r}_i\right|} \]

如果考虑上周期性边界条件就是:

\[V_i(\mathbf{r})=\frac{1}{4\pi\epsilon_0}\sum_{\mathbf{n}}\frac{q_i}{\left|\mathbf{r}-\mathbf{r}_i+\mathbf{n}\mathbf{L}\right|} \]

因为这个无穷多的求和没办法直接计算,只能明确电势具有周期性:\(V_i(\mathbf{r})=V_i(\mathbf{r}+\mathbf{n}\mathbf{L})\)

静电场泊松方程

空间中的电荷\(i\)\(\mathbf{r}\)处的电势,由泊松方程给出:

\[\Delta V_i(\mathbf{r})=-\frac{\rho_i(\mathbf{r})}{\epsilon_0} \]

其中\(\Delta\)是拉普拉斯算子,\(\rho_i\)表示电荷密度。如果考虑一个点电荷的的情况,那么就有:\(\rho_i(\mathbf{r})=q_i\delta(\mathbf{r}-\mathbf{r}_i)\)。进而写出欧几里得空间中的泊松方程:

\[\nabla^2V_i(\mathbf{r})=-\frac{q_i\delta(\mathbf{r}-\mathbf{r}_i)}{\epsilon_0} \]

其中\(\nabla^2V_i(\mathbf{r})=\frac{\partial^2V_i(\mathbf{r})}{\partial x^2}+\frac{\partial^2V_i(\mathbf{r})}{\partial y^2}+\frac{\partial^2V_i(\mathbf{r})}{\partial z^2}\)。再考虑周期性边界条件,每个盒子中都有一个点电荷\(q_i\),于是方程应该写为:

\[\nabla^2V_i(\mathbf{r})=-\sum_{\mathbf{n}}\frac{q_i\delta(\mathbf{r}-\mathbf{r}_i+\mathbf{n}\mathbf{L})}{\epsilon_0} \]

傅里叶空间泊松方程

对上述单点形式的泊松方程的两边同时进行傅里叶变换(关于傅里叶变换的理解,可以参考前序文章1和前序文章2,有比较详细的原理介绍和相关代码实现)有:

\[\int\left(\frac{\partial^2V_i(\mathbf{r})}{\partial x^2}+\frac{\partial^2V_i(\mathbf{r})}{\partial y^2}+\frac{\partial^2V_i(\mathbf{r})}{\partial z^2}\right)e^{-2\pi j\mathbf{k}\mathbf{r}}d\mathbf{r}=-\frac{q_i}{\epsilon_0}\int\delta(\mathbf{r}-\mathbf{r}_i)e^{-2\pi j\mathbf{k}\cdot\mathbf{r}}d\mathbf{r} \]

先使用分部积分计算左边中的一项:

\[\begin{align*} \int\frac{\partial^2V_i(\mathbf{r})}{\partial x^2}e^{-2\pi j\mathbf{k}\cdot\mathbf{r}}d\mathbf{r}&=\left.\frac{\partial V_i(\mathbf{r})}{\partial x}e^{-2\pi j\mathbf{k}\cdot\mathbf{r}}\right|_{-\infty}^{\infty}+2\pi jk_x\int\frac{\partial V_i(\mathbf{r})}{\partial x}e^{-2\pi j\mathbf{k}\cdot\mathbf{r}}d\mathbf{r} \end{align*} \]

需要注意的是,这里\(\frac{\partial V_i(\mathbf{r})}{\partial x}=F_i(\mathbf{r})\)的物理意义是作用力,那么我们就可以取第一类边界条件:

\[\lim_{x\rightarrow\infty}V_i(x)=0 \]

这样根据微分的定义有:

\[\lim_{x\rightarrow\infty}\frac{\partial V_i(x)}{\partial x}=\lim_{x\rightarrow\infty}\lim_{\epsilon\rightarrow0}\frac{V_i(x+\epsilon)-V_i(x)}{\epsilon}=0 \]

上面这个极限代入了\(V_i(\mathbf{r})\)的单点形式,其意义为,位于\(\mathbf{r}_i\)处的点电荷\(q_i\),在无穷远处生成的电场为0,对无穷远处的电荷\(q_{\infty}\)的作用力也是0,这里不考虑周期性边界条件。则有:

\[\begin{align*} \int\frac{\partial^2V_i(\mathbf{r})}{\partial x^2}e^{-2\pi j\mathbf{k}\cdot\mathbf{r}}d\mathbf{r}&=2\pi jk_x\int\frac{\partial V_i(\mathbf{r})}{\partial x}e^{-2\pi j\mathbf{k}\cdot\mathbf{r}}d\mathbf{r}\\ &=2\pi jk_x\left[\left.V_i(\mathbf{r})e^{-2\pi j\mathbf{k}\cdot\mathbf{r}}\right|_{x=-\infty}^{x=\infty}+2\pi jk_x\int V_i(\mathbf{r})e^{-2\pi j\mathbf{k}\cdot\mathbf{r}}d\mathbf{r}\right]\\ &=-4\pi^2k_x^2V_i(\mathbf{k}) \end{align*} \]

同理可得泊松方程左侧形式为:

\[\int\nabla^2V_i(\mathbf{r})e^{-2\pi j\mathbf{k}\cdot\mathbf{r}}d\mathbf{r}=-4\pi^2k^2V_i(\mathbf{k}) \]

而右侧形式需要用到狄拉克函数的抽样特性:

\[\int_{-\infty}^{\infty}\delta(t)f(t)dt=\int_{-\infty}^{\infty}\delta(t)f(0)dt=f(0)\int_{-\infty}^{\infty}\delta(t)dt=f(0) \]

即:

\[\int\delta(\mathbf{r}-\mathbf{r}_i)e^{-2\pi j\mathbf{k}\cdot\mathbf{r}}d\mathbf{r}=e^{-2\pi j\mathbf{k}\cdot\mathbf{r}_i} \]

得到傅里叶空间的单点泊松方程:

\[4\pi^2k^2V_i(\mathbf{k})=\frac{q_i}{\epsilon_0}e^{-2\pi j\mathbf{k}\cdot\mathbf{r}_i} \]

倒易空间

涉及到傅里叶空间,我们很自然的想到使用固体物理学的倒易空间变换,也就是把周期性盒子当作一个原胞。根据倒易空间(也叫\(\mathbf{k}\)空间)晶格矢(倒格矢)定义有:

\[\mathbf{k}=m_1\mathbf{k}_1+m_2\mathbf{k}_2+m_3\mathbf{k}_3\\ \]

其中:

\[k_i\cdot L_j=\delta_{i,j}\\ \delta_{i,j}=\left\{ \begin{matrix} 1, i=j\\ 0, i\neq j \end{matrix} \right. \]

按照我们常用的长方体周期性边界条件:

\[\begin{matrix} \mathbf{L}=(L_x,L_y,L_z)=\mathbf{L}_1+\mathbf{L}_2+\mathbf{L}_3\\ \mathbf{L}_1 = (L_x,0,0)\\ \mathbf{L}_2 = (0,L_y,0)\\ \mathbf{L}_3 = (0,0,L_z) \end{matrix} \]

可以计算得:

\[\mathbf{k}_1=\frac{2\pi(\mathbf{L}_2\times\mathbf{L}_3)}{\mathbf{L}_1\cdot(\mathbf{L}_2\times\mathbf{L}_3)}= \frac{2\pi}{\Omega}(\mathbf{L}_2\times\mathbf{L}_3)=\frac{\pi L_yL_z}{\Omega L_x}\mathbf{L}_1=\frac{2\pi}{L_x^2}\mathbf{L}_1 \]

其中\(\Omega\)表示周期性盒子的体积,类似的有:

\[\mathbf{k}_2=\frac{2\pi(\mathbf{L}_3\times\mathbf{L}_1)}{\mathbf{L}_2\cdot(\mathbf{L}_3\times\mathbf{L}_1)}= \frac{2\pi}{L_y^2}\mathbf{L}_2 \]

以及

\[\mathbf{k}_3=\frac{2\pi(\mathbf{L}_1\times\mathbf{L}_2)}{\mathbf{L}_3\cdot(\mathbf{L}_1\times\mathbf{L}_2)}= \frac{2\pi}{L_z^2}\mathbf{L}_3 \]

经过倒易空间变换之后,原胞体积从\(\Omega=L_xL_yL_z\)变成:\(\Omega^*=\frac{(2\pi)^3}{L_xL_yL_z}\)。因为在前一步傅里叶空间的泊松方程中我们注意到\(\mathbf{k}\)前面总是带了一个\(2\pi\),这里不妨使用倒易晶格矢的定义对\(\mathbf{k}\)的形式做一个简化:

\[\mathbf{k}=\left(\frac{2\pi}{L_x}, \frac{2\pi}{L_y}, \frac{2\pi}{L_z}\right) \]

这样一来傅里叶空间的泊松方程可以简写为:

\[V_i(\mathbf{k})=\frac{q_i}{\epsilon_0k^2}e^{-j\mathbf{k}\cdot\mathbf{r}_i} \]

其中\(k^2=|\mathbf{k}|^2=\frac{4\pi^2m_1^2}{L_x^2}+\frac{4\pi^2m_2^2}{L_y^2}+\frac{4\pi^2m_3^2}{L_z^2}\),可以实现实空间到倒易空间的变换。

衰减函数构造

对于上述傅里叶变换之后的单点电势的形式,即使我们对整个\(\mathbf{k}\)空间进行积分,也是一个发散的结果。所以这里用到了一个非常特别的思想,由Edwald提出,把静电能量项分为远程相互作用项和短程相互作用项,分别在倒易空间和实空间收敛,这样就可以精确计算静电能。实际操作的时候有不同的推导过程,我们这里引用一种比较“数学”的推导方法(参考链接1)。

首先我们构造一个衰减函数\(e^{-k^2t}\),这个衰减函数有个特性是:

\[\int_0^{\infty}e^{-k^2t}dt=\left.\left(-\frac{1}{k^2}e^{-k^2t}\right)\right|_0^{\infty}\\=\frac{1}{k^2} \]

这样我们就可以用这个积分形式替换掉傅里叶-泊松方程中的\(\frac{1}{k^2}\)项:

\[V_i(\mathbf{k})=\frac{q_i}{\epsilon_0}e^{-j\mathbf{k}\cdot\mathbf{r}_i}\int_0^{\infty}e^{-k^2t}dt \]

因为这里使用的是从0到无穷大的一个积分形式,那么我们就可以实现一个截断,将其划分成两个积分的加和,假如我们在\(\eta\)处做一个截断,则有:

\[V_i(\mathbf{k})=\frac{q_i}{\epsilon_0}e^{-j\mathbf{k}\cdot\mathbf{r}_i}\left(\int_0^{\eta}e^{-k^2t}dt+\int_{\eta}^{\infty}e^{-k^2t}dt\right) \]

这里取短程(Short Term)相互作用为:

\[V_i^S(\mathbf{k})=\frac{q_i}{\epsilon_0}e^{-j\mathbf{k}\cdot\mathbf{r}_i}\int_0^{\eta}e^{-k^2t}dt \]

以及长程(Long Term)相互作用为:

\[V_i^L(\mathbf{k})=\frac{q_i}{\epsilon_0}e^{-j\mathbf{k}\cdot\mathbf{r}_i}\int_{\eta}^{\infty}e^{-k^2t}dt=\frac{q_i}{\epsilon_0k^2}e^{-j\mathbf{k}\cdot\mathbf{r}_i}e^{-\eta k^2} \]

短程作用项计算

按照预期,划分了短程作用项和长程作用项之后,应该可以得到一个实空间收敛的短程相互作用,我们对短程作用做一个逆傅里叶变换:

\[\begin{align*} V_i^S(\mathbf{r})&=\frac{1}{k_xk_yk_z}\sum_{\mathbf{k}}V_i^S(\mathbf{k})e^{i\mathbf{k}\cdot\mathbf{r}}\\ &=\frac{q_i}{k_xk_yk_z\epsilon_0}\sum_{\mathbf{k}}e^{j\mathbf{k}\cdot(\mathbf{r}-\mathbf{r}_i)}\int_0^{\eta}e^{-k^2t}dt\\ &=\frac{q_i}{k_xk_yk_z\epsilon_0}\int_0^{\eta}\sum_{\mathbf{k}}e^{j\mathbf{k}\cdot(\mathbf{r}-\mathbf{r}_i)}e^{-k^2t}dt \end{align*} \]

很明显,积分内的求和项是一个指数平方函数的离散傅里叶变换。而我们可以知道,正态分布函数\(f(\xi)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{\xi^2}{2\sigma^2}}\)的傅里叶变换和逆傅里叶变换不改变其分布形式:

\[\begin{align*} F(k)&=\int f(\xi)e^{-jk\xi}d\xi\\ &=\frac{1}{\sqrt{2\pi}\sigma}\int e^{\frac{-\xi^2-2jk\xi\sigma^2}{2\sigma^2}}d\xi\\ &=\frac{1}{\sqrt{2\pi}\sigma}\int e^{\frac{-\xi^2-2jk\xi\sigma^2-(jk\sigma^2)^2+(jk\sigma^2)^2}{2\sigma^2}}d\xi\\ &=\frac{1}{\sqrt{2\pi}\sigma}e^{\frac{(jk\sigma^2)^2}{2\sigma^2}}\int e^{-\frac{(\xi+jk\sigma^2)^2}{2\sigma^2}}d\xi \end{align*} \]

由于积分项只是一个实空间的积分,其本质还是一个正态分布函数的积分,我们知道其积分结果是一个常数,所以有:

\[F(k)=e^{-\frac{k^2\sigma^2}{2}} \]

也是一个正态分布,只是其均方差从\(\sigma\)变成了\(\frac{1}{\sigma}\),也就是其积分结果为:

\[\int F(k)dk=\frac{\sqrt{2\pi}}{\sigma} \]

同样的道理我们也可以计算得,正态分布函数得逆傅里叶变换结果也依然是一个正态分布函数,其均方差也是\(\frac{1}{\sigma}\)
那么回到短程静电势,先做个变量替换\(t=\frac{\sigma^2}{2},\sigma\geq0\),则有\(dt=\sigma d\sigma,\sigma_{t=\eta}=\sqrt{2\eta},\sigma_{t=0}=0\)。此时短程相互作用势为:

\[\begin{align*} V_i^S(\mathbf{r})&=\frac{q_i}{k_xk_yk_z\epsilon_0}\int_{0}^{\sqrt{2\eta}}\left(\sum_{\mathbf{k}}e^{j\mathbf{k}\cdot(\mathbf{r}-\mathbf{r}_i)}e^{-\frac{k^2\sigma^2}{2}}\right)\sigma d\sigma\\ &=\frac{q_i}{\epsilon_0}\int_{0}^{\sqrt{2\eta}}\frac{e^{-\frac{(\mathbf{r}-\mathbf{r}_i)^2}{2\sigma^2}}}{N_{coe}}\sigma d\sigma \end{align*} \]

这里\(N_{coe}\)是一个用于归一化正态分布的常数:

\[\begin{align*} N_{coe}&=\int_{\mathbf{r}}e^{-\frac{\left|\mathbf{r}-\mathbf{r}_i\right|}{2\sigma^2}}d\mathbf{r}\\ &=\int_{-\infty}^{\infty}e^{-\frac{(z-z_i)^2}{2\sigma^2}}\left[\int_{-\infty}^{\infty}e^{-\frac{(y-y_i)^2}{2\sigma^2}}\left(\int_{-\infty}^{\infty}e^{-\frac{(x-x_i)^2}{2\sigma^2}}dx\right)dy\right]dz\\ &=(2\pi\sigma^2)^{\frac{3}{2}} \end{align*} \]

所以有:

\[\begin{align*} V_i^S(\mathbf{r})&=\frac{q_i}{\epsilon_0}\int_{0}^{\sqrt{2\eta}}\frac{e^{-\frac{(\mathbf{r}-\mathbf{r}_i)^2}{2\sigma^2}}}{(2\pi\sigma^2)^{\frac{3}{2}}}\sigma d\sigma\\ &=\frac{q_i}{(2\pi)^{\frac{3}{2}}\epsilon_0}\int_{0}^{\sqrt{2\eta}}\frac{e^{-\frac{(\mathbf{r}-\mathbf{r}_i)^2}{2\sigma^2}}}{\sigma^2} d\sigma \end{align*} \]

这里用一个变量替换:\(y=-\frac{|\mathbf{r}-\mathbf{r}_i|}{\sqrt{2}\sigma}\),则有:\(\sigma=-\frac{|\mathbf{r}-\mathbf{r}_i|}{\sqrt{2}y}\),其微分变换形式为:\(d\sigma=\frac{|\mathbf{r}-\mathbf{r}_i|}{\sqrt{2}y^2}dy\),其边界为:\(y_{\sigma=\sqrt{2\eta}}=-\frac{|\mathbf{r}-\mathbf{r}_i|}{2\sqrt{\eta}},y_{\sigma=0}=-\infty\),代入得:

\[\begin{align*} V_i^S(\mathbf{r})&=\frac{q_i}{(2\pi)^{\frac{3}{2}}\epsilon_0}\int_{-\infty}^{-\frac{|\mathbf{r}-\mathbf{r}_i|}{2\sqrt{\eta}}}\frac{\sqrt{2}e^{-y^2}}{|\mathbf{r}-\mathbf{r}_i|} dy\\ &=\frac{q_i}{2\pi^{\frac{3}{2}}\epsilon_0|\mathbf{r}-\mathbf{r}_i|}\int_{-\infty}^{-\frac{|\mathbf{r}-\mathbf{r}_i|}{2\sqrt{\eta}}}e^{-y^2}dy\\ &=\frac{q_i}{2\pi^{\frac{3}{2}}\epsilon_0|\mathbf{r}-\mathbf{r}_i|}\int_{\frac{|\mathbf{r}-\mathbf{r}_i|}{2\sqrt{\eta}}}^{+\infty}e^{-y^2}dy \end{align*} \]

此时使用一个误差函数\(Erfc(y)=\frac{2}{\sqrt{\pi}}\int_{y}^{\infty}e^{-x^2}dx\)代入进行替换:

\[V_i^S(\mathbf{r})=\frac{q_i}{4\pi\epsilon_0|\mathbf{r}-\mathbf{r}_i|}Erfc\left(\frac{|\mathbf{r}-\mathbf{r}_i|}{2\sqrt{\eta}}\right) \]

因为\(\eta\)是我们手动引入的一个常数参量,如果考虑\(\eta=\frac{\sigma^2}{2}\),那么形式就变成了:

\[V_i^S(\mathbf{r})=\frac{q_i}{4\pi\epsilon_0|\mathbf{r}-\mathbf{r}_i|}Erfc\left(\frac{|\mathbf{r}-\mathbf{r}_i|}{\sqrt{2}\sigma}\right) \]

这个形式的短程相互作用势,表示的是单个盒子内的单个带电粒子\(q_i\)\(\mathbf{r}\)处的电势,如果考虑周期性边界条件,则形式需要变为:

\[V_i^S(\mathbf{r})=\sum_{\mathbf{n}}\frac{q_i}{4\pi\epsilon_0|\mathbf{r}-\mathbf{r}_i+\mathbf{n}\mathbf{L}|}Erfc\left(\frac{|\mathbf{r}-\mathbf{r}_i+\mathbf{n}\mathbf{L}|}{\sqrt{2}\sigma}\right) \]

这个形式的相互作用势相比于原始形式\(V_i(\mathbf{r})=\frac{1}{4\pi\epsilon_0}\sum_{\mathbf{n}}\frac{q_i}{\left|\mathbf{r}-\mathbf{r}_i+\mathbf{n}\mathbf{L}\right|}\)而言,使用了一个误差函数对实空间做了一个截断:

\[V_i^S(\mathbf{r})\approx\sum_{\mathbf{n'}}\frac{q_i}{4\pi\epsilon_0|\mathbf{r}-\mathbf{r}_i+\mathbf{n'}\mathbf{L}|}Erfc\left(\frac{|\mathbf{r}-\mathbf{r}_i+\mathbf{n'}\mathbf{L}|}{\sqrt{2}\sigma}\right),1-Erfc\left(\frac{|\mathbf{r}-\mathbf{r}_i+\mathbf{n'}\mathbf{L}|}{\sqrt{2}\sigma}\right)<\epsilon \]

从而只需要计算有限\(\mathbf{n'}\)的周期性盒子即可。因为这里截断的是距离\(d_{\mathbf{n}}=|\mathbf{r}-\mathbf{r}_i+\mathbf{n}\mathbf{L}|\),可以用达朗贝尔判别法证明短程相互作用势在实空间的收敛性(按一般性取法先令一个\(\delta>0\)):\(\lim_{l_{\mathbf{n}}\rightarrow\infty}\frac{Erfc(\frac{l_{\mathbf{n}}+\delta}{\sqrt{2}\sigma})l_{\mathbf{n}}}{(l_{\mathbf{n}}+\delta)Erfc(\frac{l_{\mathbf{n}}}{\sqrt{2}\sigma})}=\lim_{l_{\mathbf{n}}\rightarrow\infty}\frac{Erfc\left(\frac{l_{\mathbf{n}+\delta}}{\sqrt{2}\sigma}\right)}{Erfc\left(\frac{l_{\mathbf{n}}}{\sqrt{2}\sigma}\right)}=e^{-\frac{\delta^2}{2\sigma^2}}\lim_{l_{\mathbf{n}}\rightarrow\infty}e^{-\frac{l_{\mathbf{n}}\delta}{\sigma^2}}=e^{-\frac{\delta^2}{2\sigma^2}}<1\)。即:电势的短程相互作用在实空间收敛。得到短程相互作用电势的形式之后,可以进一步计算短程相互作用的电势能:

\[E^S=\sum_{\mathbf{n}}\sum_{i=0}^{N-2}\sum_{j=i+1}^{N-1}\frac{q_iq_j}{4\pi\epsilon_0|\mathbf{r}_j-\mathbf{r}_i+\mathbf{n}\mathbf{L}|}Erfc\left(\frac{|\mathbf{r}_j-\mathbf{r}_i+\mathbf{n}\mathbf{L}|}{\sqrt{2}\sigma}\right)+\sum_{|\mathbf{n}|>0}\frac{q_i^2}{4\pi\epsilon_0|\mathbf{n}\mathbf{L}|}Erfc\left(\frac{|\mathbf{n}\mathbf{L}|}{\sqrt{2}\sigma}\right) \]

长程作用项计算

前面得到长程相互作用电势形式为:

\[V_i^L(\mathbf{k})=\frac{q_i}{\epsilon_0 |\mathbf{k}|^2}e^{-j\mathbf{k}\mathbf{r}_i}e^{-\eta |\mathbf{k}|^2} \]

同样使用短程作用项中的取值\(\eta=\frac{\sigma^2}{2}\)。做一个逆傅里叶变换变回实空间:

\[V_i^L(\mathbf{r})=\frac{q_i}{k_xk_yk_z\epsilon_0}\sum_{|\mathbf{k}|>0}\frac{e^{-j\mathbf{k}\mathbf{r}_i}e^{-\frac{\sigma^2 |\mathbf{k}|^2}{2}}}{|\mathbf{k}|^2}e^{j\mathbf{k}\cdot\mathbf{r}} \]

类似的可以根据达朗贝尔判别方法证明该式收敛。并且参考前面倒易空间中的\(\mathbf{k}\)的定义有:

\[e^{j\mathbf{k}\cdot\mathbf{nL}}=e^{2j|\mathbf{n}|\pi}=1 \]

也就是长程相互作用项可以略去周期性盒子的求和项,因此长程相互作用电势能的形式为:

\[E^L=\frac{1}{2k_xk_yk_z\epsilon_0}\sum_{|\mathbf{k}|>0}\frac{e^{-\frac{\sigma^2 k^2}{2}}}{k^2}\sum_{i=0}^{N-1}q_ie^{-j\mathbf{k}\mathbf{r}_i}\sum_{l=0}^{N-1}q_le^{j\mathbf{k}\cdot\mathbf{r}_l} \]

后面这两个求和的内容形式是两个平面波函数的内积,其物理意义为把实空间的一个固定电荷按照概率幅分配到不同的倒易空间的格点上,可以定义一个倒易空间的电荷分布函数:

\[S(\mathbf{k})=\sum_{i=0}^{N-1}q_ie^{j\mathbf{k}\cdot\mathbf{r}_i} \]

则可以进一步简化长程相互作用势能的写法:

\[E^L=\frac{1}{2k_xk_yk_z\epsilon_0}\sum_{|\mathbf{k}|>0}\frac{e^{-\frac{\sigma^2 k^2}{2}}}{k^2}\left|S(\mathbf{k})\right|^2 \]

需要注意的一点是,虽然这里的长程相互作用势能是收敛的,但是其中包含了点电荷\(i\)\(\mathbf{r}_i\)处产生的电势能(需要去除)。而此前计算短程相互作用时可以得到的误差函数形式的长程相互作用形式:

\[\begin{align*} V_i^L(\mathbf{r})&=\sum_{\mathbf{n}}\frac{q_i}{4\pi\epsilon_0|\mathbf{r}-\mathbf{r}_i-\mathbf{nL}|}-V_i^S(\mathbf{r})\\ &=\sum_{\mathbf{n}}\frac{q_i}{4\pi\epsilon_0|\mathbf{r}-\mathbf{r}_i-\mathbf{nL}|}Erf\left(\frac{|\mathbf{r}-\mathbf{r}_i-\mathbf{nL}|}{\sqrt{2}\sigma}\right) \end{align*} \]

虽然不收敛,但是如果在这里取一个\(\mathbf{r}=\mathbf{r}_i,\mathbf{nL}=0\),也就是前面提到的电荷自我相互作用,则长程相互作用形式变为:

\[V_i^L(\mathbf{r}_i)=\frac{q_i}{4\pi\epsilon_0}\sqrt{\frac{2}{\pi}}\frac{1}{\sigma} \]

则可以得到在倒易空间的长程相互作用项中需要扣除的自我相互作用项为:

\[E^{self}=\frac{1}{2}\sum_{i=0}^{N-1}q_iV_i^L(\mathbf{r}_i)=\frac{1}{4\pi\epsilon_0}\frac{1}{\sqrt{2\pi}\sigma}\sum_{i=0}^{N-1}q_i^2 \]

总电势能

经过前面的计算,我们已经分别得到了实空间收敛的短程相互作用项、倒易空间收敛的长程相互作用项以及长程相互作用项中需要扣除的一个自我相互作用项,那么可以汇总电势能为:

\[\begin{align*} E&=E^S+E^L-E^{self}\\ &=\sum_{\mathbf{n}}\sum_{i=0}^{N-2}\sum_{j=i+1}^{N-1}\frac{q_iq_j}{4\pi\epsilon_0|\mathbf{r}_j-\mathbf{r}_i+\mathbf{n}\mathbf{L}|}Erfc\left(\frac{|\mathbf{r}_j-\mathbf{r}_i+\mathbf{n}\mathbf{L}|}{\sqrt{2}\sigma}\right)+\sum_{|\mathbf{n}|>0}\frac{q_i^2}{4\pi\epsilon_0|\mathbf{n}\mathbf{L}|}Erfc\left(\frac{|\mathbf{n}\mathbf{L}|}{\sqrt{2}\sigma}\right)\\&+\frac{1}{2k_xk_yk_z\epsilon_0}\sum_{|\mathbf{k}|>0}\frac{e^{-\frac{\sigma^2 k^2}{2}}}{k^2}\left|S(\mathbf{k})\right|^2\\&-\frac{1}{4\pi\epsilon_0}\frac{1}{\sqrt{2\pi}\sigma}\sum_{i=0}^{N-1}q_i^2 \end{align*} \]

总结概要

本文介绍了Ewald求和计算方法在周期性边界条件下计算静电势能的方法。周期性的静电势函数并不是一个空间收敛的函数,通过Ewald求和可以将静电势切分为短程相互作用和长程相互作用,两项分别在实空间和倒易空间(或称傅里叶空间、k空间等)收敛。然后就可以进一步进行截断,用更少的代价获得更高精度的电势能计算结果。

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/ewald.html

作者ID:DechinPhy

更多原著文章:https://www.cnblogs.com/dechinphy/

请博主喝咖啡:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

参考链接

  1. http://micro.stanford.edu/mediawiki/images/4/46/Ewald_notes.pdf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/811189.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3中使用markdown并且显示公式

vue3中使用markdown并且显示公式 最终效果如图 下面是代码 1.先安装依赖包npm install markdown-it mathjax2.src下面创建文件utils/mathjax.js,文件内容如下window.MathJax = {tex: {inlineMath: [["$", "$"],["\\(", "\\)"],[&q…

洛谷题单指南-字符串-P1481 魔族密码

原题链接:https://www.luogu.com.cn/problem/P1481 题意解读:在n个字符串中找到最长的词链长度,定义字符串a、b、c可以形成词链,即a是b的前缀、b是c的前缀。 解题思路: 1、Trie树定义 Trie树,也称前缀树、字典树,核心思想是将字符串拆解为单个字符,每个字符是树的一条边…

解决使用Navicat连接数据库时,打开数据库表很慢的问题

今天使用Navicat连接数据库时,发现不管表中数据多少,打开数据库表非常慢。 解决方法: Navicat - 右键编辑数据库连接 - 高级 - 勾选保持连接间隔 - 输入框设置为20 - 点击确定! 参考文章:https://51.ruyo.net/14030.html

2024.9.28 模拟赛 CSP6

模拟赛 单 \(log\) 双 \(log\) 不如三 \(log\)。 T1 一般图最小匹配 简单 dp,水。\(O(n^2)\) 其实也是可反悔贪心的板子,可以 \(O(n\log(n))\) 做。 考虑排序后求差分数组,就变成不能选相邻的。然后就是可反悔贪心板子。 用双向链表(记录前驱后继)维护,然后放进堆里。 板…

kms激活Windows

安装KMS服务个人是在软路由系统中安装的,安装请另外寻找服务器安装KMS教程 使用命令行进行激活 1.卸载当前激活的秘钥(管理员启动命令行) slmgr /upk2.安装新的秘钥 秘钥在KMS软件的日志中,自行寻找 slmgr /ipk XXXX-XXXX-XXXXXX3.设置KMS服务器地址 可以输入内网地址 slmgr /s…

hadoop伪分布式模式

1.下载,上传,解压,配置环境变量2.修改配置文件 2.1 HDFS core-site.xml <configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property> </configuration>2.2 NameNode hdfs-site.x…

OKR与多维度绩效指标评估体系融合,有效提升员工执行

客户背景 在医药行业这个高度竞争且快速变化的领域,企业不仅需要关注短期的财务表现,更需具备长远的战略眼光和持续的创新能力。某药企为了更好地应对市场挑战,提升组织效能,决定将OKR体系与多维度绩效指标评估体系相融合,实现更加精准、全面的绩效管理。 业务痛点战略与执…

idea 使用日常问题 使用maven插件 打包没问题 但是使用 mvn命令打包失败的问题解决

由于本人环境为内网环境 maven中央仓库 无法访问 使用idea的maven插件 进行打包可以打包如上图 是可以的 但是 使用mvn命令打包 失败 mvn clean package -Dmaven.test.skip=true -DsendCredentialsOverHttp=true -DbuildVersion=yxk1010test 原因是 setting文件 配置有问题 使用…

智慧园区平台项目建设方案

随着信息技术的飞速发展,智慧园区作为智慧城市的重要组成部分,正逐渐成为推动城市可持续发展的关键力量。本文旨在探讨智慧园区平台项目的建设内容,以期为相关领域的专家学者和决策者提供参考。1. 智慧园区的定义与重要性智慧园区是指运用物联网、云计算、大数据、人工智能等…

mysql数据库--行级锁,间隙锁和临键锁详解

转载链接地址:MySQL数据库——锁-行级锁(行锁、间隙锁和临键锁) 介绍 行级锁,每次操作锁住对应的行数据。锁定粒度最小,发生锁冲突的概率最低,并发度最高。 应用在InnoDB存储引擎中。InnoDB的数据是基于索引组织的,行锁是通过对索引上的索引项加锁来实现的,而不是对记录…

【土地智慧】解码土地利用的基本方针

在我们脚下的这片土地上,每一寸都蕴藏着发展的潜力与挑战。如何合理、高效、可持续地利用这片宝贵的资源,成为了时代赋予我们的重大课题。今天,我们就来深入浅出地探讨一下“土地利用的基本方针”,为你揭示土地管理的智慧密码。开篇引言:土地,生命之基土地,既是万物生长…

.Net微信服务商平台ApiV3接口

转载:https://www.cnblogs.com/xilen/p/15380183.html 开始 在开始之前建议仔细读微信官方文档,接口规则及api文档 https://pay.weixin.qq.com/wiki/doc/apiv3_partner/wechatpay/wechatpay-1.shtml https://pay.weixin.qq.com/wiki/doc/apiv3_partner/index.shtml 目录 整个…