fbpx
维基百科

元胞列表

元胞列表(Cell lists)是分子模拟中常用的一种减少粒子间距离计算量的方法,由Quentrec, B.与C. Brot提出。[1]此方法使得运算时间与体系粒子数成正比,与另一种方法韦尔莱表相比适合于大尺度的分子模拟。

算法 编辑

元胞列表的思想是将体系分解为更小的元胞单元,只需计算计算相同和相邻元胞中的粒子距离而不再需要对整个体系中所有其他粒子求解,元胞的边长不小于粒子截断半径 ,以此保证所有相互作用着的粒子作用力计算没有遗漏。

根据元胞列表计算近邻粒子间非键相互作用的基本算法如下:

for all 近邻元胞对   do
for all   do
for all   do
 
if   then
计算  间相互作用。
end if
end for
end for
end for

元胞的个数取决于模拟体系的尺度和粒子截断半径,每个元胞内粒子数 ,与体系大小近似无关,两个元胞间粒子作用计算的复杂度为 ,整体复杂度为 ,与未运用元胞列表时的 相比有了显著的降低。

Fortran描述的构建列表的算法如下:[2]

subroutine new_nlist  rn = box/int(box/rc) ! 计算一个方向上的元胞个数。box为体系长度,rc为截断半径  do icel=0 , ncel - 1   hoc(icel) = 0 ! 对每一个元胞的链头置0  end do  do i = 1 , npart ! 扫描所有粒子  icel = int(x(i)/rn) ! 确定粒子所在的元胞编号  ll(i) = hocicel! 链接icel元胞的链头  hoc(icel) = i ! 将粒子编号i添加到链头  end do end subroutine 

周期性边界条件 编辑

在多数情况下,模拟的体系都会引入周期性边界条件以避免不合实际的边界。在朴素的算法中,对于每次粒子间距离计算都要运用此条件:

dx = dx - Lx*ANINT(dx/Lx) dy = dy - Ly*ANINT(dy/Ly) dz = dz - Lz*ANINT(dz/Lz) 

造成很大的时间开销。元胞列表的引入可改进这一问题,主要有“幽灵元胞”和校正向量两种优化方案。

幽灵元胞 编辑

幽灵元胞通过在边界以外复制一层元胞解决周期性边界条件问题,这些复制的元胞拥有与原元胞完全相同的信息,这样在计算距离时就不再需要考虑周期性边界条件。此做法导致边界上的粒子的计算量会增加一倍(元胞在三维盒子的面上)甚至更多(元胞在三维盒子的棱或顶角),但这种方法非常直观且易于并行。

校正向量 编辑

由于元胞的边界条件和粒子距离的边界条件是一致的,因此在搜索近邻元胞对时可导出一个向量 来校正粒子间距离的计算。对于属于两个近邻元胞的两个粒子  ,它们之间的距离按此式得出:

 .

校正向量可以在扫描元胞时计算,也可在初始化时储存。此方法单核效率通常高于幽灵元胞,但其实现相对复杂,并且将计算距离的开销部分转移到扫描元胞中。

改进 编辑

在最初的元胞列表中,每一个粒子会与27个元胞作用,体积为 ,相较截断半径球 ,有84%的距离计算是不必要的。虽然复杂度从 降至 ,但复杂度的系数项不容忽略。一种简单的改进方法是减小元胞长度,取元胞大小为 ,扫描时计算近邻和次近邻两层元胞共 个元胞,则距离计算包含的体积降为 ,距离计算的体积下降了将近一倍。然而,元胞的扫描具有 的复杂度,元胞划分数进一步增大带来的性能提升很快被扫描元胞的开销浪费掉。(最早提出:[3],详细讨论:[4][5][6])

将韦尔莱表与元胞列表联合,达到进一步的改进。使用元胞列表构建韦尔莱表可使后者更新的复杂度降为 ,同时克服了扫描元胞的时间开销。[6]

参见 编辑

参考资料 编辑

  1. ^ Quentrec, B. and C. Brot (1973). "New method for searching for neighbors in molecular dynamics computations." Journal of Computational Physics 13(3): 430-432.
  2. ^ [荷]Frenkel & Smit 汪文川等译. Understanding Molecular Simulation -- From Algorithms to Applications [分子模拟-从算法到应用]. 北京: 化学工业出版社. 2002 [1996]. ISBN 7-5025-3952-2. 
  3. ^ Allen, M. P.; D. J. Tildesley. Computer Simulation of Liquids. Oxford: Clarendon Press. 1987. 
  4. ^ Mattson, W.; B. M. Rice. Near-neighbor calculations using a modified cell-linked list method. Computer Physics Communications. 1999, 119 (2-3): 135. Bibcode:1999CoPhC.119..135M. doi:10.1016/S0010-4655(98)00203-3. 
  5. ^ Yao, Z.; Wang, J.-S.; Liu, G.-R.; Cheng, M. Improved neighbor list algorithm in molecular simulations using cell decomposition and data sorting method. Computer Physics Communications. 2004, 161: 27. Bibcode:2004CoPhC.161...27Y. arXiv:physics/0311055 . doi:10.1016/j.cpc.2004.04.004. 
  6. ^ 6.0 6.1 Heinz, T. N.; Hünenberger, P. H. A fast pairlist-construction algorithm for molecular simulations under periodic boundary conditions. Journal of Computational Chem istry. 2004, 25 (12): 1474–86. PMID 15224391. doi:10.1002/jcc.20071. 

元胞列表, cell, lists, 是分子模拟中常用的一种减少粒子间距离计算量的方法, 由quentrec, 与c, brot提出, 此方法使得运算时间与体系粒子数成正比, 与另一种方法韦尔莱表相比适合于大尺度的分子模拟, 目录, 算法, 周期性边界条件, 幽灵元胞, 校正向量, 改进, 参见, 参考资料算法, 编辑的思想是将体系分解为更小的元胞单元, 只需计算计算相同和相邻元胞中的粒子距离而不再需要对整个体系中所有其他粒子求解, 元胞的边长不小于粒子截断半径r, displaystyle, nbsp, 以此保证. 元胞列表 Cell lists 是分子模拟中常用的一种减少粒子间距离计算量的方法 由Quentrec B 与C Brot提出 1 此方法使得运算时间与体系粒子数成正比 与另一种方法韦尔莱表相比适合于大尺度的分子模拟 目录 1 算法 2 周期性边界条件 2 1 幽灵元胞 2 2 校正向量 3 改进 4 参见 5 参考资料算法 编辑元胞列表的思想是将体系分解为更小的元胞单元 只需计算计算相同和相邻元胞中的粒子距离而不再需要对整个体系中所有其他粒子求解 元胞的边长不小于粒子截断半径R c displaystyle R c nbsp 以此保证所有相互作用着的粒子作用力计算没有遗漏 根据元胞列表计算近邻粒子间非键相互作用的基本算法如下 for all 近邻元胞对 C a C b displaystyle C alpha C beta nbsp dofor all p a C a displaystyle p alpha in C alpha nbsp dofor all p b C b displaystyle p beta in C beta nbsp dor 2 x p a x p b 2 2 displaystyle r 2 mathbf x p alpha mathbf x p beta 2 2 nbsp if r 2 r c 2 displaystyle r 2 leq r c 2 nbsp then计算p a displaystyle p alpha nbsp 与p b displaystyle p beta nbsp 间相互作用 dd end if dd end for dd end for dd end for元胞的个数取决于模拟体系的尺度和粒子截断半径 每个元胞内粒子数c N m displaystyle overline c N m nbsp 与体系大小近似无关 两个元胞间粒子作用计算的复杂度为O c 2 displaystyle mathcal O overline c 2 nbsp 整体复杂度为O N c O N displaystyle mathcal O Nc in mathcal O N nbsp 与未运用元胞列表时的O N 2 displaystyle mathcal O N 2 nbsp 相比有了显著的降低 以Fortran描述的构建列表的算法如下 2 subroutine new nlist rn box int box rc 计算一个方向上的元胞个数 box为体系长度 rc为截断半径 do icel 0 ncel 1 hoc icel 0 对每一个元胞的链头置0 end do do i 1 npart 扫描所有粒子 icel int x i rn 确定粒子所在的元胞编号 ll i hoc icel 链接icel元胞的链头 hoc icel i 将粒子编号i添加到链头 end do end subroutine周期性边界条件 编辑在多数情况下 模拟的体系都会引入周期性边界条件以避免不合实际的边界 在朴素的算法中 对于每次粒子间距离计算都要运用此条件 dx dx Lx ANINT dx Lx dy dy Ly ANINT dy Ly dz dz Lz ANINT dz Lz 造成很大的时间开销 元胞列表的引入可改进这一问题 主要有 幽灵元胞 和校正向量两种优化方案 幽灵元胞 编辑 幽灵元胞通过在边界以外复制一层元胞解决周期性边界条件问题 这些复制的元胞拥有与原元胞完全相同的信息 这样在计算距离时就不再需要考虑周期性边界条件 此做法导致边界上的粒子的计算量会增加一倍 元胞在三维盒子的面上 甚至更多 元胞在三维盒子的棱或顶角 但这种方法非常直观且易于并行 校正向量 编辑 由于元胞的边界条件和粒子距离的边界条件是一致的 因此在搜索近邻元胞对时可导出一个向量q a b displaystyle mathbf q alpha beta nbsp 来校正粒子间距离的计算 对于属于两个近邻元胞的两个粒子p a C a displaystyle p alpha in C alpha nbsp 与p b C b displaystyle p beta in C beta nbsp 它们之间的距离按此式得出 r 2 x p a x p b q a b 2 2 displaystyle r 2 mathbf x p alpha mathbf x p beta mathbf q alpha beta 2 2 nbsp 校正向量可以在扫描元胞时计算 也可在初始化时储存 此方法单核效率通常高于幽灵元胞 但其实现相对复杂 并且将计算距离的开销部分转移到扫描元胞中 改进 编辑在最初的元胞列表中 每一个粒子会与27个元胞作用 体积为27 r c 3 displaystyle 27r c 3 nbsp 相较截断半径球4 3 p r c 3 displaystyle frac 4 3 pi r c 3 nbsp 有84 的距离计算是不必要的 虽然复杂度从O N 2 displaystyle mathcal O N 2 nbsp 降至O N displaystyle mathcal O N nbsp 但复杂度的系数项不容忽略 一种简单的改进方法是减小元胞长度 取元胞大小为1 2 r c displaystyle frac 1 2 r c nbsp 扫描时计算近邻和次近邻两层元胞共 2 2 1 3 125 displaystyle 2 2 1 3 125 nbsp 个元胞 则距离计算包含的体积降为125 8 r c 3 displaystyle frac 125 8 r c 3 nbsp 距离计算的体积下降了将近一倍 然而 元胞的扫描具有O N d i v 6 displaystyle O N div 6 nbsp 的复杂度 元胞划分数进一步增大带来的性能提升很快被扫描元胞的开销浪费掉 最早提出 3 详细讨论 4 5 6 将韦尔莱表与元胞列表联合 达到进一步的改进 使用元胞列表构建韦尔莱表可使后者更新的复杂度降为O N displaystyle O N nbsp 同时克服了扫描元胞的时间开销 6 参见 编辑韦尔莱表参考资料 编辑 Quentrec B and C Brot 1973 New method for searching for neighbors in molecular dynamics computations Journal of Computational Physics 13 3 430 432 荷 Frenkel amp Smit 汪文川等译 Understanding Molecular Simulation From Algorithms to Applications 分子模拟 从算法到应用 北京 化学工业出版社 2002 1996 ISBN 7 5025 3952 2 Allen M P D J Tildesley Computer Simulation of Liquids Oxford Clarendon Press 1987 Mattson W B M Rice Near neighbor calculations using a modified cell linked list method Computer Physics Communications 1999 119 2 3 135 Bibcode 1999CoPhC 119 135M doi 10 1016 S0010 4655 98 00203 3 Yao Z Wang J S Liu G R Cheng M Improved neighbor list algorithm in molecular simulations using cell decomposition and data sorting method Computer Physics Communications 2004 161 27 Bibcode 2004CoPhC 161 27Y arXiv physics 0311055 nbsp doi 10 1016 j cpc 2004 04 004 6 0 6 1 Heinz T N Hunenberger P H A fast pairlist construction algorithm for molecular simulations under periodic boundary conditions Journal of Computational Chem istry 2004 25 12 1474 86 PMID 15224391 doi 10 1002 jcc 20071 取自 https zh wikipedia org w index php title 元胞列表 amp oldid 60465664, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。