目前常用的处理方法:Ewald方法 因为前面的公式比较难收敛,收敛的很慢,就是需要计算大量的数值之后才能缩小误差 通常的做法是,把它分解成收敛比较快的两项 就是将相互作用势分为短程力和无奇点的长程力两部分, 短程力在实空间中好求,长程力放入倒空间进行求解,就是将边长成为倒数 这样就容易方便进行做收敛处理,所以长程力用傅里叶变换计算,会用到高斯型函数表示 在实空间部分的计算中,会引入截断半径来限制相互作用的计算范围 然而,由于截断操作会导致计算的不完全,会引入一定的误差 计算库伦作用中还需要考虑的2个计算量分别为 3需要扣除每个Gaussian函数之间的自相互作用 α需要注意,他越大实际空间更好处理,但是倒空间就麻烦 所以需要讲究平衡性,一般程序不让调整的 4静电相互作用能量形式是环绕模拟盒子周围的介质和球形盒子之间的校正项 在Ewald加和法中加入快速傅立叶转换方法 需要用基于网格分布的电荷取代连续坐标下的点电荷 此时每个原子的电荷要处理成分布在其周围的网格点上 这样在原始点周围就会产生电势 周围划分的网格点越多 计算的结果越准确,计算量也会越大 Ewald方法虽然是比较好用的方法,但是其计算量依然非常大, 可以借鉴前面说的网格索引法进行处理particle-mesh method 在三维空间上考虑最近的27个格子点 通过这种格子电荷密度,利用快速傅立叶转换方法计算每个格子点上的电势 随后再转化到作用在每个粒子上的势(或者力) 但是这种方法其准确性相对较低,尤其对于相互作用有强烈波动的系统 因此现在常用的方法有PME 它是采用3D FFT(三维快速傅里叶变换)使得倒空间更好计算,提高效率 它的原理是将电荷打散,然后通过配分函数进行分布到网格上 当然还有2种方法SPME和PPPM方法,精度应该差不多,具体的我也不懂 查看资料全部是公式,卧槽,需要的自己去看书 |
Powered by Discuz! X3.5
© 2001-2024 Discuz! Team.