ACFlow 2.0:一个用于量子蒙特卡罗数据分析的开放源代码工具包

时间:2026年1月30日
来源:Computer Physics Communications

编辑推荐:

量子蒙特卡洛模拟数据通过分析继续方法(包括最大熵法、贝叶斯重建熵算法、随机极点展开法、Nevanlinna方法等)从虚轴转换到实轴,ACFlow 2.0工具包新增支持三种新方法,并集成Web图形界面ACGui和测试工具ACTest,文档与测试体系完善。

广告
   X   

李黄
表面物理与化学实验室,科学技术部,中国江油市9-35号,621908

摘要

分析延拓是量子蒙特卡罗计算中的一个关键步骤。我们推出了ACFlow 2.0版本,这是一个用于量子蒙特卡罗模拟数据分析延拓的完整开源工具包。新版本增加了对三种最新开发的分析延拓方法的支持,即重心有理函数近似法、随机极点展开法和Nevanlinna分析延拓法。传统的最大熵方法也通过贝叶斯重构熵算法得到了改进。此外,还引入了基于网页的图形用户界面和用于分析延拓方法的测试工具包。在本文中,我们首先总结了新实现的分析延拓求解器的基本原理以及ACFlow 2.0的最重要改进。然后通过一个代表性示例来展示新的用途和特性。
程序概述 程序名称: ACFlow CPC库链接到程序文件: https://doi.org/10.17632/th6w74gwjm.2 开发者仓库链接: https://github.com/huangli712/ACFlow 许可条款: GPLv3 编程语言: Julia 先前版本的期刊参考: Computer Physics Communications 292, 108,863 (2023) 新版本是否取代了之前的版本?:新版本的原因: 实现了许多新特性,包括新的分析延拓求解器、基于网页的图形用户界面和测试工具包。用户手册和内部测试也得到了显著改进。 修订总结: (1) 实现了重心有理函数近似法,该方法速度极快且精度高。 (2) 实现了随机极点展开法,这是随机分析延拓法的一种新变体。 (3) 实现了Nevanlinna分析延拓法。如果输入的Matsubara数据无噪声,该方法可以达到前所未有的精度。 (4) 通过贝叶斯重构熵算法改进了传统的最大熵方法,并扩展了正负熵形式主义以支持非对角线格林函数的分析延拓。 (5) 开发了基于网页的图形用户界面ACGui。 (6) 开发了用于测试各种分析延拓方法和代码的测试工具包ACTest。 (7) 文档得到了完善,包含了更多示例和测试。 问题性质: 大多数量子蒙特卡罗算法在虚数轴上运行。为了提取物理可观测量并与实验结果进行比较,必须在后处理阶段进行分析延拓,将量子蒙特卡罗模拟数据从虚数轴转换到实数轴。 解决方法: ACFlow工具包实现了六种成熟的分析延拓方法,包括最大熵方法、重心有理函数近似法、Nevanlinna分析延拓法、随机分析延拓法、随机优化法和随机极点展开法。 其他评论(包括限制和不寻常的特性): ACFlow工具包是用Julia语言编写的,经过高度优化和并行化,可以在类似Jupyter的笔记本环境中交互式执行。

引言

虚数时间格林函数G(τ)或Matsubara格林函数G(iω_n)是有限温度量子多体理论[1]和量子蒙特卡罗模拟[2][3][4]中的关键物理量。它们通过以下拉普拉斯变换与谱函数A(ω)相关联: G(x)=dωK(x,ω)A(ω) 其中x是虚数时间(τ)或Matsubara频率(iω_n),K(x, ω)是所谓的核函数。给定G(τ)或G(iω_n),可以通过分析延拓计算提取相应的谱函数A(ω),然后与相关实验进行比较。因此,分析延拓在量子多体计算(特别是在量子蒙特卡罗模拟中)中是一个极其重要的步骤,一直受到广泛关注。乍一看,分析延拓是一个定义明确的数学问题。我们需要解决的是像方程(1)这样的Fredholm积分方程。但这并不容易,因为G(x)通常带有噪声并且在虚数轴上表现出自相关性,而K(x, ω)往往是一个病态矩阵。在过去的几十年里,人们提出了许多分析延拓算法并开发了各种数值工具。然而,分析延拓问题尚未完全解决。研究人员仍在不断寻找更高效、更准确的算法。当然,也需要健壮且易于使用的软件工具。
两年前,我们发布了ACFlow工具包[5]。这是一个用纯Julia语言编写的开源分析延拓工具包。它支持三种最流行的分析延拓方法,即最大熵方法(MaxEnt)[6][7][8][9][10][11][12][13][14][15][16]、随机分析延拓方法(SAC)[17][18][19][20][21][22][23][24][25][26]和随机优化方法(SOM)[27][28][29][30]。特别是对于SAC方法,实现了Beach算法[17]和Sandvik算法[18][19][20][21]。这些方法都经过了高度优化。除了MaxEnt方法外,所有其他方法都支持并行计算和受限采样算法[19][21]。ACFlow工具包还包括大量示例、全面的文档和一些诊断工具。它已经在一些研究项目中得到了初步应用,并在量子多体物理学社区证明了其价值[31][32][33][34][35][36]。
最近,在分析延拓方法[37][38][39][40][41][42]方面取得了重大进展。同时,ACFlow工具包也在不断改进,持续整合最新的分析延拓方法。在本文中,我们宣布推出ACFlow 2.0。与ACFlow 1.0[5]相比,新版本的ACFlow工具包包含以下改进: (1) 实现了新开发的重心有理函数近似法(BarRat)[43]、随机极点展开法(SPX)[44][45]和Nevanlinna分析延拓(NAC)方法[40][41][42]。 (2) 为MaxEnt方法增加了贝叶斯重构熵算法[46]和正负熵形式主义[16]的支持。 (3) 提供了基于网页的图形用户界面ACGui[47]。 (4) 可以通过ACTest代码[48]系统地检查ACFlow工具包中实现的分析延拓求解器。 (5> 用户手册和内部测试得到了显著改进。
本文的其余部分组织如下。第2节简要介绍了MaxEnt、BarRat、SPX和NAC方法的基本原理。第3节介绍了ACFlow 2.0的主要改进,包括新特性、新的后处理脚本、新的控制参数以及输入和输出文件的变化。第4节介绍了两个辅助工具ACGui和ACTest。第5节通过一个代表性示例展示了ACFlow 2.0的新特性。最后,第6节作为简要总结。

小节片段

贝叶斯重构熵算法

最大熵方法。MaxEnt方法可以说是最普遍的分析延拓方法,因为它在计算效率和精度之间取得了最佳平衡。在这种方法中,A(ω)的最佳解是使P[A|G]最大化的解,P[A|G]被称为后验概率[7][8]。这里,G表示测量或输入的格林函数。根据贝叶斯定理,我们有 P[A|G]P[G|A]P[A] P[A|G]是似然函数,假设它与...

从旧版本升级

ACFlow工具包是用纯Julia语言编写的,仅依赖于Julia的标准库。为了确保ACFlow工具包能够正确运行,Julia版本必须大于v1.6。ACFlow工具包不是一个注册的Julia包。因此,要从头安装ACFlow 2.0,请在Julia的REPL(读取-评估-打印-循环)环境中执行以下命令:
julia>using Pkg
julia> Pkg.add(''https://github.com/huangli712/ACFlow'')
如果使用的是旧版本...

ACGui:图形用户界面

在ACFlow 1.0中,没有提供图形用户界面。因此,用户必须手动准备case.toml文件,然后调用acrun.jl和acprun.jl脚本进行分析延拓计算。分析延拓结果无法立即可视化。因此,ACFlow 2.0引入了一个名为ACGui[47]的图形用户界面来解决这个问题。
最初,ACGui是一个基于传统服务器-客户端模型的Web应用程序。

示例

在本节中,我们将通过一个具体的示例来说明ACFlow 2.0的新特性。
首先,我们使用高斯函数构造谱函数: A(ω)=i=1NgAiexp[(ωϵi)22Γi2 其中N_g是高斯峰的数量,A_i、ϵ_i和Γ_i分别是第i个高斯峰的权重、位置和宽度。在这个测试中,详细参数如下: Ng=3 A1=1.0 A2=0.1 A3=0.6 Γ1=0.2 Γ2=0.4 Γ3=1.0 ϵ=0.0 ϵ=2.0 ϵ=2.0 ϵ=3 生成的谱函数...

结论性评论

在本文中,我们介绍了ACFlow 2.0,这是一个用于量子蒙特卡罗数据分析延拓的开源工具包。这个版本包含了一些新特性和重大改进。它增加了对三种新分析延拓方法的支持:BarRat、SPX和NAC。传统的MaxEnt方法通过贝叶斯重构熵得到了改进。此外,ACFlow 2.0还配备了基于网页的图形用户界面(ACGui)和用于分析延拓的测试工具包。

CRediT作者贡献声明

李黄:撰写 – 审稿与编辑,撰写 – 原稿,可视化,验证,监督,软件,资源,项目管理,方法论,研究,资金获取,形式分析,数据管理,概念化。

利益冲突声明

作者声明他们没有已知的可能会影响本文所述工作的财务利益或个人关系。

生物通微信公众号
微信
新浪微博


生物通 版权所有