查看“︁韦尔莱表”︁的源代码
←
韦尔莱表
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{expert|time=2015-01-27T14:39:29+00:00}} '''韦尔莱表'''(Verlet table 或 Verlet list)是[[分子模拟]]中常用的一种减少粒子间距离计算量的方法,由法国物理学家{{en-link|卢普·韦尔莱|Loup Verlet|卢普·韦尔莱}}首先提出。<ref name="Verlet1967">{{cite journal |author=Verlet, L. |title=Computer 'experiments' on classical fluids. I. Thermodynamical properties of Lennard-Jones molecules |journal=Phys. Rev. |volume=159 |page=98–103 |year=1967 |doi=10.1103/physrev.159.98}}</ref> ==思想== 分子模拟中,为减少计算量,通常为体系中每一个粒子规定一个“截断半径”,对于一个粒子,只有当某个其他粒子与其距离处于截断半径以内时才计算它们之间的相互作用。由于粒子间作用力通常都是短程力,这种近似广泛用于[[蒙特卡洛方法]]和[[分子动力学]]模拟中。然而,当模拟的体系进一步增大时,计算每两个粒子间的距离变得非常耗时,韦尔莱表应运而生。 韦尔莱提出为每一个粒子建立一个列表,用来保存在它截断半径之内的其他粒子的编号,这个列表就称为韦尔莱表。为使韦尔莱表不必每个模拟步长都需要更新,韦尔莱表的构建引入“第二截断半径”''''R<sub>v</sub>''''大于粒子的截断半径''''R<sub>c</sub>''''。例如,对于蒙特卡洛方法,此值为<math>R_v = R_c + 2nd</math>,其中<math>n</math>为韦尔莱表更新步长间隔,<math>d</math>为一步中粒子的最大移动距离,以此保证所有应当计算的粒子都得到统计。更新韦尔莱表的[[时间复杂度]]为<math>O(N^2)</math>(N为粒子总数),对于蒙特卡洛方法经优化可达到<math>O(N^{5/3})</math>。 ==算法== 以下是以[[Fortran]]描述的构建韦尔莱表的算法。<ref>{{Cite book|author = [荷]Frenkel & Smit 汪文川等译|year=2002|origyear=1996|title=Understanding Molecular Simulation -- From Algorithms to Applications|trans_title=分子模拟-从算法到应用|publisher=[[化学工业出版社]]|location=北京|isbn=7-5025-3952-2}}</ref> <syntaxhighlight lang="fortran"> subroutine new_list do i = 1 , npart ! 初始化列表,npart为体系中粒子总数 nlist(i) = 0 xv(i) = x(i) end do do i = 1 , npart - 1 do j = i + 1 , npart ! 遍历所有粒子对 xr = x(i) - x(j) ! 计算两粒子距离 call period_condition(xr) ! 依周期性边界条件校正粒子距离 if(abs(xr) .lt. rv) then ! 找到符合条件的粒子对 ! 往韦尔莱表中添加信息 nlist(i) = nlist(i) + 1 nlist(j) = nlist(j) + 1 ! MC模拟中每个粒子独自考虑,故ij均保留完全的列表。而MD中可只保留粒子i的列表,粒子j的作用力由牛顿第三定律求算。 list(i,nlist(i)) = j list(j,nlist(j)) = i end if end do end do </syntaxhighlight> ==不足与改进== 韦尔莱表的<math>O(N^2)</math>复杂度使其在体系增大时耗时骤增,直至成为整个模拟中最耗时的步骤。在更大的体系时,通常采用“[[元胞列表]]”(Cell lists)的方法,其复杂度为<math>O(N)</math>。<ref name-"Cell_lists">{{cite journal |author=Quentrec, B. and C. Brot |title=New method for searching for neighbors in molecular dynamics computations.|journal=Journal of Computational Physics |volume=13|issue=3 |page=430-432 |year=1973}}</ref>这两种方法的结合能进一步提高计算效率。<ref>{{cite journal |author=Yao, Z., et al. |title=Improved neighbor list algorithm in molecular simulations using cell decomposition and data sorting method.|journal=Computer Physics Communications |volume=1161 | issue=(1-2) |page=27-35 |year=2004 | doi=10.1016/j.cpc.2004.04.004}}</ref> ==参考资料== {{Reflist}} [[Category:计算化学]]
该页面使用的模板:
Template:Cite book
(
查看源代码
)
Template:Cite journal
(
查看源代码
)
Template:En-link
(
查看源代码
)
Template:Expert
(
查看源代码
)
Template:Reflist
(
查看源代码
)
返回
韦尔莱表
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息