英语原文共 30 页,剩余内容已隐藏,支付完成后下载完整资料
QMCPACK:一个用于原子、分子和固体电子结构的在量子蒙特卡罗包装开头的开放源码
摘要:
QMCPACK一个用于原子、分子和固体电子结构的在量子蒙特卡罗包装开头的开放源码。它支持计算金属和绝缘固体,分子,原子,和一些模型汉密尔顿体系。实空间量子蒙特卡罗算法的实现包括变分、扩散和反射蒙特卡罗。QMCPACK使用了斯莱特-贾斯特类型的试验波函数,并结合了能够优化成千上万个参数的复杂优化器。实现了轨道空间辅助场量子蒙特卡罗方法,实现了不同高精度方法之间的交叉验证。该代码特别针对最新的高性能计算架构(包括多核中央处理单元和图形处理单元系统)上的大量电子计算进行了优化。我们详细介绍了该程序的功能,概述了它的结构,并给出了它在当前研究计算中的应用实例。该软件包可以在http://qmcpack.org上找到。
关键字:量子蒙特卡罗,电子结构,量子化学
1.介绍
多体薛定谔方程的精确解是物理和化学的一个重大挑战。获得精确而又容易处理的解的巨大困难导致了许多互补方法的发展,每一种方法都有其独特的近似、限制和假设。目前,利用密度泛函理论(DFT)可以获得周期性凝聚态体系的电子结构,而对于孤立分子,也可以应用多体量子化学技术[1,2]。有了这些技术,为一般系统获得系统可改进的和越来越精确的结果是一个主要的挑战。对于DFT,挑战在于获得精确的密度泛函的近似和约束,例如最近的近似扫描泛函[3]。因此,一个系统可改进的离散傅里叶变换是一个具有挑战性的理论,因此进展缓慢。在量子化学中,最精确的方法是系统地改进的,但是系统的规模与系统的大小关系不大。它们在有数百个电子的周期系统中发展得不是很好,特别是还不适合描述金属态。其他多体方法,如GW和动态平均场理论(DMFT),由于其近似性而受到限制。GW系统地受到电子-电子相互作用的扰动处理的影响。DMFT主要用于“相关的”电子系统,尽管它是非摄动的,但由于其自身能量的局域性质而受到影响,特别是当应用于低维系统和/或在相互作用中,强哈伯德斥力不是唯一相关贡献的系统时。
量子蒙特卡罗(QMC)方法通过随机采样[4]为求解多体薛定谔方程提供了一条新的途径。通过对多体波函数或其投影进行采样,QMC方法在很大程度上避免了对随系统规模变化而变化的数值积分的需要。此外,QMC方法和实现通常调用可控制的近似。尽管与DFT相比,QMC方法的计算开销较大,但它可以得到系统的改进,在某些情况下可以得到近乎精确的结果。这在1980年[5]的均匀电子气体中表现得最为明显。除了它们的随机性之外,QMC和大多数其他电子结构方法的主要区别在于:(1)对于QMC,近似很少,而且很明确;(2)QMC通常需要一个“试验波函数”作为输入。试验波函数通常由成本较低的方法(如DFT或小量子化学计算)的结果构建,并通过后续优化进行改进。对材料和化学问题的兴趣与任何其他电子结构方法一样,但也作为一个重要的验证工具,通过提供参考基准数据来评估和改进成本较低的方法的近似性。
QMC方法已应用于分离分子以及凝聚态的绝缘、半导体和金属相。复杂分子[6-8]、液体[9]、分子固体[10,11]、固体[12]和材料的缺陷性质[13-17]在夹紧的核几何结构下进行了研究。QMC核力驱动下的分子动力学计算,以及玻恩-奥本海默近似以外的计算也成为可能[18-20]。大部分结果是在实际空间中使用变分蒙特卡罗(VMC)和扩散蒙特卡罗(DMC)方法得到的[21-26]。而QMC方法样本多体的波函数在现实空间已经应用了几十年,有越来越多的有吸引力的方法,可以实现在原子轨道的基础,如辅助场(AFQMC)[27-29],蒙特卡罗组态相互作用(移动)[30、31]和完全配置交互QMC (FCIQMC) [32]。实空间方法和基方法各有优缺点。例如,在AFQMC[33, 34]和FCIQMC中很容易实现更精确的多投影伪势和冻结核方法,但是这些方法通常被认为与实空间QMC相比具有更高的计算成本。最重要的是,不同近似的QMC方法的日益多样化将使交叉验证电子结构方案成为可能,以应对具有挑战性的化学、物理和材料问题,并有助于指导方法的改进。
QMCPACK实现了多种实空间求解器和一个补充的、最近开发的AFQMC求解器。这个包是开源的,并且是公开开发的。QMCPACK是在现代C 中实现的,它充分利用了面向对象和基于模板的通用编程技术,以促进高模块化、功能分离和显著的代码重用。特别强调了大型生产计算的性能、能力和稳定性。一个最先进的波函数算法能够优化成千上万的参数,使最精确和最复杂的波函数可以利用[35]。实现了最新的大小一致的伪势估计算法[36]和时间步长[7,11]。该代码通过广泛的向量化、内存布局和访问模式[37]的仔细考虑、高效的OpenMP线程以及使用NVIDIA的CUDA实现图形处理单元(GPUs),为现代高性能计算机架构进行了高度优化。一项重要的工作正在进行,以改进具有单一公共代码库的百亿次架构的代码。由于所需的数据移动相对较低,QMC方法对这些未来的系统特别有吸引力。这种能力和活动的组合有助于QMCPACK区别于其他QMC代码,如QW ALK[38]、CASINO[39]、CHAMP[40]和TurboRVB[41]。
在本文中,我们将概述QMCPACK包的特性和功能。为了指明未来的发展路径,我们概述了QMC方法面临的一些挑战,包括开发一致的多体赝势、将自旋轨道相互作用加入到QMC哈密顿函数中,以及百万兆级的计算的挑战。
2.开源和开放开发
QMCPACK是开源的,并根据[42]批准的伊利诺伊大学/国家超级计算应用中心(NCSA)开源许可协议进行分发。主要项目网站http://qmcpack.org链接到版本发布和开发源代码。这还包括大量的手动详细说明安装指令,从工作站到超级计算机安装的示例,以及详细的方法和输入参数说明。源代码包括一个重要的测试框架(gt;300测试),包括用于帮助验证实现和测试新安装的单元测试和集成测试。QMCPACK也是公开开发的。最新的源代码和更新是通过GitHub来协调的,https://github.com/ QMCPACK/ QMCPACK。该站点提供了版本控制的源代码、描述开发实践的维基百科、问题(票据)跟踪和贡献评审框架(拉请求评审)。该项目遵循“人流”分支和开发模型。新开发人员的贡献受到鼓励,并遵循与已建立的开发人员完全相同的机制。例如,“有限差分线性响应”方法[43]是最近贡献的,并进行了几次更新,以最大限度地与现有源代码兼容。还有关于贡献的完整讨论历史。开放的开发过程,具有完整的变更历史记录,允许清楚地标识贡献并准确地分配信用。源代码更改历史可以追溯到QMCPACK的早期。所有对QMCPACK提出的修改都会自动进行持续的集成测试,这使得贡献可以运行在不同的体系结构和不同的软件版本上,而不是用于开发,例如不同的处理器制造商、GPU或编译器。这允许快速的反馈并降低引入重大故障的风险。开发方向部分是根据用户的要求和将QMCPACK应用到教程到研究级别问题的经验来确定的。除了直接联系开发人员或使用GitHub之外,一个讨论组(lsquo; QMCPACK谷歌组)还提供了一个提出建议或获得支持的方法。例如,将QMCPACK与额外的电子结构或量子化学包连接起来的请求将被优先考虑,这将使新的科学应用或解决现有的问题成为可能。
3.代码结构
QMCPACK采用模块化和泛型结构进行架构,旨在最大限度地重用源代码,并适当地抽象关键的组织和功能概念。例如,如下文所述,一个试验波函数的所有不同组件使用一个公共基类,并为不同的QMC方法提供一个相同的接口。这使得任何新贡献的波函数组件立即可用于所有QMC方法。广泛使用C 泛型和模板编程来最小化公共功能的重新实现。例如,数值精度是参数化的,单精度、双精度和混合精度主要来自于单个源定义,而广泛使用的功能,如一到三维样条,则通过公共接口进行访问。在下面,我们给出了应用程序中主要抽象和组件的高级概要。在实践中,由于实现了大量的功能,QMCPACK由200多个类组成。为了帮助开发人员,手册(http://docs.qmcpack.org)提供了额外的指导,而Doxygen工具用于生成文档,以帮助跟踪功能和相互依赖关系。目前,这是从最新的开发源代码自动生成的,并在http://docs.qmcpack上发布。org/doxygen/doxy/。
在高层次上,QMCPACK由以下主要抽象和功能领域组成,如图1所示。
(a)QMCMain。应用程序的最顶层负责并行设置和初始解析输入XML。每个XML部分都交给适当的功能来设置汉密尔顿函数或运行QMC计算。值得注意的是,输入驱动程序将行人从一个区段持久化到另一个区段。因此,单个QMCPACK输入文件可以描述单个简单的VMC运行,或在一定时间步长的范围内调用VMC、波动函数优化和生产DMC计算的相当复杂和强大的工作流。用户可以为他们的研究选择适当的模式。
(b)QMC的司机。这些实现了主要的QMC方法,如VMC、波函数优化和表层塌滑。轨道空间方法,如第13节所述的AFQMC,也在这里执行。由于抽象的层次,驱动程序不依赖于正在使用的试验波函数的细节。
(c)助行器和粒子。类处理每个行人的状态信息,包括由蒙特卡罗更新的粒子列表。这里提供了计算周期边界条件下最小图像的通用基础结构。根据启用的哈密顿量和观测值,步行者携带附加的状态信息,以便能够报告适当的统计信息。
(d)汉密尔顿。QMCPACK中使用的汉密尔顿函数由输入XML描述。这使得可以执行模型系统计算以及第一原理计算。除了波恩-奥本海默模拟也得到了支持,离子位置是哈密顿函数的一个非恒定部分。动力学项、裸电子离子项、赝势项、电子、电子项和离子库仑项都是在这个层次上实现的。
(e)可见。对哈密顿量的评估不重要的量被称为可观测量,可能包括密度、密度矩阵和动量分布。
(f) 波函数。试验波函数被实现为不同波函数分量的乘积。这包括单个和多个斯莱特行列式,以及一、二、三体杰斯特罗项。专门的波函数,如回流和反对称的成对的产品波函数也在这里实现。
(g)单粒子轨道。来自平面波,样条,和高斯基集的轨道被评估用于例如波函数的斯莱特行列式成分。特殊的基集也被实现,例如基于平面波的均匀电子气体,和混合增强平面波基集结合间隙平面波和原子核心为中心的球谐展开。
(h) 标准库。在可用的地方,标准化的实现和库用于并行化(MPI)、I/O (HDF5、libxml2)、线性代数(BLAS/ LAPACK)和傅里叶变换(FFTW)。
4.性能和并行扩展
由于QMC方法的计算成本很高,因此对QMCPACK实现进行了大量优化,以获得较高的节点上性能和较高的分布式并行效率。然而,获得高性能和高效的模拟仍然是用户的重要责任,因为经过深思熟虑的选择QMC方法、算法、准确的试验波函数和整体统计可以显著降低计算成本。许多电子结构方法通过使用密集的线性代数,如矩阵乘法,获得了很高的计算效率——理论浮点性能的一个高分数。实空
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[236253],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。